Releasing does not have to be unpredictable
Release management is the process of deploying software applications to multiple environments for the purpose of testing them properly on all required facets prior to deploying them to production.
|
| Release Early, Release Often |
|
In agile development, releasing more often allows getting feedback from users and their representatives to quickly adapt the development effort. It also helps realize return on investment earlier based on the new features delivered. There is more and more pressure to align release process velocity with development teams as the cost and duration of the release process have a direct impact on how often a team is able to release, potentially mitigating some of these benefits.
 |
Frequent releases also reduces the amount of change included in each one of them, reducing the associated risks. Releasing often is a key ingredient in the overall value produced by a development team.
|
| One package to rule them all |
|
|
Releasing software is more than just releasing code. It is actually releasing everything that is required for the software to provide the expected functionality to the end users, and the people who funded the project. This means that the release package also includes all the installation, configuration and testing artifacts needed in each environments along the release path.
|
| Practice makes perfect |
|
Deploying the same way through all the environments in the release process ensures that all the moving parts have been tested together over and over and work together properly. If a team uses the same mechanisms throughout the release cycle, chances are that they will have been tested hundreds of times before a given version goes to production.
|
 |
Versioning of all configurations and installation information for the complete release package is required in order to have a repeatable process. The principle is to build the executable and all related artifacts once and deploy that same package to all the environments using the same mechanisms, ensuring that what was tested in earlier environments is what is actually promoted. This principle avoids many deployments related bugs.
|
Automate or Perish!
|
With the growing complexity of installations, the various players involved, the increased frequency and the shorter time allocated for releasing, it is fast becoming obvious that software development teams need to automate their release process in order to meet today’s challenges. The release process is now becoming more and more a barrier to agile adoption and delaying many of its related benefits. The actual time to perform, support and document installations is time-consuming; and often require our most senior and productive people's time. They are also often involved in diagnosing and solving issues between all departments when a deployment does not succeed, which becomes very costly indeed.
InRelease, combined with Microsoft Visual Studio and Team Foundation Server provides an end-to-end solution for automating the release process that we hope will meet your needs. However, whether you use our solution or another, we believe that automating the release cycle should be a priority for any serious development organization at this point in time. |
See InRelease Features >
|