We Built an Internal Developer Platform. Adoption Hit 80%. Developer Happiness Hit a New Low. The Unintended Consequences of ‘Paving the Road.’
I need to confess something uncomfortable: Our platform engineering initiative succeeded on every metric except the one that matters—developer satisfaction.
The Setup: Following Best Practices
18 months ago, we created a dedicated platform team. The mandate: Build an Internal Developer Platform (IDP) to reduce cognitive load and improve DevEx.
We did everything the 2026 playbooks recommend:
- Golden paths for common workflows
- Self-service infrastructure provisioning
- Standardized CI/CD templates
- Integrated observability and security
The metrics looked incredible:
- 80% platform adoption across engineering
- Deployment time reduced 60%
- Infrastructure consistency at 95%
- Security compliance automated
We presented at conferences. We got featured in case studies.
Then the Developer Survey Came Back
Developer satisfaction: 2.1 out of 5.
The feedback was brutal:
“The platform is fast but inflexible. I can’t customize my workflow anymore.”
“I have to file a ticket and wait 2 weeks for platform team approval to try a new library.”
“The golden path is great for simple cases. For anything complex, I’m fighting the platform instead of solving problems.”
“It feels like the platform team optimizes for their convenience, not ours.”
What Went Wrong: Paved Road Became Walled Garden
The insight hit me hard: We had optimized for consistency over developer autonomy.
Our “golden path” worked beautifully—as long as your use case matched our assumptions. The moment you needed something different, the platform became an obstacle.
Cognitive load didn’t decrease—it shifted:
- Before: Choice paralysis about which tools to use
- After: Frustration fighting platform limitations
According to 2026 platform engineering research, this is a common failure mode. IDPs that mandate “one way” create resentment. The best platforms provide the easiest path without blocking alternative paths.
The Deeper Issue: Gate Keeper vs Service Provider
We positioned the platform team as gatekeepers instead of service providers.
Developers needed platform team approval for:
- New languages/frameworks
- Custom build configurations
- Database schema changes
- Infrastructure modifications
This created bottlenecks, dependency, and frustration.
One senior engineer told me: “I left AWS for more autonomy. Now I have less autonomy than I did at AWS. At least AWS let me customize things.”
The Question We Should Have Asked
Instead of “How do we get 100% platform adoption?” we should have asked:
“How do we make the platform so valuable that developers choose it organically?”
Mandatory adoption kills the feedback signal. If developers have no choice, how do you know if the platform actually solves their problems?
What We’re Changing
We’re treating this as a product failure and applying product thinking:
- Platform adoption is now optional (for next 6 months)
- Escape hatches formalized (80% use golden path, 15% approved alternatives, 5% custom with justification)
- Platform team measured on NPS, not adoption rate
- Weekly “platform office hours” for feedback and feature requests
- Quarterly platform roadmap reviews with developer input
Early results (2 months in):
- Adoption dropped slightly to 75% (the 5% who left were our loudest critics—useful signal!)
- Platform NPS improved from -20 to +15
- Feature requests up 300% (people engaging now that they feel heard)
- Psychological safety scores improving
The Balance I’m Still Seeking
There’s a real tension here:
Standardization enables scale, security, consistency.
Flexibility enables innovation, customization, developer happiness.
How do you standardize without stifling? How do you provide golden paths without creating walled gardens?
My Questions for This Community
-
Has anyone found the sweet spot between golden paths and flexibility?
-
How do you handle teams that refuse platform adoption? Force them? Let them opt out? Something in between?
-
What governance model works? How do you balance platform team’s need for consistency with feature team’s need for autonomy?
I’d love to hear from folks who’ve navigated this successfully—especially at scale (100+ engineers).
Platform engineering is infrastructure for product velocity—but only if developers actually want to use it. Forced adoption kills the signal that tells you whether you’re building the right thing.