Software Deployment Checklist for a Successful Initial Rollout — Part 2: After Initial Deployment


Your software product successfully made it out into the wild. You went through the process of creating a concrete deployment plan. It has been a few days and nothing seems off, so what can you do to ensure that there is actually no issues after your initial deployment? Here is a list of items to ensure your software product is running and serving your customers.

 

KPI metrics after deployment

 


 

Monitor the Server

 

Check the status of the server(s) to make sure they are all online and is receiving traffic. Check the CPU, network, memory, and disk usage of your application. Is there anything abnormal? No utilization or sudden high utilization is worth paying attention to.

 

Monitor Exceptions

 

Before deployment, the application has already been through rigorous testing, but it’s impossible to cover every possible scenario. As a result, there is a possibility that your application might throw a new exception (error) that have not been seen before. Take note of it, get a copy of the stack trace, and even better if you can find out what the user was doing that lead to the exception.

 

When you do find issues it is important to not be too reactive to them. Take note of the issues, but don’t immediately dive in trying to fix the issue. Give it a longer time to see if the issue really is a problem or is it a rare one-off situation.

 

Monitor Your Key Performance Indicators

 

The key performance indicators (KPIs) are the heartbeat to your application. Keep a constant eye on them because it defines if your application is running properly. If you want to know more about KPIs, refer to part 1.

 

Monitor Load Time and HTTP Error Rates

 

Watch the load time it takes for the application and keep a close eye on the HTTP status codes for your critical sections of the application. For example, check to see if the majority of HTTP requests resolve with 200 (OK) status code or are there a high amount of 400 (bad request) or 500 (internal server error). Sounds obvious, but if there are more 400 and 500 status codes then there is a problem and maybe an alert should signal.

 

Monitor How the Users Are Using Your Application

 

Are your users using the application as expected or are they using it in ways you have never thought about before? Despite doing user research and creating personas to create software that is more user-centric, it is not possible to truly capture what the user would expect and do. So, it is important to check how your users are using your application because it helps identify the problems and what they want.

 

Have a Post Mortem Meeting

 

It is valuable to stop for a few minutes and discuss what went well, not so well, and bad during the project. There are definitely going to be ups and downs along the way in bringing the project from nothing to the initial release. There might also be moments that you and your team wished to have handled things differently. This is the time to go over them. This should be obvious, but I’ll say it anyway… this is NOT the time to be pointing fingers.

 

Now, if your team is doing agile, you would be having retrospective regularly anyways. So, you may think isn’t a post mortem meeting redundant? Well, not exactly that’s because retrospective is about a specific iteration. The post mortem meeting is about the entire project from start to finish. The kind of conversations that come up can help identify team weaknesses, allow people to vent, and take notes on issues that can ideally be prevented in the future.


 

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 do you do after the initial release?

 

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.