5 Minute DevOps: Platform Engineering Doesn’t Replace DevOps
The ‘DevOps is Dead, long live platform engineering” narrative has officially jumped the shark. My mother, who can barely use an iPhone, asked me about it. “Is DevOps dead?” she asked. “No”, I said, “it’s clickbait for people who don’t understand DevOps or platform engineering.” True story.
What is DevOps? It’s sadly misunderstood by most organizations that claim to use it. They have “DevOps teams” and “DevOps engineers” doing everything from operations support to release management. If they talk to the early pioneers of DevOps, Patrick DuBois, Andrew Clay Shafer, or John Willis, or if they read The Phoenix Project or even only the principles of DevOps, they might change how they approach it.
I’ve always thought Microsoft’s Donovan Brown has the most complete definition, “the union of people, process, and products to enable continuous delivery of value to our end users.” It’s a holistic approach to improving value delivery that impacts everything about the way the organization works. My wife, Dana Finster, and I spoke about this at the 2022 DevOps Enterprise Summit where we proposed a version of the DevOps toolchain required for value delivery.
Having a good platform is one of the critical links in the toolchain but it’s not a replacement. No matter how fantastic a platform may be, it cannot replace the need for a clear mission, organizational alignment, the correct team topology, quality as a culture, continuous education, and trust.
Platform engineering is about delivering products to development teams that allow them to focus on the problems they are trying to solve instead of solving the problems of how to deliver the solutions. A good platform makes the continuous delivery of value easy, fast, secure, and compliant. It puts safety nets in place to make it harder to make mistakes and allows teams to flow downhill to success without killing their ability to innovate.
How do you know your organization is doing DevOps and platform engineering correctly? There are a few obvious indicators:
- Teams can continuously deliver value to end-users without heroics. They are working normal hours, not scheduling delivery after hours, and spending most of their time coming up with new ways to satisfy the needs of their end users instead of being buried under defects and tech debt.
- Teams do not need to contact anyone outside their team to use the platform to deliver. They own their pipeline configurations and have self-service tools for environments, databases, etc.
- The time from the first line of code being written to production delivery is less than a day. The Second Way of DevOps is “amplify feedback.” An effective platform helps us lower the cost and complexity of change so we can reduce the size of changes and get faster feedback.
- Security and compliance are automated platform services, not arcane manual stage gates. Every code change should be as secure and compliant as we can make them. The only way to ensure that is to automate verification. It’s relying on hopes and prayers to inspect for those at the end.
Platform engineering isn’t a buzzword. I’ve been both a customer and a contributor to good platforms. It’s a discipline that requires the same product mindset that customer-facing solutions need. A platform engineering team has exactly one goal, to have empathy for other developers and their problems. Find drag and pain in the lives of product teams and reduce it.