DevOps Defined
by Linda Westfall
“DevOps is the emerging professional movement that advocates a collaborative working relationship between Development and IT Operations, resulting in the fast flow of planned work (e.g., high deploy rates) while simultaneously increasing the reliability, stability, resilience, and security of the production environment” (Kim 2023).
Historically, agile methods have focused on the development of software. This can result in problems if development releases software more and more rapidly but traditional information technology (IT) operations have not changed their methods to keep up with rapid-fire software releases and deployments into operations.
With its success, DevOps has been extended to integrate other groups that influence the technical software-value streams into the DevOps team, including security (DevSecOps), quality (DevQualOps), product management, marketing, and business management, thus breaking down the silos between these various groups. This extension allows a single team to manage the entire software product life cycle and all of its practices from initial planning, through development, build, and testing, to integration, release, deployment, and monitoring, to looping back into planning the next cycle.
The goals of DevOps are to:
- Increase interpersonal communications by breaking down the silos and increasing feedback loops
- Shorten software product cycle times to frequently deliver enhancements, fixes, and other updates that provide value to the stakeholders (e.g., up to hundreds or even thousands of releases per day) without impacting the stability and reliability of operations
- Quickly detect and correct failures and other issues when they occur and reduce technical debt
- Apply lean management principles to software development
- Implement automation where possible to remove the need for repetitive and tedious manual operations that can be error-prone
- Establish measurements that supply useful information to manage software products and processes
- Rigorously improve software products and processes
- Create “a culture that fosters two things: continual experimentation, which requires taking risks and learning from success and failure and understanding that repetition and practice is the prerequisite to mastery.” (Kim 2023).
The flow of the DevOps practices is typically represented as an infinity sign, as illustrated in the figure above because the practices loop back and are continuously repeated. DevOps practices include:
- Plan: The development team meets with the product owners and other stakeholders to determine their goals and create a plan for implementing those goals.
- Implement: The development team works with the product owners and other stakeholders to refine their business needs. The development team then designs and codes the system and its software to meet those needs. Distributed version control tools help ensure that each developer is always working on the most current version of the code.
- Continuous build: As soon as new or modified software is checked into the control libraries, automation is used to create a new build that includes those
- Tools feedback any issues found during the build to the appropriate developer(s).
- Continuous test: Each new build is then tested using automated testing techniques and tools to ensure software quality. Any identified issues are again fed back to the appropriate developer(s).
- Continuous integration: When testing is complete, the new or updated software is automatically integrated (packaged) into the existing codebase in a production-like staging environment.
- Continuous deployment: Once the software is staged, it can be automatically deployed into the operational environment (push system) or deployed on demand from production (pull system).
- Operations: The software is used and supported in the production environment(s), and those production environments are controlled and managed.
- Continuous monitoring: Monitoring is performed in operations to provide information about the quality and health of the software. Automated tools can be used during this activity to monitor the software and its platform and check the system's performance. The resulting information (e.g., field failures, improvement opportunities, and issues) is fed into the next planning activity, and the cycle is restarted for the next updates.
References
Kim 2023: Gene Kim. 2023. “Top 11 Things You Need To Know About DevOps.” IT Revolution Press. (available at https://www.thinkhdi.com/~/media/HDICorp/Files/White-Papers/whtppr-1112-devops-kim.pdf)
Westfall 2024: This article is an excerpt from The Certified Software Quality Engineer Handbook, 3rd Edition by Linda Westfall. This handbook is scheduled to be published by Quality Press in late September or early October 2024.
Author
Linda Westfall is the president of The Westfall Team, which provides software engineering, quality, and project/risk management training and consulting services. Linda has more than 45 years of experience in the software industry. Linda is the author of The Certified Software Quality Engineer Handbook 3rd Edition. Linda’s hobbies include building fireworks, and she is a Pyrotechnics Guild International Grand Master. You can contact Linda by emailing [email protected].
The Westfall Team Posts System & Software Engineering Resources.
These resources are free to anyone who wants to read or download them. Subscribe to the Software Excellence Academy to be notified when new resources are added.