You are here

Multiple Releases In Progress

A major goal in agile is to stay releasable. Do a little. Get feedback. Do a little more. In fact, a great question to ask is what would prevent you from releasing what you have now? The answer can help you highlight areas where changes might have a significant benefit. Look at each thing, prioritize it relative to the others and then try to change so that each item is handled during each iteration.

For example, if the answer is regression tests, then figure out how to change things so that you can run your regression tests at least every iteration. This might lead you to change how you do regression testing (creating and relying much more on automated tests).

Ultimately, these changes will result in a lot of benefits. By tightening the feedback loop, you'll know quickly when you break something. This makes it a lot easier to track down (since it occurred in the last day or days rather than in the last few months). Releases become more predictable and the organization more nimble.

The time at the end of the release where you take care of any unresolved items (those that don't get taken care of with each iteration) is often called hardening. The goal is to have as few hardening iterations as possible; eventually eliminating the need for them.

Given that context, let's talk about the situation where multiple releases are being developed simultaneously. This most likely means that the number / size of items preventing you from releasing is quite large. And therefore you have quite a bit of time after new functionality stops being delivered before you can release the software.

Your first goal should be to reduce the length of your hardening. Move towards staying releasable. Until you get there keep the teams focused on the old release before starting the new one. Use that focus to reduce the hardening rather than lengthening it by moving resources on to the next thing.

If for some reason you do try to straddle the two releases, don't do it with each individual. Keep people focused on one release or the other, don't force them to split time. Focus is a valuable thing. Lack of it kills productivity. People tend to lose a lot of time in context switching.

Even better, move people over on a team by team basis. It takes a while for teams to jell and start to really produce. If you gradually shift people over to the team then you're restarting this process every time you do so.

Stay releasable. Focus. Enjoy the benefits.

Theme by Danetsoft and Danang Probo Sayekti inspired by Maksimer