Improving your software release management process
In CIO Magazine, Mike Sutton and Tym Moore explained how they systematically improved software release management practices at a large telecom company by focusing on key factors affecting the release process, infrastructure, and automation. The themes of the advice were transparency, automation, and communication. The case study looked at an emergency situation for a large business in severe trouble, but the themes are universal. This article, published in 2008, is a classic; it’s practical and pragmatic and still has plenty to say about release management practices today. I liked the way Sutton and Moore focus first on the existing state of release management, noting how important it is for teams to know where they are at every stage. It's hard to imagine how an organization working on a release every three months could cut that down to a two-week cycle, but they did. There were some hiccups along the way, and effective automation at several levels crunched enough time out of the release cycle to get working code into production much faster. Automation was key to improving the software release management process at all levels and to developing a release infrastructure that works. You wouldn't expect that core infrastructure changes would happen rapidly, but they didn't have the time to wait. I was impressed just how rapidly the team overcame hardware issues, went into the software release cycle and changed every step, and got buy-in from a previously demoralized team. Systems automation was crucial here since there wasn't the time in the plan to simply improve the existing manual methods. You hope to not have to parachute into an emergency situation and have to change everything all at once. Yet too many software development systems limp along without realizing the value that a modern software release management system can bring to all aspects of an organization. Address the opportunity to improve before your software release management process becomes an emergency. The best way to do this is to ensure that your development and production environments are the same. That alone can really simplify your life.