Modern software provides greater resilience and ability to remain in sync with the rapid changes of customer needs and wants. Today’s software development uses lean and agile principles, in the cloud, adopting practices like continuous integration/delivery and everything as code (infrastructure, configuration, policy, etc.), employing architectural patterns like microservices, serverless and deploying with containers and service orchestration. These principles, practices and changes have significantly improved the requirements for digital operations from mindset, skillset and toolset.
According to Lehman’s Law, systems continue to evolve over time and grow more complex unless some action is taken to reduce the complexity (Software Maintenance). Software maintenance for modern software is not just about fixing defects, it needs to look at a system from an evolutionary perspective, and constantly refactor and improve architecture, code, and tools. Maintaining a modern software system needs to shift the mindset from “process-focused” to “people-focused”.
The “process-focused” mindset prefers rules and division of responsibilities and a hierarchical system which is innovation-inhibiting by design, and it is difficult to prevent system corruption during operations due to siloed processes limiting the knowledge and understanding across the whole system.
The “people-focused” mindset puts the “people” at the core. People share knowledge to learn from failure and each other, share responsibilities in a team, make implicit knowledge explicit, eliminate guesswork and cargo cults. The system is blameless by design. In constant innovation, this helps to cope with increasingly complex systems.
ITIL
ITIL (Information Technology Infrastructure Library) is not about people. It's a framework describing a range of processes, procedures, tasks, and checklists applicable to an organization with IT assets. It has played a large role in creating the IT organizations that are there today: behemoths that have large numbers of people supporting complex processes through service management and ticketing systems.
With ITILv4, ‘iterative’ value addition has found a place in its guiding factors and hence it comes close to co-existing with DevOps as a framework to guide, build and run teams. ITILv4 still believes in a command and control type hierarchy. While there are many pointers in ITILv4 that modern, complex systems can use, as a holistic framework it is not enough to help run the technical operations of the modern behemoths.
At Thoughtworks, which has been at the forefront of Software Engineering practices for the last three decades, we target service-level management, which v4 also recommends. We add Engineering practices to provide the speed and agility to Operations which is missed out in traditional ITIL. ITIL takes time to change and it has been late in adopting the practices required for native cloud, containerization and microservice based architectures.
ITILv4 will stay but we believe that there has to be a synergy of unique ideas that suits each enterprise and each situation. A people-focused, business-value driven system that helps small to big operational scenarios. A one-size-fits all aspect is as redundant today as a feature phone without messaging apps.
Value stream realization
For many large enterprises, the operations team has been transformed into being a ‘ticketmaster’: raising, acknowledging and solving tickets. For the IT vendors, there is little impetus to innovate in this cost-sensitive environment.
Thoughtworks, on the other hand, focuses primarily on the value provided to the business by root-cause-analyzing the issue, predicting areas where most issues occur in a system, analyzing when issues occur and reducing turnaround time for complex issues, rather than focusing on ‘ticket-counting’.
Towards Zero Maintenance
Large enterprises want to reduce long-term cost of ownership of software. With traditional software this would almost be impossible with the dependency problems and legacy skill set requirements.
With modern software this is possible by applying the principles of Agile and the XP (Extreme Programming) practices associated with it. As an example, traditional maintenance does not have the XP concept of pairing to fix problems. However, pairing would be able to quickly execute RCA (Root Cause Analysis), fix the issue and do this without tech debt. While there is a natural resistance to XP concepts, this definitely helps in reducing cost over time.
The modern enterprises of the world have moved into a continuously evolving software method where resiliency and reliability take priority over just plain operations and break/fix.
Thoughtworks uses the revolutionary practices it adopted for the Build phase and applies it to the Run phase to reduce the total cost of ownership of the software to move towards ‘zero maintenance’ which is evolving continuously and requires little to none of the traditional ITIL operations.
Summary
Operational excellence is one of the dimensions of software excellence that has gained importance in modern software. It requires putting the people who operate and maintain software first, actively upgrading skills, innovating tools, and continuously improving. ITIL, by itself, cannot meet the operational requirements of modern software. Different companies have had different approaches to tackle this problem.
Thoughtworks’ approach relies on its own revolutionary ideas and practices that have already been applied to numerous projects and clients. In case ITIL is mandatory, it must be used in conjunction with other systems that can cater to modern, evolutionary software helping to reduce maintenance costs, preferably to Zero.
Disclaimer: The statements and opinions expressed in this article are those of the author(s) and do not necessarily reflect the positions of Thoughtworks.