Software Deployment Checklist for a Successful Initial Rollout — Part 1: Planning and Deployment Preparation 1


When deploying a software product for the first time, it can be both an exciting and scary experience. It’s the first time the product will be put out to the public and you’re not exactly sure what can happen. It’s the first time for everybody involved with the product to deal with it out in the wild.

 

software deployment checklist

 

The following list provides 7 pre-deployment checklist items to help mitigate the possibilities of issues after an initial rollout.


 

1. Get Everyone on the Same Page

 

It should be obvious that developers, deployment team, and operations should be aware that the software product is going to roll out. However, just awareness is not enough. There needs to be communication between developers, deployment team, and operations to ensure a smooth rollout.

 

DevOps need to figure out what will happen, when it will happen, what the outcome will likely be, and what to do if things don’t go smoothly. Chances are they will not be able to do that without help from developers and operations.

 

2. Test Again and Again

 

The development and quality assurance team of the software product should have tested the build as much as possible. However, before deployment, the team should test again. Why is that? Testing is an ongoing process.

 

3. Develop a Rollback Plan

 

When it comes to an initial rollout, it’s a little different from recurring rollout to an existing software product out in production. There is no last stable version that you can rollback to. In such a case, the software product might have to be turned off or have its entry point(s) removed until the issue(s) are resolved.

 

4. Develop a Release Strategy

 

Will rollout happen all at once or slowly? Will the end-user need to update manually? Is there other software that will be affected by the rollout of the new software product? If there is then there needs to be coordination between all the software that will be affected.

 

5. Automate as Much as Possible

 

Having automation and scripts to do the deployment can make the process faster and less error-prone. Ideally, the entire deployment process should be automated, but sometimes that’s not possible. In such situations, automation should be introduced to eliminate as much manual effort as possible.

 

There is another big benefit to automating the deployment process and that is it allows more people to be able to do it. Since the deployment process is handled through automation, there is no issue of only specific individuals can do it because they know the entire process to deploy manually.

 

6. Identify Key Performance Indicators (KPIs)

 

Any application should have some form of key performance indicators (KPIs) or metrics that are used to know if everything is running smoothly. There is no one size fit all for this. It varies greatly depending on the application. They can range from the server CPU, database performance, HTTP response time, or page load times.

 

The best metrics tend to be custom based on your application. For example, how many orders are happening per minute, or how many messages are being processed and how long it takes, or how long a critical piece of code takes to execute within your app. Identify the metrics that are important to your app and use those as the indicators to see if the app is running smoothly.

 

7. Set up Metrics and Analytics

 

In the previous point, it was about identifying the KPIs. This one is setting up tracking for those KPIs within your application. If your KPIs are custom tailored for your app then you’ll probably need to write some code. It’s unlikely those KPIs will be tracked out-of-the-box.

 

Once you add in the tracking for your KPIs, make sure it is doing what it is supposed to do. That is tracking those KPIs that you identified to be the heartbeat of your software product. Ensure those metrics are showing up in the analytics log.


 

I hope this post was helpful to you. If you found this post helpful, share it with others so they can benefit too.

 

What are your experiences with releasing a new software product? What was your checklist?

 

To stay in touch, follow me on Twitter, leave a comment, or send me an email at steven@brightdevelopers.com.

 


About Steven To

Steven To is a software developer that specializes in mobile development with a background in computer engineering. Beyond his passion for software development, he also has an interest in Virtual Reality, Augmented Reality, Artificial Intelligence, Personal Development, and Personal Finance. If he is not writing software, then he is out learning something new.

One thought on “Software Deployment Checklist for a Successful Initial Rollout — Part 1: Planning and Deployment Preparation

Comments are closed.