What is DevOps & Where Did it Come From?
DevOps gives teams the ability to build, test, and deploy at rapid speeds while maintaining a high standard of quality. This comes not only from introducing the right tools, but building a culture around transparency, communication, and cross-departmental collaboration.
Organizations of all shapes, sizes, and sectors are achieving powerful results with investments in DevOps, particularly as cloud-computing and containerization become the norm for enterprise software.
But where does DevOps come from? In this article, we’ll define DevOps and briefly outline its “origin story.” Read on to learn more.
What is the Definition of DevOps?
The simplest way to define DevOps is to consider the compound term itself. DevOps comes from development and operations and seeks to unite software developers and hardware operators.
DevOps uses a combination of mindset, culture, and a series of technical best practices that center around three core principles: collaboration, communication, and integration. Development and operation teams share methodologies and tools and work together as one united team.
That said, a better way to think about DevOps is to move away from asking, “What is DevOps?” or “why use DevOps?” and instead ask, “What can be achieved by implementing a DevOps culture?”
The promise of DevOps uses lies in how the practice can transform how work is done, moving away from linear workflows that work toward an end-goal, toward a system where continuous improvement is the goal.
Before DevOps, There Was Agile
To truly answer the question, “What is DevOps and where did it come from?” we’ll need to first talk about Agile.
The word “agile” is often used to describe athletes and dancers who move quickly, gracefully, and with precision.
In a development context, Agile refers to the Agile Software Development methodology that grew out of a need to improve on the traditional “waterfall” method where each step cascades from the previous step.
Waterfall doesn’t accommodate changing requirements once a project is underway, and testing begins after development is complete—resulting in slow delivery times and a high chance of bugs.
Essentially, Agile addresses
- Satisfy the customer through early and continuous delivery of high-value software.
- Welcome change—even in later stages. Agile processes leverage change to deliver products that give end-users a competitive edge.
- Working software is the primary method of tracking progress.
- Agile processes should be sustainable, allowing teams to maintain a consistent pace—indefinitely.
- Frequently deliver software.
- Continuous attention to achieving technical excellence and great design.
- Developers and business leaders must collaborate daily.
- Simplicity, or finding the value in saving workers from performing extra work.
- Build projects around motivated people.
- Self-organizing teams are the foundation for the best architectures, designs, and requirements.
- Face-to-face communications are the most effective way to share information.
- At routine intervals, teams reflect on how they can improve, then adjust the strategy accordingly.
While you might think we’ve learned our lesson by now, many Agile principles remain a radical departure from how IT departments work within most organizations.
Here are some common scenarios in organizations that haven’t yet embraced Agile or DevOps:
- The highest priority for the software development team may be the completion of more items from their “stack.”
- Operations may focus on avoiding end-user complaints. The customer often doesn’t show up.
- The status quo represents “peace and quiet” but not progress. Change is, at best, unwelcome.
- Updates and new versions, when they do show up, are downright feared, with the result of many users staying with the old version and creating all manner of havoc.
- Emphasis is on process and product rather than people.
By contrast, the Agile methodology is centered around individuals and how they interact and collaborate with colleagues and customers.
The Four Values of Agile
When Patrick DeBois developed “DevOps” in 2009, he described it as an extension of “Agile” development environments, which already aim to enhance the end-to-end software development process.
DeBois and his team developed an “Agile Manifesto” composed of a simple set of values and principles:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
The developers of the manifesto point out that there is value in the items on the right side of their list, but they value the left side items more.
Taking Agile to the Next Level: DevOps
As mentioned, Agile is an iterative approach that focuses on collaboration, feedback, and small, rapid releases, and was initially used to help developers work more efficiently.
As Agile matured, software developers were able to write working code faster than ever—but downstream processes such as quality testing and deployment were slowing the time to market and teams often faced the following challenges:
- Development was often unaware of quality assurance and operations roadblocks that prevented the software from working as planned.
- Development and ops were working toward opposing goals, causing inefficiency, tension, and blame anytime something went wrong.
- QA and Ops had little context for how features were used or where they were supposed to drive value for the business.
Where Agile was designed to streamline development, DevOps uses a process where development and operations join forces and work collaboratively toward the same goals, which include:
- Increasing deployment frequency.
- Reaching market faster.
- Reducing failure rates.
- Faster time to recovery.
- Shorter lead time between fixes.
What’s important to note here is that while Agile was a replacement for Waterfall, DevOps is an extension of Agile.
DevOps builds on Agile methodology, most notably by introducing the concept of CI/CD (continuous integration and continuous delivery), a process in which Dev and Ops teams work together to release code at regular intervals, collect feedback, and implement changes on a continuous loop.
Why Use DevOps?
Capturing the business value of DevOps depends on creating the conditions and culture that support consistent, high-quality software development at high speeds.
[adinserter name=”DevOps-Closing”]
Stay in Touch
Keep your competitive edge – subscribe to our newsletter for updates on emerging software engineering, data and AI, and cloud technology trends.