NoOps (no operations) is the concept that an IT environment can be automated and abstracted enough from the underlying infrastructure that there is no requirement for a dedicated team to manage its software in-house.
In 2019, global consultancy Deloitte listed NoOps among its tech trends to watch out for, declaring it the “next state in the evolution of cloud computing” which “automates key tasks, allowing IT talent to shift focus from operations to outcomes.”
The simplest analysis tends to project that jobs for software developers will decrease with more automation, but the likelihood of that outcome is very low. For most software developers, the ongoing shift 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 far more work to be done than their teams can ever support. Spending less time on operational tasks just means more time spent on the things that can truly differentiate the business.
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-oriented interactions. From writing assembler to managing memory to building data centers, most developers are now abstracted from things that were once common tasks. But that doesn’t mean they are doing less. In fact, from a business perspective, they are likely to do more. They are applying a much greater proportion of that time and energy to what matters for the business.
When it comes to business outcomes, fast is always better than slow, and given the same set of high-level abstractions or tooling, a skilled software practitioner will still be the fastest and most productive user of these tools.
Faced with the choice between the same outcome with less investment or bigger outcomes with the same investment, most business leaders will choose the latter. Getting there in the world of software means having the same skilled developers and minimizing everything they do that doesn’t drive customer value.
The path to this focus on delivering quickly against customer value is also built on some foundations that themselves demand experienced software engineers, including:
An increasingly complex software supply chain
Software supply chains include anything that impacts an application from development through production. In modern software development, only a small percentage of an application is built by in-house engineers writing custom code. Rather, apps are stitched together by combining pre-existing components collected from across the internet: a supply chain of code and APIs.
The complexity can be staggering. There’s so much change coming from so many sources: People, machines, and the software supply chain, itself all but untrackable for many complex software organisations. Global financial institutions operate across borders, languages, and regulatory markets. They offer a huge variety of products and services and keep track of billions of rows of data.
The ability to reason effectively about, and manage the evolution of, such a complex system is a key skill of the experienced software developer. This experience is most critical when things go wrong and someone needs to understand all the interactions to fix them.
People are required to build
At the end of the day, businesses are trying to differentiate. While more and more of the building blocks of software development can be taken “off the shelf,” it is the unique combination of those pieces that companies can set apart. Every business has access to the same building blocks, so the ability to quickly build on top of those is where the competitive advantage comes from, ultimately putting the human developer in the spotlight.
NoOps, or the components thereof, represent a subset of the building blocks that are constantly evolving in the world of software, focusing our most skilled developers on the core customer value and less on the mechanics.
Aspiring to more
Deloitte pointed to Netflix, Coca-Cola, and the New York Times pushing towards an ultimate goal of NoOps through the intermediate stage of serverless computing. While this model reduces the operational burden on organisations, it requires relearning and redesigning how applications function. The development effort to orient existing systems into a NoOps world, in each of its phases, should not be underestimated.
Every tool that we add to our toolbox gives us the opportunity to move faster and achieve greater outcomes. The teams that are best able to capitalize on each of those tools will remain the ones with deep software experience who are able to learn and adapt quickly.
NoOps and other trends that we’ll be adopting in the future are symptoms or steps forward towards more focus on value delivery. Where we once dreamed of the ability to automate punchcards, today we have the opportunity to deliver meaningful work that maps back to our customers’ needs.
We can operate at this velocity because of skilled people and great tools. The human in the loop will not be replaced at any conceivable time to come, they will do more with less and do it faster. The most skilled will move the fastest and the businesses built by those people will win.