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.
- Strong feature coverage with automated testing.
- Tight process with recording component versions.
- Significant complexity related to the recursive nature of component dependencies.
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