DevOps: How to Adapt It to An Agile Methodology
DevOps brings together development and operations, while agile focuses on collaboration, customer feedback, and rapid releases.
Join the DZone community and get the full member experience.Join For Free
What Exactly Is Agile Methodology?
An agile methodology is a form of organization of development teams that allows successful IT projects of better quality than with a traditional development cycle.
One of the main levers of agile is to shorten the duration of development cycles and the frequency between the different releases.
Multiplying these iterations thus makes it possible to improve the product or service by permanently integrating the collected user feedback.
This relatively recent method has proven its effectiveness by enabling start-ups to become web giants — for example, GAFAs or NATUs — by developing ever more powerful products or services that meet user requirements.
There are several types of agile methods, such as the scrum method, one of the best known, extreme programming, or even Kanban from lean.
What Is DevOps Exactly?
DevOps is the rapprochement between two universes: the devs on one side, the developers, and on the other, the ops, the operational services.
Traditionally, these two universes are rather opposed: developers are supposed to create value and make the product/service ever more innovative, and the operational staff aim to maintain the stability of the infrastructures.
This often results in situations of conflict between these two “teams” with opposing interests, illustrated by the Wall of Confusion by Andrew Shafer and Lee Thompson. Moreover, it is often complex to know where the work of the developers stops and where that of the operational staff begins.
DevOps, which is, above all, an organizational culture, aims to smooth this developer/operational relationship in order to carry out production releases more quickly and of better quality.
In concrete terms, DevOps involves integrating these professions into a common team and aligning them with common objectives.
The participation of operational staff in dev meetings or a structured feedback loop can, for example, facilitate this organization.
Are DevOps and Agile Methodology Incompatible?
A priori, agile speaks more to the world of development because it meets the need to “release” features quickly.
When we think of “ops”, we rather think of stability and, therefore, on the contrary, a platform and a website that will evolve as little as possible. It is, therefore, natural to think that agile goes against the operational.
On the other hand, the agile methodology involves the planning of sprint tasks. However, some operational tasks cannot be planned, such as incidents in production that prevent users from taking full advantage of the service or an urgent request from the development team whose work is blocked.
This kind of event requires immediate action, so it is difficult to fit it into the traditional task prioritization scheme in an agile organization.
However, it is precisely the characteristic of an agile organization to allow development priorities to be adapted to changes in direction, in particular following user feedback.
This flexibility, for example, sets agile apart from production in a V-cycle. In the same way, we can completely imagine that the agile method offers more flexibility to operational staff.
On the other hand, it is necessary to take into account the specificities of their profession.
How to Adapt the Agile Methodology to DevOps?
Here are some tips that we can give you to enable operational staff to work in agile in the best conditions:
Formulate Requests in the Form of Tickets
Every sprint, developers have requests for ops. It is therefore important that the operational staff devote dedicated time to it, what at Padok we call the “Buffer”.
This allows the ops team to never slow down the development team and avoid jeopardizing its sprint.
For example, if the developers cannot access a configuration in a validation environment. This “Buffer” takes the form of a ticket in the “Sprint ops”, a resource in which one “draws” at each intervention for the development team.
Participate in Each Other's Events
When we think of agile methodology, we think of transparency and communication within teams. Although developers and operational staff have two different jobs, they work on the same product or service.
It, therefore, seems important that operational staff participates in dev events and vice versa. This makes it possible to anticipate future difficulties, whether technical or organizational (“I warn you, Tuesday at 2 p.m., we are going to break the preproduction for 30 minutes”).
These events are also an opportunity to get feedback and set up a continuous improvement process for the teams. If you apply the scrum method, this event dedicated to continuous improvement is called the retrospective.
Educate Dev and Ops Teams
Beyond agile, it is necessary to make development teams aware of the impact of the work of operational teams on the business and users.
Do they know the financial impact of a site up to 80% instead of 99%? During the sales, an e-commerce site selling clothing can lose up to 30,000 euros in the morning if the site goes down.
It is this type of information that will allow the devs to better value the work of the operational teams and, therefore, the constraints that they sometimes impose in the production of new functionalities.
These proposals are just a few examples of what an agile approach adapted to the world of DevOps can provide. Each project and each context is specific and requires tailor-made solutions.
Opinions expressed by DZone contributors are their own.