Deploying a Product
Quality Assurance
Development
Guide

Deploying a Product

How to Prepare?

Movacat's portrait
Movacat
Senior Feline Developer
Deploying a Product

Being in charge of the deployment process is extremely challenging. It is a big responsibility to be in control of all the moving parts, but there is a universal checklist that we’ve prepared for you to feel more confident and get through it, and come out on top.

The Big Prep

Planning is always the first step in any venture.

Step 1. Have a Plan

You want to analyze and be ready for anything, but the majority of the problems can be avoided if you think about every step as thoroughly as possible. Test. Always include quality assurance at each stage. Manual or automated (or maybe both!), these are crucial to bashing all of the bugs before they crawl all over your deployed product. Analyze. Analyze all of the risks. Each step that you will take will pose a new risk to the product, and you have to be both mentally and physically prepared for them to become real. What is really important here is to be ready to take action. Prepare a Checklist. Present in every project, checklists are a good way to make sure every little detail is accounted for and done. It is just like groceries, but with more nerve cells lost along the way. Distribute the Responsibilities. Everyone has to be in the right place and doing the job they are the best at. You do not want to have people who are not interested, hesitant, or lack experience doing a thing as important as deployment.

Step 2. Prepare for the Worst

There is no guarantee something goes south. People fail, and deployments are no stranger to this either. That is why you will need a backup plan. Be prepared to roll back to the previous version of your product. That’s an action you may need to be lightning quick with. Your biggest concern at this stage is to reduce the downtime and get your environment running again.

Step 3. Don’t Forget About Documentation

The most important step to creating a great, working, and the easily-maintained product is documentation. Be sure to keep track of all the versions and provide detailed release notes. These will help pinpoint the problem in the future.

Step 4. Review the Code

Aside from your own code, don’t forget that there are a lot of outside libraries that your developers have used. Even if something comes from a trusted developer, you can’t skip reviewing third-party code. You don’t know what security risks hide behind those seemingly innocent libraries.

Step 5. Make Sure the App Meets the Requirements

There are a lot of standards you have to meet. Don’t forget that application stores like App Store and Google Play have their own standards, the first having the strictest ones of all.

Step 6. Set Up Alerts and Logging

You must have appointed on-call staff earlier, and now you should set up proper monitoring and alerts. If something suddenly goes out of hand, team members responsible to react will be alerted, and the crisis averted. The other half of this step is setting up proper logging. It is not enough to enable it, you have to be sure it is configured correctly, and if not, that is the sure way to reduce your server’s performance.

Step 7. Prepare the Certificates

You don’t want your users getting warnings about expired certificates. That fact only may deter them from using your website. Make sure they are not expired and ready to install in advance.

Step 8. Prepare for Server Overload

There may be a lot of excited users waiting for your product to go live. That is very good indeed, but you must be prepared for sudden spikes in traffic – that is when a lot of people try to access your website at the same time. Unfortunately, many companies miss this fact which leads to “unexpected” downtime.

Step 9. Test in an Environment Close to Production

Ideally, you want to use an environment as close to production as possible. After you make sure everything is all right, you may test directly in production. Use the best practices of Continuous Integration and Delivery, and make sure none of the important tests fail on you while you are deploying.

Summary

Be sure to follow these 9 steps every time you are deploying. There may be more that come from your experience, but those are the most important and universal steps you can follow from start to finish.