NoOps (no operations) is the concept that an IT environment can be automated and sufficiently abstracted from the underlying infrastructure that there is no need for a dedicated team to manage its software in-house.
In 2019, global consulting firm Deloitte listed NoOps among its technology trends to watch, declaring it the “next state of cloud computing evolution” that “automates key tasks, allowing IT talent to focus operations on the results”.
The simplest analysis tends to predict that jobs for software developers will decline with more automation, but the probability of this outcome is very low. For most software developers, the continuous move to higher levels of abstraction is great news: more time spent delivering customer value and less time dealing with manual tasks. More importantly, as any engineering leader will tell you, there is always a lot more work to do than their teams can ever handle. Spending less time on operational tasks simply means more time spent on the things that can really set the business apart.
Since its inception, the history of software development has been a slow and steady movement away from the complexities of the machine towards more human-centric interactions. From writing assembler to managing memory to building data centers, most developers are now abstracting from things that were once routine tasks. But that doesn’t mean they do less. In fact, from a business perspective, they probably do more. They spend a lot more of that time and energy on what matters to the business.
When it comes to business results, fast is always better than slow, and given the same set of high-level abstractions or tools, a skilled software practitioner will always be the fastest and most efficient user. productive of these tools.
Faced with the choice between the same result with less investment or greater results with the same investment, most business leaders will choose the latter. Getting there in the software world is about having the same skilled developers and minimizing anything they do that doesn’t generate customer value.
The path to this focus on fast delivery over customer value also rests on certain foundations which themselves require experienced software engineers, including:
An increasingly complex software supply chain
Software supply chains include everything that impacts an application, from development to production. In modern software development, only a small percentage of an application is built by in-house engineers writing custom code. Instead, applications are assembled by combining pre-existing components collected from the internet: a supply chain of code and APIs.
The complexity can be staggering. There are so many changes coming from so many sources: people, machines, and the software supply chain, itself nearly impossible to track for many complex software organizations. Global financial institutions operate across borders, languages and regulatory markets. They offer a wide variety of products and services and track billions of rows of data.
The ability to reason effectively and manage the evolution of such a complex system is a key skill for the experienced software developer. This experience is more critical when things go wrong and someone needs to understand all the interactions to fix them.
People are forced to build
Ultimately, companies try to differentiate themselves. While more and more of the building blocks of software development can be “out-of-the-box”, it is the unique combination of these elements that can differentiate companies. Every business has access to the same building blocks, so the ability to quickly build on these is the source of competitive advantage, ultimately putting the human developer in the spotlight.
NoOps, or its components, represents a subset of the ever-evolving building blocks in the software world, focusing our most skilled developers on core customer value and less on mechanics.
yearning for more
Deloitte highlighted Netflix, Coca-Cola and The New York Times pushing towards an ultimate goal of NoOps through the middle stage of serverless computing. While this model reduces the operational burden on organizations, it requires relearning and redesigning how applications work. The development effort to guide existing systems into a NoOps world, in each of its phases, should not be underestimated.
Every tool we add to our toolbox gives us the ability to go faster and get better results. The teams best able to capitalize on each of these tools will remain those that have deep software experience and are able to learn and adapt quickly.
NoOps and other trends we will adopt in the future are symptoms or steps towards a greater focus on value creation. Where we once dreamed of being able to automate punch cards, today we have the ability to deliver meaningful work that matches the needs of our customers.
We can operate at this speed with skilled people and great tools. The human in the loop will not be replaced at any imaginable time, they will do more with less and do it faster. The most skilled will move the fastest, and the businesses created by these people will win.