Software release management is really not a new area of technology, but adoption of formal processes and automated tools in this area is shockingly low. Surprisingly, some IT organizations still think they can manage release management with Excel scripts. That’s just not true now.
The release of software is now part of a company’s brand promise. So if the firm’s software fails, its brand fails. If the software fails and the brand fails, there are more costs than there would have been to invest in modern software release management tools and practices.
The complexity of software systems is creating greater need for better software release management for automated ALM. IT environments are not simple, on-premise data centers. Today software often is released on multiple platforms and there are more types of software – apps, microservices, APIs – being deployed.
The more places an organization deploys applications, the more it needs application release automation, according to Theresa Lanowitz, co-founder of voke inc. “You need it to automatically keep track of everything that’s in a particular build,” she told me. This includes not only features in a new release, but any changes made in the staging environment, your test environment, and so on.
Lanowitz frequently hears DevOps pros say that their organizations are doing continuous integration, continuous deployment, continuous testing and “continuous everything.” Yet, voke’s research shows that very few organizations are really doing continuous integration. “The automation numbers are low, and you can’t really do anything continuous unless you have good automation basics in there,” she said. Not a whole lot of organizations have that. There’s still a lot of manual activity going on the software lifecycle and in software release management.
To do continuous processes, an organization has to start with architecting software systems soundly. The enterprise has to invest time and money to allow its application processes to evolve to the point where automation can be used. It takes automation to do things such as continuous integration, continuous testing, continuous deployment, and continuous release and so on.
“When people think about application release automation, they’re thinking about speed, speed, speed of deployment,” Lanowitz said. Agile development brought good things, but the main message people took from it is: “You just have to develop faster.” Because developers have to move at this quick pace all the time, the work of QA teams often has been pushed aside.
Time-to-market has been businesses’ top application development priority for over a decade, Lanowitz said. Her recent research, however, shows a shift to software quality being the primary concern. “QA has to play a dominant role in software release management today,” Lanowitz said. In particular, QA must take over requirements, because the quality of requirement elicitation is still abysmal in the enterprise.
The need for quality assurance is a critical reason for automating software release management. When companies invest in automation, QA is built into software release processes. Rather than being overrun by the need for speedy deployment, automation enables DevOps to control the software life cycle.