Quickstart guide to DevOps

Organizations are still figuring out what “DevOps” means to them. A couple of recent brief articles, along with two already-popular books, will help.

Both Chris Preimesberger in “Putting DevOps to Work in the Enterprise: 10 Tips for Success” and Mike Kavis in “How DevOps can Turn Fragile to Agile” rightly emphasize that DevOps has more to do with culture and attitude than a particular technical toolset or methodologic ritual. The fundamental intent of DevOps is to move beyond “siloed” Development and Operations with painfully dramatic batch releases to a more stream-oriented model where products are continuously tested, staged, and fit for transition to production. “The end result is better quality software”, Kavis advertises.

Note that the goal is not a silo with a new name: it’s not enough to dump a few employees into a DevOps bag and fantasize that they’ll work out the details. DevOps is a culture (as writers on the subject often aver), and its realization involves fundamental changes in work processes and the organization chart.

One way to understand DevOps mentality quickly is to read The Phoenix Project: a Novel About IT, DevOps, and Helping Your Business Win. The slightly older and 50% longer Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation provides a more conventional treatment of the same landscape.

One frustration in DevOps for me is that it generally excludes several of the domains I see as instrumental to successful products, including Testing, Documentation, Training, Human Factors, and Support. These areas, too, benefit from “full visibility into the entire flow of work”, and have valuable insight to offer. Finding the right balance remains a delicate art: pack too many people into a Product team, and it slows down to the point of irrelevance; slim it down to just Development or just DevOps, though, and there’s a big risk the team will efficiently deploy the wrong product. The best advice I know is to bring along everyone who is passionate about delivering a great experience to customers, send everyone else away, and use the DevOps principles of continuous integration and continuous delivery from the first day.