Many organizations start with “ad hoc” Agile Development practices, that is to say, not standardized but aimed at each time to satisfy their needs.Then they let individual Product Owners , with or without the agreement of their teams, decide when applications are ready to be released, when to schedule release dates and how often to schedule them.
This way of operating can generate a series of problems.
Firstly, these teams usually do not act alone and their programming can conflict with that of other teams whose support they may need at some point.
Secondly, the nature of an “ad hoc” Agile Development makes it more difficult to predict roadmaps because the amount of overhead costs related to different release programs may not be consistent from one version to another.
Thirdly, these work groups can generate quality problems if there is no indication of what types of changes to the application are appropriate for short or longer release cycles.
Finally, these teams tend to want to make “quick fixes”, “patches”, “support changes” or “emergency changes” frequently and without realizing that this makes it difficult to focus on more strategic improvements for each application.
In this case it happens that the agile development team releases a version, the product owner reports user complaints or production problems and corrections requests, the team prepares a patch release that only partially fixes the problems, the product owner reports further defects , the team chases it with another patch and the cycle repeats itself.
If this goes on, users feel frustrated with the quality of the application, the teams lose reputation and the product owners fail to meet their strategic roadmap.
Getting out of this cycle is essential and many teams can not do it alone.
They need someone to guide them:
- Recognizing the problems created by an “ad hoc” agile development;
- Defining the release policies that make sense for the company strategy and for the users / customers;
- Making sure that these modes become an internal standard.
To define the modalities for the release of the products of an Agile Development
To move from an “ad hoc” approach to a standardized approach it is necessary to:
- Define a frequency of change that makes sense for business strategy and for users. A B2C company that implements small incremental changes may want more frequent versions of a B2B company that develops analytics for its customers. Any version that contains new features, functional changes or substantial changes to the user interface often requires some form of user testing and training, so the release rate should align with how easy it is to engage the user community.
- Define the types of release that produce minimal impact on users. (Minor release, Major release, New version, System update). It is necessary to ensure that the releases focus on the changes in the applications compared to the changes in the system. In addition, smaller versions are characterized by shorter durations that require less time to engage users on changes, and therefore have less impact and technical risk. The main versions can not have indefinite durations and the duration should be standardized according to the company strategy and the technical capabilities of the organization.
- The release begins when the planning is started, not when ready for delivery . This is a change that the Agile Development team must recognize. Distribution planning to bring an application into production is not the same thing as release planning. Release planning should start before any development begins. It must start by defining company objectives, selecting the type of release and defining at least part of the backlog for what needs to be developed. It should include the definition of which business activities are required before and after the release. Once all these aspects have been assessed, a release date can be selected.
- Define the program for subsequent releases. Once a team has completed at least one successful version, lessons learned can think of a broader release strategy. This strategy must take into account the number of important releases, how many system updates are needed to keep the technologies up-to-date and the best way to plan secondary versions.
Once these governance modes are implemented, the optimization of the agile development cycle leads to shorter release times and the possibility of producing more frequent versions.