What is a Deployment Strategy?
If you don’t work in IT or software development, the term “deployment” may not be in your typical work vernacular. Its definition, though, is pretty simple – the transfer of data or functionality from one environment to another. When a development team or IT makes a change to your business systems, they shift these updates from a development or testing environment to the one you use – the live product.
Considering how one change can trigger a butterfly effect on other features, an application deployment strategy must be well-planned and carefully carried out to avoid system and workflow disruption. But that’s easier said than done.
In this blog post, I’ll be discussing a basic deployment strategy and the methods my team and I at Soliant use. However, there are a variety of deployment methods out there. I recommend you research your options before building out the best strategy for your business.
Large Deployments v. Smaller, Single-feature Deployments
Deployments come in various sizes and degrees of complexity. Some businesses face massive application transitions – from a badly-outdated on-premise legacy system to a modern cloud-native application, for example. This requires buy-in from and training for multiple user groups. Much can go wrong in these bigger, riskier deployments, and much more planning needs to take place beforehand. They can feel nerve-wracking to both the deployment group and the user groups.
Smaller deployments, however, can range from one small functionality change to a handful of simple features. They need less testing, and fewer user groups need to be notified beforehand.
In either case, having a thorough plan can make the deployment much smoother, reducing risk and anxiety for all project stakeholders. Our team uses a checklist, further defined and customized by client platforms and needs, to ensure a smooth and successful deployment on all our projects.
Long-term Deployment Planning
The common thinking around software deployment centers on the day-of-deployment activities, with good reason – they can be stressful and complex and are usually outside of business hours, which can exacerbate the stress. Preparing for a deployment takes much more than just that one day, though. Even the best functionality will be met with distrust if it negatively impacts other features, creates bugs, or comes without adequate preparation and training.
Good long-term application deployment strategy includes assigned tasks and visibility across all involved in the project – from development teams to superusers to business stakeholders. When multiple teams are involved, planning extra time for communication lags and buy-in is critical.
For most of our projects at Soliant, we start thinking about deployment details one to two months beforehand. In cases of incredibly complex and long-term projects – those that span years – we begin outlining as a major component at the very beginning of the project.
Building Your Deployment Plan
When to Start
The bigger the project, the sooner you need to start planning your deployment. For large and complex projects, we sometimes even discuss this big step with the client during the sales cycle. We focus on understanding the best time of year for a big shift for users. For example, we wouldn’t launch a new accounting system in the middle of tax season.
You may also find you can adapt your overall development strategy early in the game to avoid a high-stakes deployment, perhaps by breaking the work into smaller, more frequent releases. Or, you may uncover which user groups you need to warm up to first.
For smaller deployments, it can be as simple as deploying on a Friday afternoon to avoid user disruption and planning two weeks in advance. In either case, consider how the launch will impact the business and plan around busy and/or critical system use times. When outlining a project from start to finish, consider the components that impact deployment and how to make things easier rather than harder on go-live day.
When outlining a project from start to finish, consider the components that impact your application deployment strategy and how to make things easier rather than harder on go-live day. When outlining a project from start to finish, consider the components that impact deployment and how to make things easier rather than harder on go-live day.
Creating a Checklist
The best way to build a deployment checklist is with experience, creating a stronger version with each launch. However, if you’re preparing for your first deployment, this isn’t exactly helpful advice.
In most cases, you should actually create two deployment plans – a technical “day of” deployment checklist for development purposes and a more business-focused implementation plan with components like UAT sign-off, training, and communication checkpoints. They’ll need to be in sync with each other but are often managed by different teams.
Time-blocking with a Calendar
Once you have a set checklist and understand all the necessary steps to a successful deployment, it’s time to build a calendar for when everything will happen.
Work with your development team and your client to understand how much time each step and substep will take and plan backward from your deployment day. Our team recommends padding this schedule for the unknown. Otherwise, you may find yourself off track at the very beginning without enough wiggle room to make your deadline.
Successful Deployment Components
No matter the size of the deployment, each requires six specific components:
1. Strong Communication
Any successful project is founded on good communication. That means everyone – from development teams to end users – are on the same page about every significant detail. This sounds simple, but in massive projects, much goes unsaid. We have regular meetings with our clients, and without diligent focus on communication, concerns can still fall under the radar.
Our team prioritizes open discussion and, arguably most importantly – documented decisions. We keep careful meeting notes and share deployment plan updates with all stakeholders on the project to make sure everyone knows what’s happening, when it’s happening, and how it impacts each group.
2. Organized Project Management
A good project manager understands the moving parts of a complex project. When one component changes or falls out of alignment with the rest of the schedule, it creates a ripple effect to address down the road. Good project managers anticipate these needs and adapt their team’s deployment strategies to make room for changes and keep a schedule on the rails.
A strong project manager is also comfortable holding people accountable, especially as deployments evolve during development.
3. Detailed Data Management
In any project that includes changing data or mapping data to a non-matching structure, consider a full test ahead of the final migration. When it really counts, you won’t be facing the unknown and will know what to expect. You’ll understand how to handle the data that didn’t work the first time around.
Your development team can take this step with users to get a better picture of how they envision data working for them in the final system and focus the data migration on those goals. You can test multiple times until everyone is comfortable and confident on deployment day.
4. Rigorous Quality Assurance (QA)
We find that the phase in which we fall off schedule the most often is the testing phase: our internal QA, then UAT by the client.
In the development phase, we work from user stories to stay focused on what the user needs and to define acceptance criteria. We develop toward these criteria and then test against them during the QA process. Our team then hands the new system in a testing environment off to the client’s team to navigate themselves and see if it does indeed meet their needs.
Creating time in a busy workday for dedicated UAT can be tricky for clients. When we collaborate with clients on the long-term deployment plan, they can block that testing time in advance. This has really increased our clients’ ability to get this step completed on time.
5. Training Plans
All system changes run smoother and are adopted more widely when accompanied by user training. No matter how good a new feature is, if the user doesn’t know how to leverage it, it will go unused. In complex system changes or a complete transition to a new application and ecosystem, training is paramount to a successful application deployment strategy.
In most cases, our team trains superusers personally. We often train these people to train other users in the company, with our support, of course. We do this in a testing environment before the big deployment day. This helps everyone get familiar with a new system before it goes live, and stakes get higher.
In the case of different user groups, you’ll need to train each – or at least a superuser for each – separately, with a completely different training plan. Consider, for example, a mission-critical business system that serves multiple major departments, like accounting, marketing, sales, and customer service. Most of these groups are going to use different components and features and want to learn how their workflows are improved, not everyone else’s. This may take multiple days, possibly even multiple days per group. Again, this should take place before deployment to ensure all users feel confident on go-live day.
6. Day-of, Week-of, and Month-of Support
Even with dedicated planning, inevitably, users will still have questions in their first days on a new application. We recommend having resources available for heavy support on deployment day and the several days following, tapering off in the weeks and month following go-live day. The more time you can spend on training and onboarding end users, the more likely they’ll log in smoothly on day one and enjoy using the system you’ve built for them.
Building Your Deployment Strategy
At Soliant, our team has deployed hundreds of strategic mission-critical business applications for our clients since 2004. We have deep experience in a variety of platforms and build equally custom deployment strategies for our clients to ensure go-live day is a positive, successful, and memorable experience. If you’d like help outlining your application deployment strategy or are seeking a development partner for your next business system update, contact our team to speak with a consultant and learn more about our process.