23/05/2017 | Expert opinion - Maxime Orand, Consultant, Hardis Group
There is nothing new about being tempted to wipe the slate clean when a new approach is introduced. However, a good medium-term approach is to take the best from each methodology. DevOps and ITIL have what it takes to achieve efficient development and operations management without sacrificing precision or creativity.
DevOps vs ITIL: a complex issue
Much like a political divide, opinions are often pretty clear cut as to whether agile methods, particularly DevOps and ITIL, are compatible or not. It is a good question as the methodologies concern different challenges and therefore teams: ITIL is from the world of operations just as agile and DevOps take their inspiration from development. And there is no shortage of arguments, and not always legitimate ones, to differentiate them: agile vs static or fast vs slow (to benefit stability). But, in actual fact, the reality is a lot more complex.
There is no point prolonging the suspense: yes, DevOps and ITIL are compatible. As although their respective approaches are clearly different, the aim of both methodologies is to implement best practices. Different definitely, contradictory, definitely not. It is therefore pointless to choose between the two. Nevertheless, to combine them into an efficient overall development and operations management approach, precision and creativity are certainly required. In fact, they will be the basic requirements for overcoming differences in terms of vision and practices.
The difference in timing is also not to be underestimated: ITIL, which was created to make up for the absence of formal application lifecycle management processes, was mainly disseminated in the last decade. In contrast, many people consider DevOps to be a “simple” extension of agile to operating tasks which just needs to be introduced to the appropriate teams. But in actual fact, as ITIL had already been widely disseminated, DevOps needs to be implemented using this framework, which has certain advantages.
Reconciling DevOps and ITIL will thus involve injecting the agility proposed by DevOps into operations while capitalizing on the processes and traceability required by ITIL. ITIL Version 3 introduces the notion of continuous improvement and a comprehensive system lifecycle approach to meet business requirements. This takes us back to the notion of iteration in agile methods. The challenge therefore concerns the frequency of changes and cross-functional communication. In short, DevOps must challenge ITIL while ITIL makes it possible to manage DevOps.
Service transition: DevOps, complements change management
In terms of operations, change management aims to meet change requirements while minimizing the risk of disruption to the user: regression, downtime, etc. Changes should be assessed, authorized, logged then scheduled to meet stability, traceability (versions, configurations) and predictability objectives. The immediate added value is to impose a change framework in an immature organization and provide a precise snapshot of the system at a specific time.
The initial perception may be negative (slow, cumbersome process) but it is crucial to identifying unauthorized changes. And if modeling was carried correctly beforehand, the process will not be more cumbersome or slower: it will be managed and responsiveness will be ensured. In concrete terms, this means that it is essential that approval processes are defined according to the type of change, the associated risk and its criticality, which increases responsiveness in urgent situations and formalism in all cases. These formal processes also make it possible to demand systematic feedback on the implemented changes as part of a continuous improvement process.
Of course, tasks resulting in the creation of a change request, as well as their implementation, may be automated without altering the fact that the changes must be submitted to an approval committee. In other words, the tasks are changing but the assessment method is not. And in order to be completely aligned with DevOps, the approval committee must encourage cross-functional communication and collective decisions.
Service operation: incident management, complements DevOps
Agile and DevOps organizations are usually defined to respond to new functionality delivery imperatives. We can talk about “nominal” work cases. But, outside of support, there is rarely a team dedicated to managing production problems. And when the situation arises, it is often difficult to follow a pre-established analysis, escalation and resolution method. Short iterations are not designed to take into account and manage new problems.
In contrast, ITIL is able to respond to this situation by defining an organization and processes able to efficiently manage issues relating to problem and incident management. The roles and prioritization rules are also defined, which is in no way incompatible with an agile organization. Thus, as part of a continuous improvement process, ITIL processes will feed DevOps tasks. Firstly by enriching monitoring in a comprehensive scope, from infrastructure to business cases, and by automating workaround solutions to incidents and by adding automated test cases.
To set up this mechanism, an information feedback process between operations and R&D needs to be created. In concrete terms, this results in escalation processes, a crisis management method and a shared backlog including incident occurrence so their resolution can be prioritized. A system that will only be effective if R&D teams can be mobilized when required: developers, testers and DevOps must therefore have time to dedicate to these subjects, as and when events occur in production. So, ITIL and DevOps can not only be reconciled, but they can also and above all, complement one another.