Application development methodology has certainly evolved over the years. Developers have moved through waterfall and agile development as the processes have improved and become more refined. The latest iteration of advanced application development and deployment practices is called “DevOps,” and it has been around for several years now.
This collection of practices and tools can greatly expedite an organization’s ability to rapidly deliver high-quality applications. Combining the words “development” and “operations,” DevOps refers to the agile, cooperative, and consistent relationship between development and IT operations teams. By improving communication and collaboration, it can greatly improve application development and delivery.
“DevOps encompasses a few things,” says Myles Brown, Senior Cloud and DevOps Advisor for ExitCertified. “It’s a cultural change wrapped around a set of common practices. Then there are tools surrounding that.”
The most significant advancement is greater communication between the teams developing the apps and the teams deploying and maintaining the apps. “One of the primary benefits is to increase the communication between development and operations,” says Brown. And from that increased communication should come greater cooperation and collaboration.
“For a long time, there was this blame game. Developers would build an app and hand it off to operations to deploy,” says Brown. “Then, you often see fighting fires and a bunch of finger-pointing. ‘You wrote bad code,’ or ‘Your environment is different from what you said it was.’ The whole point of DevOps is to remove those barriers and prevent those ‘fires.’ Let’s figure out ways we can get the Dev side and the Ops side talking more along the way.”
That manifests in a few different ways, says Brown. “We break the app into smaller pieces—what we would call microservices, these days. Then you have a cross-functional team in charge of that set of services; from building a roadmap to gathering requirements to building the actual app to putting it into production to maintaining it.”
Brown references Amazon, which started this process in the early 2000s. “They blew up this monolithic app into microservices,” he says. Then they assigned smaller teams to each service. “They coined the ‘two-pizza rule’ when it comes to forming teams. That means eight to ten people—a team you could feed with two pizzas. Once a team gets bigger than that, the meetings are ungainly and hard to manage, and it’s hard to ensure effective communication. Worst of all, there’s not enough pizza for everyone. You take some developers, some testers, some operations people and that’s your two-pizza team.”
One of the biggest mistakes companies make when moving to DevOps is to approach it as if it’s a discrete project. “Early on with DevOps adoption, companies seemed to think it’s a project,” says Brown. “But DevOps is a cultural change in how teams communicate and how they build software. And it has to come from the CIO or head of development. It has to come from the top down.”
As an organization moves to adopt DevOps, that transition can require additional training. “There’s both top-level training for the business decision–making people and technical training for the actual practitioners,” he says. Becoming well trained in DevOps methodology and practices is essential for enterprise application developers. Some of the critical areas upon which DevOps professionals should focus include: