Guideline: Deploying the Solution
This guideline describes activities that usually take place when moving the developed software into production.
Relationships
Main Description

Planning Transition Iterations

Software may be deployed into a production environment at the end of any Construction or Transition iteration. Deployment to production before the end of the project may be done to drive down risk by validating the application, deployment scripts, the deployment environment, and to get valuable feedback from operations and systems teams, as well as end user. These early deployments are often done on a limited scale in terms of target audience or deployment of only partial applications. For the deployment to work, one or several iterations are focused on work necessary to successfully release the system. In Transition, one or several iterations may be dedicated to preparing for a smooth deployment. The number of iterations depends on the complexity of the system and various other factors, as listed below. When planning for deployment, the work item list should be updated with relevant tasks related to:

  • Resolving defects
  • Testing installation or deployment scripts to avoid surprises in actual deployment 
  • Updating any operations & support test environments used to simulate production problems
  • Performing release-specific testing efforts such as pilot or beta testing to a subset of your end-user community where the system is deployed
  • Conducting acceptance reviews with stakeholders, including a final release acceptance testing effort where people outside of the team are involved and decide whether it truly meets their needs
  • Finalizing relevant documentation, such as operations and system manuals, end-user documentation and release notes
  • Creating physical collateral, such as installation media
  • Replacing and/or installing physical assets, including workstations, servers, and network components
  • Replacing existing software with new versions
  • Updating existing databases, including any relevant data migration and/or database schema changes
  • Production data population
  • Training end users and operations and support staff
  • Fixing any discrepancies discovered during the transition phase
  • Setting up management and operational systems and processes
  • Training the team that is taking over maintenance and evolution of the system
  • Deploying the software to the production environment

See [AMB07]  for more information.

Reviewing Transition Iterations

Transition iteration reviews have a different focus from other iterations in the project lifecycle. The goal is not to brainstorm around what features to develop next. Instead, reviews will assess the release management resources and procedures, the quality of the software, and how prepared users and operations teams are to face a move of the software into the production environment.