Why App Dev Needs A Better Deployment Pipeline

Nov 28, 2011 (03:11 AM EST)

Read the Original Article at

One important step to getting developers and IT operations working more closely is to make sure developers are writing code on the same environment it'll run on in production. It may sound obvious, but ask around with your developers, and you'll be surprised at how often that's not the case.

The next step is to build an automated test capability, so that every build is subject to not only the unit tests and function tests that verify new features but production environment tests that seek to uncover hidden defects. That's the advice of Jez Humble, co-author of Continuous Delivery and a consultant with ThoughtWorks Studios, an agile development consulting firm. The testing process should serve as an extension of the production environment, Humble says, so that software that's passed all the testing can be deployed with the push of a button, instead of a lot of manually written scripts, painful setbacks, and impromptu patches. Humble calls this the "deployment pipeline"--a well-defined environment where coders know if the software works or doesn't, so operations doesn't have to discover problems on its own. The upside for developers is that, if the pipeline approach works, they can submit code for deployment more often, since operations trusts it will not break the system.

"Developers have to own the SLAs," Humble says. "They're the ones who get called in the middle of the night if the software doesn't live up to expectations."

Go to the main story:
Where Agile Development Fails: IT Operations