The Next Evolution of DevOps
DevOps is the modern convergence of people, processes and tools to create a continuous software delivery stream. Much like the code it produces, the concept of DevOps itself is continuously adapting to encompass new ideas, methods, and technologies. So, where is DevOps headed next?
The delivery stream of yesterday was a segmented processes, often separating key teams and concepts into ‘silos’ where team members focused on their individual tasks. Coders coded, testers tested, and security experts tested safety. But the new and evolving DevOps process merges these silos into one team where members collaborate from concept through delivery.
More importantly, today’s DevOps engineers don’t view the delivery process as linear, with a beginning and an end. Rather, the teams work simultaneously and in parallel on various facets of the work-stream. Continuous improvement, testing, and delivery have become the new gold standards, with production releases happening daily rather than monthly or quarterly. Below are some tips on building a DevOps culture geared toward continuous delivery.
An Agile Approach to DevOps
Some have argued that Agile and DevOps approaches conflict, with some aspects of their execution interfering with or negating each other. But in reality, an evolved DevOps culture closely mirrors the practices of an Agile one, especially by prioritizing human interaction. Let’s compare the four key values from the Agile Manifesto to partner principles in DevOps.
1) Individuals and interactions over processes and tools
This tenet of Agile merges seamlessly with DevOps practice of focusing on the people upon which the interactions and tools will orbit. Both philosophies stress regular and empowered interaction between team members.
2) Working software over comprehensive documentation
In both Agile and DevOps environments it’s harder to document each change, because change is constantly occurring. This doesn’t negate the need for thorough and accurate logging, but a circular cycle of identifying and deploying improvements makes deep documentation of each change counterproductive.
3) Customer collaboration over contract negotiation
An often misunderstood aspect of Agile development, this principle perfectly fits the DevOps approach to treating the deliverable product constantly, rather than one hard delivery on a predetermined schedule. This doesn’t mean teams can ignore basic business principles; customers will still expect deliverables on deadlines.
However, by approaching delivery as an interactive process where the client works with development to identify problems and suggest and implement improvements, DevOps practices organically layer with the Agile approach.
4) Responding to change over following a plan
Agile and DevOps both stress the need to identify and fix problems rather than following a static troubleshooting flowchart that may have been last updated several releases ago and no longer reflects the active environment. In a continuous delivery model new innovations will produce the unforeseen.
Agile thinking helps DevOps teams operate fluidly, using Scrums, Sprints, and powerful DevOps tools to fix problems in real-time using whatever resources necessary.
The Evolution of Agile: How Traditional DevOps Roles Are Changing
This is not to say that Agile and DevOps are the same thing. As a powerful development movement for almost two decades, Agile methodology informed and shaped DevOps philosophy. But DevOps reduces or removes compartments (silos) prior to continuous integration, which delineated roles for developers, QA experts, production release managers, and more. In a true DevOps all of these roles are interactive and interdependent through the entire delivery process.
Each individual in an efficient DevOps culture interacts with and depends upon other team members to move the team forward.Agile shops have adopted three approaches for incorporating DevOps and continuous delivery models.
- Close collaboration. Rather than building silos between development and operational teams, daily communication and immersion in all aspects of the delivery process gives all team members the opportunity to walk in their colleagues’ shoes. In doing so all team members better understand individual challenges and can collaborate on fixes and improvements in each step of delivery. This is a minor evolution of the Agile philosophy and should be easiest to implement, especially in early movement toward continuous delivery.
- Dedicated DevOps teams. This approach generally deploys dedicated DevOps forces against the biggest pain points an organization if facing in an attempt to rapidly improved flawed processes. In a perfect example a dedicated team would first fix old pain points then gradually apply successful methods more deeply into the Agile process.
- Cross-functional teams. The cross-functional approach takes the power of dedicated teams but staffs them with decision-making representatives from each discipline, allowing them to swarm problems and make decisions in real-time. This is a powerful approach to removing existing obstacles and shaping DevOps continuous delivery moving forward.
For many organizations one or all of these team approaches will prove the most effective. The key to achieving harmony between Agile and DevOps methods is remembering the essential principle of the elastic human interactions in both.
Pushing Quality Closer to the Source via Agile DevOps
A latent problem in development can and often does become an emergency in production. But by then the problem has moved one or more steps away from its origin and the people who can fix it. The farther a problem moves from the source, the harder and more expensive it is to correct.
The DevOps principle of pushing quality closer to the source is achieved through constant interaction and peer review between stakeholders, including:
- Quality assurance and testing
- Other assets
Agile practices like Scrums and daily standups help create group awareness and ownership of problems. This eliminates time-consuming negotiations between silos and delays for management approval and pushes quality closer to the people charged with controlling it.
Create a DevOps 2.0 Culture
As classic distinctions between software development and IT operations continue to dissolve in environments that call for continuous delivery, it will take Agile leadership, team-building, and the right tools to adapt. Remember that no matter how sophisticated your environment, processes, and tools, it’s the people behind them that shape change into effective, forward-looking DevOps culture and best practices.