The popularity of agile software development methods started about decade ago and at present these methods are employed by many big, medium size and small companies. Traditionally, agile transformation starts from the bottom up, from the lower level of software development, often it begins as an initiative from developers.
This new release model is part of process changes that have seen the implementation of lean and agile values and principles in Cadmatic. In early 2013 Cadmatic’s product development started applying the scrum agile methodology. A very important element of scrum is the organization of planning and development around short time-boxed increments (in our case two weeks) called sprints. Each sprint delivers a potentially shippable product increment. The Sprints provide fast plan-do-learn cadence, i.e. a sustainable regular iteration rhythm, for product development. This new quarterly release model called Agile Release Train provides slower, but quite frequent, time-boxed cadence for releasing. Agile Release Train is a well-known software industry term introduced by Dean Leffingwell in his book Scaling Software Agility. It is based on set of common operating principles including:
- Frequent, periodic planning and release dates for the products are fixed
- Dates are fixed and quality is fixed – scope is variable
- Release Trains are executed as a series of sprints
The train refers to a metaphor where the train departs from the station on a reliable schedule. The train’s cargo that is delivered can be seen as functionalities that were ready in time to be available for the users in a software release. The train does not wait. Functionality that was not mature enough will wait for the next train, which will come quite soon. Agile Release Train aligns different Scrum software development teams to a common mission, schedule, and cadence. It is a spinal cord of continuous software product development flow. It also promotes internal company communication because the release name directly indicates the timing of the release. Agile enterprise Agile Release Train provides Cadmatic level cadence and synchronization, not only for software development but several other activities such as strategy follow-up and updates, product portfolio management, road mapping and marketing. In every quarter, progress and what has changed in our understanding about customers’ needs is evaluated. Plans are not carved in stone. Cadmatic frequently updates different level plans to deliver the best possible value to the end users and their organizations. The whole enterprise becomes agile and lean.
Plans are not carved in stone. Cadmatic frequently updates different level plans to deliver the best possible value to the end users and their organizations. The whole enterprise becomes agile and lean.
The level of success of using agile frameworks on a large scale is dictated by how much the same principles are shared within the organization as a whole.Scaling agile often understood in a meaning of involving more teams into the use of agile methods. This could be divided into two main directions: one is about bigger software development teams with a large amount of developers involved or distributed location of teams, other about applying agile for non-software development activities. Also, one of the possible ways is to use scrum of the scrum, when leaders of several scrum teams become scrum team themselves.
What is in all this for our people?
Creating new functionality in the software requires concentration and effort. Using scrum approach people can concentrate on what they do without a need to worry about the whole picture. In the end of each scrum and in the beginning of next one – team gathers together to check status, review progress and commonly decide what to tackle next. It’s almost like making a to-do list regularly to achieve the best result.
What is in all this for the customers?
There are several benefits for Cadmatic user organizations. First and foremost of these is that Cadmatic releases deliver new functionality 3 times a year. Previously we had 4 quarterly releases, but now optimized our processes for 3 tertial releases to accommodate long break of summer vacations that was making planning difficult before. The traditional approach of releasing tends to lead to unreliable slipping release schedules. The new release name (2017T1-2017T2-2017T3) helps in communication as the release name now directly indicates when the release was or will be made. The high quality of releases can be maintained. As the software is developed in three fixed time boxes and new functionality released as soon it is mature; there are no longer major and minor releases. Naturally, there will be differences in the amount of functionality visible for users between releases, but the development effort for each release is equal. This approach not only mitigates bug-related risks but also improves quality via the feedback provided by users about these frequent releases. Naturally, the assumption is not that user organizations will always take new releases into use. For all releases, however, there will at least be some organizations that will take them into use and provide valuable feedback. This will eventually benefit all the user organizations. Some of the most useful improvements are easy to implement, so-called low hanging fruits. Frequent releases provide a vehicle to make those improvements promptly available for end users.