In the 1940s Abraham Maslow published a paper proposing a new theory of psychology known as Maslow’s hierarchy of needs. The theory postulated the stages of human growth, from people’s physical needs (food, water), up through higher intellectual development (creativity, morality). According to Maslow, each successively higher phase of development could only be attained by first satisfying the lower level needs. For example, humans lacking food, water and safety are unlikely to be capable of achieving self-actualization.
Inspired by Maslow, I am proposing a new theory: Cheslock’s Hierarchy of DevOps Needs. The pyramid has five phases of growth, each reflecting the different stages of maturity in a development operations team. The lowest and most basic phase is reactive management, and the highest is systems management application development. Like Maslow’s pyramid, each higher stage can only be achieved by maturing beyond the lower level stages.
Stage 1: Reactive Management
If your organization is here, you likely know it. If you are unsure, just look at the PagerDuty history for your on-call engineers this week. Reactive management can be described in one word: survival. One day a server runs out of disk space, another days nodes go down in your NoSQL cluster, and another you find that EBS volume you were snapshotting... well, you can’t seem to find those snapshots.
Stage 2: Proactive Management
If you can take control of your infrastructure, standardize some configurations, deploy some basic monitoring and systems management, and institute the right processes, you can raise yourself up to proactive management. Yes, things still break at this phase of DevOps development, but at least you know about it quickly (mostly). Many organizations think they can automate before they achieve this phase. Go ahead and try and let me know how it goes. ;)
Stage 3: Basic Automation
Like mounting an attempt on the summit of Everest from a high base camp, from the general stability of proactive management can come automation. Whether Chef or Puppet, codifying your operational knowledge into software is a substantial investment that if executed right, will have a substantial return on investment. At this phase, your infrastructure becomes standard, your configurations become more tightly managed, and you begin to see more stability and predictability in your infrastructure.
Stage 4: Comprehensive Automation
DevOps teams that continue up the maturity curve will eventually move from basic to comprehensive automation. With comprehensive automation, all configurations are managed through code, and there is almost never deviations from a standard. Systems and software upgrades are fully automated both for deployments and rollbacks. This stage is often the aspiration of most DevOps teams, and is often mistaken as an end goal in itself. But beyond this phase is the equivalent of Maslow’s self-actualization: applications.
Stage 5: Systems Management Application Development
The development of advanced systems management applications can only happen when all lower level needs have been satisfied, and a sustaned investment has been made in your DevOps team. At this stage, the DevOps team has been mostly freed from the high cost of designing, deploying, managing and supporting complex infrastructure. They’ve solved the 80% problem, and now have the hardest and most rewarding challenge: automating the remaining systems management challenges around fault, configuration, asset, performance and security. With the right team, vision and direction, this is where a strong DevOps team can deliver its real value to an organization, with innovations that can transform the reliability, performance and supportability of your infrastructure and applications.
The name Cheslock’s hierarchy of needs has been taken from my former DevOps manager, who successfully led his team through all five phases.