Not every organization is prepared to dive into the swift, short iterations of agile, but that doesn’t mean the organization isn’t ready for a change. Johanna Rothman suggests looking to an iterative lifecycle called “release trains” as you begin your journey.
A colleague was looking for a way to move toward agile but not really transition all the way. “I don’t think we’re ready for two- or three-week iterations,” he said. “We want to move a little more slowly than that. But, we do want to do something more agile than waterfall. And, we want to help our customers move toward taking more frequent releases. They aren’t ready to take a release every month, even if we were ready to release that often. Is there some sort of middle ground?”
Release trains are that middle ground. When you use release trains, you commit to yourself and your customers to release your product on a particular date every quarter. That’s the iteration.
What Are Release Trains
Release trains are an iterative and incremental lifecycle, but they are not agile. The iterations are typically twelve weeks long (a quarter), but sometimes they are as long as a half-year or as short as six weeks. In the iteration, the project team builds chunks of working product. At the end of the iteration, the team releases the product to the customer. The train has a timetable, always leaving the station at the same time every quarter. The team commits to itself and its customers that it will deliver working product every train and that the train will not be late.
Maintaining that heartbeat—that timebox—is key to the success of the release train. You can de-scope features from a particular train, but you can never allow a train to be late. That helps the project team focus on delivering value and helps your customer become accustomed to taking the product on a more frequent basis.
Release trains decouple the releasing of the product from the projects—that is, release dates are set in stone in advance and often are tied to a specific date in the quarter, just like a train’s timetable. Then, the contents of the train are determined by what the team completes. When a feature is done, it is eligible to be released. Release trains never extend the timebox, just as trains never change the time they leave the station. (In the US, trains rarely run on time. I am told that trains run on time in Europe. I’m using the European model of trains running on time here.)