What is Agile Methodology?
An agile methodology can be used to organize development teams. This allows IT projects to be more successful than traditional development cycles.
One of the main levers of Agile is known for shortening development cycles. You can also see the frequency of the various releases. These iterations can be multiplied to make it possible to make improvements to the product or service through the permanent integration of user feedback.
This relatively recent method has proven d its effectiveness in enabling start-ups to become web giants (e.g. GAFAs or NATUs).By developing products and services that are more powerful, and meet the needs of users.
There are many types of agile methods. The most well-known is scrum, which is the most popular, and extreme programming or Kanban from Lean.
What Is DevOps Exactly?
DevOps brings together two universes: developers on one side and developers on the other. The ops, or operational services, on the other.
These two universes have been traditionally quite opposite: developers create value and make the product/service more innovative, while the operational staff maintains the stability of the infrastructures.
These two “teams” often end up in conflict with each other’s interests. Lee Thompson and Andrew Shafer illustrate this by creating the Wall of Confusion. It can be difficult to determine where the work of developers ends and where it begins for the operational staff.
DevOps, which is, above all, an organizational culture, aims to facilitate this developer/operations relationship so that it can be released to production more quickly and with better quality.
In concrete terms, DevOps is the integration of these professions into a common team and the alignment with common goals.
This organization can be made easier by operational staff participating in dev meetings and a structured feedback loop.
Also read: 7 Principles for A Successful DevOps Culture
Is DevOps and Agile Methodology incompatible?
A priori, Agile speaks more to world development because it meets the requirement to “release” features quickly.
When we think of “ops”, We rather think of operations as stability. On the contrary, we should think about a platform or website that is stable. Therefore, it is natural to believe that agile goes against operations.
Agile methodology, on the other hand, involves the planning and execution of sprint tasks. Some operational tasks are not possible to plan, for example, production incidents that stop users from using the service fully or urgent requests from the development team who have their work blocked.
This type of event is urgent and requires immediate action. It’s difficult to incorporate it into the traditional task prioritization system within an agile organization.
It is the essence of agile organizations to adapt development priorities to changes in direction, especially following user feedback.
This flexibility is what sets agile apart from production within a V cycle. The same applies to you, we can completely imagine that the agile method allows for more flexibility in operational staff.
However, it is important to consider the particularities of each profession.
How can you adapt the Agile Methodology for DevOps?
These are some tips to help operational staff to work in agile in the best conditions:
Formulate requests in the form of tickets
Developers have requests for operations every sprint. The operational staff must dedicate dedicated time to this task, which Padok calls the “Buffer”.
This allows the ops to not slow down the development team or jeopardize its sprint.
If the developers are unable to access a configuration within a validation environment, it could be an example. This buffer is represented by a ticket in “Sprint ops “, which allows one to “draw” at each intervention of the development team.
Participate in Each Other’s Events
Agile methodology is about transparency and communication between teams. Although they have different roles, developers and operational staff work together on the same product.
Operational staff should be able to participate in dev events, and vice versa. This allows us to predict future problems, both technical and organizational. (I warn you, Tuesday, at 2 p.m. we will break the preproduction for thirty minutes.”
These events provide a forum for feedback and help to establish a continuous improvement process. A retrospective is an event that focuses on continuous improvement using the scrum methodology.
Educate Dev and Ops Teams
Beyond agile, It is important to raise awareness among development teams about the effects of operational work on users and the business.
Are they aware of the financial consequences of a site that is 80% rather than 99%? An e-commerce website selling clothes can lose as much as 30,000 euros per day if it goes down.
This type of information will enable the Devs to improve the value of the work of the operational team and therefore, the constraints that can sometimes be a hindrance to the production of new functionalities.
These are just a few examples that an agile approach can offer in the world of DevOps. Every project and each context is unique and needs a tailor-made solution.