What Is DevOps?
DevOps — development operations — combines and automates software development and IT operations into cross-disciplinary teams that work together throughout all stages of the development lifecycle. This is intended to speed (and make more reliable) the building, testing, delivery, and iteration of higher-quality products by eliminating traditional development and operations siloes. In short, development and operations engineers work together through the whole service lifecycle, from ideation and design through development, testing, and production support.
As you read this article, you may find our Glossary of DevOps terms useful, so refer to it as you learn the jargon associated with development operations.
In a recent interview, Scrum Alliance® Certified Scrum Developer (CSD®) and Registered Education Provider Sherman Gomberg summed it up as integration and collaboration between product development and product operations.
“By integrating development and operations, ownership is assumed by a collective of one or more teams,” he explained. “They develop and produce new products while maintaining the current state of the product.”
By bringing together people, processes, and technology, DevOps teams focus on infrastructure automation, continuous delivery, and designing for operability to engineer for rapid iteration and resilience at scale. In this approach, operations team members leverage developers’ techniques for systems work, including source control, testing, and agile development processes.
It’s is worth noting that DevOps includes, but is not limited to, system administrators, systems engineers, operations staff, network engineers, release engineers, and security professionals. Often referred to in agile and Scrum communities as self-organizing, self-managing, or cross-functional, DevOps works to include every role, discipline, or accountability on the DevOps team involved in developing and maintaining a given product.
Is DevOps Agile?
Though many of the tools and ideas of “DevOps” evolved from agile development (as a culture, a workplace movement, and a philosophy), DevOps teams may use other methodologies.
Scrum Alliance Certified Scrum Developer Charles Hutchison explains, “DevOps is not considered an agile framework, and it does not replace agile frameworks. Instead, it expands the scope of the development activities to include operation responsibilities. It is an information technology practice that also may be followed in a non-agile environment.”
Agile development operates on a handful of pillars, namely the agile values laid out in the Agile Manifesto, agile principles, agile methods or frameworks (such as Scrum), and agile practices, as well as many of the tools common in the agile community (though these are not required in agile development).
The DevOps lifecycle is often depicted in an infinite loop to illustrate product iteration and constant collaboration, likely emerging from the integration of agile infrastructure, agile development, and agile operations, which were already popular among its early innovators.
“DevOps increases the organization’s ability to get quality products out to their customers sooner,” Hutchison said. “This is where the team is shifting from not just ‘doing agile,’ but also ‘being agile.’ Culture emerges with pride in quality, a sense of ownership, and an appreciation for the customer.”
Related: Distributed Team Release Planning
How DevOps Works
The benefits of DevOps include rapid delivery, scalability, reliability, and improved collaboration between formerly siloed departments, specifically development and operations teams. Here’s how DevOps teams make it work:
Plan. During a DevOps ideation phase, teams work to define problems and solutions, and describe the capabilities and features of the product, applications, and systems they hope to build. Agile methodologies show up during this phase as backlogs, continuous feedback or monitoring dashboards, bug tracking, Scrum events and/or Scrum accountabilities, and often, Kanban boards. Visibility is a key component of this phase.
Develop. When DevOps developers code (write, test, review, integrate, and build code into artifacts for deployment), their focus is on high-quality, rapid iteration. Tools to increase productivity, automation (including testing), and incremental iterations help maximize efficiency at this phase.
Deliver. Delivery in DevOps occurs when the application and a fully governed foundational infrastructure are deployed into a production environment, ideally with consistency and reliability. Before the application is delivered, teams define the process for release management and determine which approval stages must be manual while automating any gates that move the applications closer to the customer in the most scalable, frequent, repeatable, and controlled ways. Infrastructure configuration is also included in this phase.
Operate. DevOps teams value early detection and quick problem solving to avoid damaging the customer relationship. They work to ensure full visibility into the applications and supporting infrastructure to make maintenance and troubleshooting efficient within the production environment. Priorities in this practice include system reliability, strict security and governance, and high availability.
Investing in DevOps is more than just implementing new tools, Gomberg concluded.
“Most importantly, an investment in DevOps should include a commitment to automation practices, quality products, and exceeding customer expectations,” he said.
About the Authors
Sherman Gomberg is founder and CEO of Scrum Adventures and the visionary of the CaDoMi™ Agile Transformation Ecosystem. He has obtained his Scrum Alliance Certified ScrumMaster® (CSM®), Advanced Certified ScrumMaster (A-CSMSM), Certified Scrum Product Owner® (CSPO®), Certified Scrum Developer (CSD®), Certified Scrum Professional®-ScrumMaster (CSP®-SM), Certified Scrum Professional®-Product Owner (CSP®-PO), and is a Scrum Alliance Certified Registered Education Provider (REP®).
Charles Hutchison is a skilled information technology leader focused on the planning and implementation of IT systems and processes. He became an agilist in 2017 after joining Scrum Adventures. He has obtained his Scrum Alliance Certified ScrumMaster® (CSM®), Scrum Alliance Certified Scrum Product Owner® (CSPO®), Scrum Alliance Certified Scrum Developer (CSD®), Certified Scrum Professional®-ScrumMaster (CSP®-SM), Certified Scrum Professional®-Product Owner (CSP®-PO), and Agile Coach (ICP-ACC).