Continuous delivery revs up software updates

Company wide buy-in is needed in order to automate software delivery

Continuous delivery, which involves rapid updates to software to keep up with changing business demands, presents opportunities in agility and automation, proponents say, but implementing continuous delivery and its critical process changes can be tricky.

The concept can offer flexibility and improve customer service, advocates stressed. "To me, [continuous delivery] has to do with the different expectations from software customers today," said Luis Eduardo Colon, director of research and development at business process solutions provider CDS Global.

Eduardo recalled when it was permissible to release code once a year. But those days are gone. "It's a matter of the game's changed, and we as technologists need to adapt to that," he said. Now, changes have to be instantaneous without sacrificing quality.

Continuous delivery covers processes spanning from development to production, including code testing, release automation, automating infrastructure, and managing code once it is in production, said Andi Gutmans, CEO of PHP tools vendor Zend Technologies. "That whole process has to be automated, consistent, and drive high quality."

He sees the movement to mobile and cloud services driving continuous delivery. "It's a huge issue for companies." Continuous delivery involves tools, people, and mindset, with an element of dev ops thrown in, said Gutman. "Continuous delivery is a more complete view of what it really means to get code into [the] cloud quickly at high quality."

At the recent ZendCon PHP conference in Silicon Valley, Colon detailed CDS's own continuous delivery pipeline, which has involved processes ranging from writing and committing code to code metrics and unit testing. The process also covers autoconfigure environments and deployment from packages and features a version control system, with CDS looking to switch from Mercurial to Git.

Continuous delivery: Brute-force automation

"For me, continuous delivery is standardization, process, and brute-force automation," said Rajesh Khazanchi, VMware group product manager. He described continuous delivery as a process in which developers check in code, builds occur, software packages are released, and deployment kicks in.

But implementing a continuous delivery system has to be done carefully, Colon stressed. "I would argue that it would be very hard to do it in a couple of weeks, just because there's a lot of pieces and details, and it means you have to take people with different ownerships and different roles and get them to work together."

The right tooling is critical to reinforce the cultural shift of continuous delivery, said Adam Jacob, chief developer officer at IT infrastructure automation vendor Opscode. "It's a big cultural shift, from releasing once a month, once a year, whatever, to doing it all the time," said Jacob, who is the author of the Chef automation platform. Colon, meanwhile, emphasized people and patience as important, pointing out that continuous delivery, continuous integration, and agile are all intertwined.

Get everyone on board

Everyone involved in a continuous delivery effort has to understand the complete process, said Maurice Kherlakian, lead solutions architect at Zend. "Everybody has to understand everything in order to be as streamlined as possible." Also, education is critical, Khazanchi said. "Just don't rush into starting this process," he said. "It's more about making sure every single person on your team understands what you're trying to do. " He suggested a phased approach to implementation.

Proponents acknowledge pushback issues in implementing continuous delivery. "The biggest pushback is that the code base usually is not ready for the process," Kherlakian said. Getting it ready can be challenging; writing tests takes time, but management just wants more features. "It's a hard sell, sometimes."

Another issue is documentation, he added. Write too much, and it will not get read, Kherlakian said. Khazanchi concurred, recalling an experience in which implementers wrote too much documentation. "Nobody's going to read those. So it's extremely important to write quality documentation."

This story, "Continuous delivery revs up software updates," was originally published at Get the first word on what the important tech news really means with the InfoWorld Tech Watch blog. For the latest developments in business technology news, follow on Twitter.

Copyright © 2013 IDG Communications, Inc.