Software Deployment Checklist
A software deployment checklist is probably unique to every environment and will change as an organization’s needs change. However, most organizations will probably have a software deployment checklist that looks something like this.
1. Develop a strategy that includes input from development, operations, and management
The strategy might include staff and training requirements, the testing required, platforms affected, a back out plan, a restart plan, a monitoring plan, the location of libraries and logs, required capacity, integration with external systems, an archiving strategy, and data migration. It’s important for everyone to have an idea of the scope of the changes and to have an opportunity to collaborate.
For a first deployment, the software deployment checklist is more complex. It may include decommissioning an old system and transferring users to a new system.
2. Create an installer or automation process
At this point the repeatable deployment process is created (if it doesn’t already exist). A production (or production-like) environment needs to exist as a deployment target. The process that moves components to the target environment needs to be in place. If builds are required, the build process must be defined and scripted if necessary.
3. Configure environment
Identify pre-requisites and ensure they are in place and create configuration files with appropriate settings. Data needs to be initialized and the infrastructure configured, including the operating system and middleware.
4. Select build or package
The application needs to be in a version-controlled environment so you can identify the appropriate build inputs. Ideally, the build results are being managed along with the source code. This allows verification that the right executables are the ones actually running.
5. Commit, build, & compile stage
This includes compiling code, analyzing code, and running tests, including unit tests. Ideally, problems should be identified and corrected in this stage.
6. Quality Assurance testing
Quality Assurance testing includes automated and manual testing that follows standards designed to ensure that the new code is error free, has not broken previously working software and properly fulfills its functions. Developing analysis, such as verifying capacity and ensuring security policies, is followed.
7. Acceptance testing
Acceptance testing allows the business users to test the application to ensure it works in a way that supports the functions they need to perform. Usability tests are performed at this point. This includes verifying appearance on various platforms. Integration with external systems needs to be tested in some environments.
What shouldn’t a software deployment checklist have? Generally, software deployments should avoid detailed documentation that describes steps to be taken and possible errors. Details can change, and software deployment checklists should include only the steps that don’t change.
Software deployments should avoid
- Reliance on unstructured, manual testing
- Exclusive reliance on testing by developers
- Deployments that introduce new or changed functions without prior notification to business users
- Overuse of Emergency or Quick fixes and the software deployment checklist should reflect this.
Get a free demo of our software deployment tool.