Tens of thousands of developers have adopted agile development methodologies -- a highly iterative approach that keeps coding projects from going off the rails, out of scope, or over budget. But when those projects need to move from the development team to operations for load or functionality testing, they're no longer so agile.
"When programmers have to put in a request for system resources and go through that whole approval and provisioning process, projects can stop dead in their tracks," says Brian Moloney, managing partner of Web design and development firm Imaginary Landscape.
The project you need to own: Building a cross-functional devops team that blends programming chops with sysadmin acumen to keep projects flowing. "It requires a blended skill set," says Moloney. "Programmers need the authority to make administrative changes, and Ops needs to know how to do a little coding. That way the dev team doesn't have to stop the flow of what it's doing to disconnect and then reconnect the project."
Interdisciplinary skills become even more important as organizations build apps to run in the cloud, says Todd Olson, vice president of products at Rally Software, an agile project management and coaching firm. "Developing for the cloud affects how software is written," he says. "Coordinating what happens to that binary after it leaves Dev's hands is even harder. If you're doing both agile and cloud deployment, devops becomes something you really can't ignore."
The best way to get started? "Select a small proof-of-concept project, pluck people from each silo, put them in a room together, and look at the result," says Moloney.
If this is such a great idea, why isn't everyone doing it? A lot of organizations haven't solved the first problem, yet -- getting good code out the door quickly, says Olson. Interdepartmental politics also plays a role, especially in larger organizations. And the devops concept is still fairly new, while divisions between developers and admins are not.
"Dev people and ops people speak different languages," Olson says. "The role of the ops guy is to reduce risk so he doesn't get desperate phone calls on the weekend. The goal of the dev team is to produce as much good new stuff as possible. There's a conflict there. You can't just buy a tool to make it happen. It requires a change in culture."