Saturday, May 16, 2009

The Convergence of Continuous Integration and Continous Release

There is an emerging paradigm with continuous release that may result in a convergence between it and continuous integration.

The concept of continuous release is not new. However, in most instances where the term is used it refers to deploying and testing the application on a periodic basis - usually nightly - and deploying the entire application. With the latest paradigm, continuous release becomes more like continuous integration - when changes to a component are checked into the version control system, not only does it result in an immediate action of building the component but is extended to include testing and releasing it.

With this paradigm, which I'll call true continuous release, the benefits are:
  • In true Agile fashion it provides immediate user feedback thus adding another layer to the Agile feedback loop.
  • Safety with assuming the risk of integrating smaller and more efficient releases as opposed to a much larger releases of whole applications or large subsets of it.
  • Users are provided the flexibility to elect which features they want to upgrade/install.
A few of the requirements for true continuous release are:
  • Strong feature coverage with automated testing.
  • Tight process with recording component versions.
  • Significant complexity related to the recursive nature of component dependencies.
I highly recommend a white paper on this emerging release methodology that you can find here. It contains valuable information of its benefits as well as implementation difficulties.

Is this the next efficiency model? Is its value limited to companies such as online gaming companies that are structured based on frequent and noticeable changes? Are its complexities too significant that most organizations will pass on implementing it?

I'm interested in your thoughts.

No comments:

Post a Comment

Web Analytics