The Deployment phase is when your code goes from sitting in a code repository to actually being launched on the end product. Deployment usually consists of a few server environments, with specific tasks that must be completed in each environment. For example, when moving from the development environment to the integration environment, all external integrations will need to be tested.
Have your development partners write up a detailed deployment plan, including all automated and manual tasks that need to be performed between each environment. If a new resource joins your development team or you switch development partners, you need to have the deployment plan on hand to make sure everything goes smoothly.
If you're a startup or small business with an existing product that has live users, you want to be careful to minimize disruptions to your live users when performing any deployments. Ideally, any bugs should be caught in testing environments before code is deployed to production environments. It's also a good idea to make backups of your database before deploying any code.
Timing is also important. If you can, have your development partner deploy to production at a time when most of your users aren't using your product. This is where having an offshore partner can actually be beneficial. If the majority of your users are on the US East Coast and your development partner is in India, you can comfortably have your team deploy to production at midnight Eastern Time and know that the development partner will be awake for hours after to address any immediate issues with the deployment.
Another way to ensure smooth deployments is to automate as much of the deployment as possible. By automating the process, you can reduce the room for human error during a deployment.
Work with your development partner to fit the deployment phase(s) into your project timeline. If you know you have events coming up where you want to be able to demonstrate certain aspects of your product, make sure these dates are known to your developers and avoid performing any deployments immediately before or during such events.
No matter how much planning you do, delays can arrive unexpectedly and in many forms, so be prepared to move your deployment dates. Don't schedule tight turnarounds in your plan and encourage your development partner to give early warning of potential delays to the project.
In the next chapter, we'll discuss the specifics of our development process and give some insight on how we handle deployment between environments.
Running a business is hard,
Software development shouldn't be ✌️