Platform Engineering: Why Engineering Teams Overbuild Internal Platforms
Introduction:
Internal platforms are one of the most ambitious investments an engineering organisation can make. The promise is compelling — build a shared foundation that every team can build on, eliminate duplicated effort across the organisation, and give developers a self-service experience that lets them move faster without depending on specialised infrastructure teams.
The reality in most organisations is different. Internal platforms get overbuilt — designed for a scale they will not reach, loaded with features that nobody requested, and architected with a generality that makes them complex to operate and difficult to use. Teams that set out to reduce complexity across the organisation end up creating a new source of complexity that requires its own team to maintain and its own documentation to understand.
Understanding why engineering teams consistently overbuild internal platforms helps organisations make better decisions about what to build, when to build it, and how much is actually enough.
Platform Teams Optimise for Generality Nobody Asked For:
When a platform team sits down to design an internal platform, the natural instinct is to build something that works for everyone. Every team has slightly different needs, and the platform should accommodate all of them. This instinct produces platforms that are maximally general — configurable for every scenario, extensible for every use case, and flexible enough to handle requirements that have not been thought of yet.
Generality at this level comes at a cost. Every configuration option is a decision the user must make. Every extension point is a surface area that must be documented, tested, and maintained. Every flexible abstraction is a layer of indirection that makes the system harder to understand and harder to debug when something goes wrong.
The teams using the platform did not ask for generality. They asked for a solution to a specific problem. Generality that goes beyond what is needed to solve that problem is complexity disguised as a feature.
Building for Future Scale Before Present Needs Are Understood:
Platform teams frequently design for scale that the organisation has not yet reached and may never reach. The architecture is designed for thousands of teams when there are currently twelve. The data model is designed for millions of transactions when current volume is in the thousands. The deployment infrastructure is designed for global distribution when all users are in one region.
This forward-looking design feels responsible. It is better to build for scale than to be caught unprepared when scale arrives. But scale that arrives gradually can be addressed incrementally. Scale that is designed for before the usage patterns are understood produces systems optimised for the wrong things — because the actual bottlenecks in a system at scale are rarely the ones that seem obvious before the system has users.
Building for present needs with clear extension points for future growth produces simpler platforms that are easier to adopt, easier to operate, and easier to evolve than platforms designed speculatively for a future that may not materialise in the form expected.
The Distance Between Platform Teams and Their Users Creates Misalignment:
Platform teams often operate at a remove from the teams they serve. They receive requirements through tickets, conduct occasional user research, and make design decisions based on their understanding of what users need rather than direct observation of how users work.
This distance produces platforms that solve the problems platform teams think users have rather than the problems users actually have. Features that seemed essential during design go unused. Workflows that seemed obvious require extensive documentation to understand. Abstractions that seemed clean turn out to obscure information that users need to do their jobs.
The teams using the platform adapt — they build workarounds, they use the platform in ways it was not designed for, or they quietly stop using parts of it and implement their own solutions. The platform team, operating at a remove, may not discover this until significant engineering effort has been invested in features that are not solving real problems.
Success Metrics Reward Building Over Adoption:
Platform teams are frequently measured on outputs — features shipped, services launched, capabilities added — rather than outcomes — teams successfully using the platform, time saved across the organisation, reduction in duplicated infrastructure. This creates incentives that reward building over adoption.
A platform team that ships a new capability every sprint looks productive by output metrics even if none of the capabilities they shipped are being used by the teams they serve. The platform grows in scope and complexity while its actual value to the organisation remains unclear.
Measuring platform success by adoption rate, time-to-productivity for new users, and reduction in infrastructure work across consuming teams aligns platform team incentives with the outcomes that actually matter. Teams that are measured this way build less and learn more — and the platforms they produce are simpler and more useful as a result.
Not Every Problem Needs a Platform Solution:
The most expensive mistake in internal platform development is solving problems with a platform that could be solved with documentation, a shared library, or a convention. Platforms are the right solution when the problem is genuinely shared across many teams, when the solution benefits from centralised operation, and when the investment required to build and maintain the platform is justified by the value it delivers.
For problems that affect a small number of teams, or that can be solved with lighter-weight coordination mechanisms, a platform introduces more overhead than it eliminates. The operational burden of maintaining a platform — keeping it reliable, keeping it updated, supporting its users — is significant and ongoing. That burden is only justified when the platform is solving a problem at a scale that makes the investment worthwhile.
The question that platform teams rarely ask explicitly enough is whether a platform is actually the right solution to the problem they are trying to solve. Asking it seriously, and being willing to answer no, produces organisations that build platforms when platforms are warranted and choose simpler solutions when they are not.
Conclusion:
Internal platforms get overbuilt because platform teams optimise for generality over simplicity, design for scale before usage patterns are understood, operate at a distance from the users they serve, and are measured on outputs rather than adoption. Each of these factors independently pushes toward more complexity. Together they consistently produce platforms that are more ambitious than necessary and less useful than intended.
The most valuable internal platforms are not the most comprehensive ones. They are the ones that solve a specific, well-understood problem for a specific set of users, are simple enough that those users can adopt them without extensive support, and are operated at a cost that is clearly justified by the value they deliver. Building to that standard requires discipline, user proximity, and a willingness to build less than what seems possible in favour of what is actually needed.
Enjoyed this post?
Stay in the loop
New posts + weekly digest, straight to your inbox.
Create a free account
- Save posts to your vault
- Like posts & build history
- New-post alerts
No comments yet. Be the first to comment!