The idea of treating engineering platforms as products has been getting a lot of traction recently. We’re thinking in terms of “platform-as-a-product”, we’re doing user research and user interviews, we’re hiring platform product managers, we’re doing A/B testing on platform capabilities. This is good, valuable work, and I support it.
But more and more I feel like there’s a sort of chicken-and-egg problem here. Hiring a platform product manager isn’t the first step of building a platform. It can’t be the first thing, because it can’t happen unless there has been prior work to demonstrate the value of having a platform product manager - there is a “get buy-in” step that precedes it.
This is a zero-to-one problem. We’re talking about platform-as-a-product, but how do you get from “nothing” to “product”? With a startup!
Let’s start using the term platform-as-a-startup instead of platform-as-a-product, at least when we’re talking about making an initial investment in platform engineering, or working on driving early adoption. I think that this new term will help focus our energies appropriately.
Let’s think about runway. Our organization has made an initial investment in our platform engineering effort - we need to build a platform engineering practice that is self-sustaining, before that investment is exhausted. Let’s feel the pressure of the market, the pressure to deliver value.
Let’s think about doing things that don’t scale. If the app development teams have a cumbersome, manual deployment process, and each team is spending significant time each week just deploying their services, maybe the platform engineering team can start doing all deployments. If it hurts, do it more often.
Let’s think about finding product-market-fit. Let’s run experiments that turn hypothetical questions into data. Let’s do more of what works and let’s fail fast and stop doing what doesn’t work.
Let’s think about marketing. It’s not enough to do the work - people have to know about it. (I’m a fan of the Stripe model here - a project is not “shipped” until it’s been communicated to the organization.)
Let’s think about customers of the platform, rather than users of the platform. Let’s recognize that developers have a choice, and let’s deliver platform capabilities that developers choose freely over their status quo processes.
Let’s build our platforms from zero with a startup mindset, and move to a more “typical” product model once we have gotten from zero to one.