It never fails to amaze me what you uncover when you take a closer look at the technology stack of a well-established company.
Especially those with decades of history, global footprints, and a deep reliance on a single, well-known enterprise software vendor.
At first glance, it looks impressive. Everything is covered — ERP, master data management, integration layers, business warehouse, analytics. A fully integrated ecosystem, tightly connected, seemingly efficient.
And that’s exactly the point.
It’s beautiful for the vendor — predictable revenue, strong pricing power, and long-term dependency. For the customer, it often becomes something else entirely.
The hidden cost of “all-in-one”
When every layer of your business depends on a single vendor, flexibility disappears. Systems become tightly coupled. Data becomes harder to access. Simple changes turn into major initiatives.
Over time, you start to notice patterns:
- Extracting data becomes a project, not a task
- Naming conventions are opaque and inconsistent
- Access is tightly controlled, often unnecessarily
- Legacy components remain in place — supported, but no longer truly maintained
You end up in a situation where parts of your system are effectively frozen in time. They continue to exist because removing or replacing them is too risky, too complex, or too expensive.
And that’s exactly where the leverage shifts. Price increases become easier to enforce. Innovation slows down. Your ability to adapt is constrained by someone else’s roadmap.
The longevity problem of software
One of the biggest misconceptions in enterprise technology is that software is temporary. In reality, software has a tendency to stay around far longer than anyone expects.
Even when:
- Support is limited or declining
- Skilled resources are hard to find
- Maintenance becomes increasingly expensive
The system remains — because the cost of change is simply too high. That’s how technical debt quietly turns into operational risk.
A different approach: loosely coupled by design
This is why I’ve consistently pushed for a different approach throughout my career:
That means:
- Every component should be replaceable
- Data should remain accessible and portable
- Integrations should be explicit, not hidden inside black boxes
- No single vendor should control your entire stack
This doesn’t mean avoiding enterprise platforms altogether. It means using them intentionally — as part of a broader architecture, not as the architecture itself.
Best-of-breed vs. one-size-fits-all
The promise of “we can do it all” is appealing. One vendor. One contract. One ecosystem. But in practice, that convenience often comes at the cost of:
- Flexibility
- Transparency
- Long-term scalability
A best-of-breed approach, combined with strong integration patterns, creates a different dynamic:
- You choose the right tool for each job
- You retain control over your data
- You can evolve your stack over time
Most importantly — you stay in control.
Don’t be held hostage
At some point, every organization faces a choice:
- Continue down a path of increasing dependency
- Or take back control of its architecture
The earlier that decision is made, the easier it is to execute. Because once everything is tightly coupled, the cost of change compounds quickly.
Final thought
Good architecture is not about what works today. It’s about what remains possible tomorrow.
And most importantly — don’t fall for the illusion that one platform can, or should, do it all.

