2 Lessons from 20 Years of Building Software Platforms
Munjal A Patel
CEO @ GuideToGo | Ex-VP of Engineering @ ServiceTitan, #5 in Forbes Cloud 100 | 2X Startups & Exists | Entrepreneur | Investor
Over the past two decades, I've had the chance to build some pretty complex, enterprise-grade software platforms that millions of users rely on daily. And if there's one thing I've learned along the way, it's this: always start with the interface layer.
Let me explain why this approach has consistently worked for me and why it could also be a game-changer for your projects.
1 / Start with the Interface Layer
I can't tell you how often I've been in meetings where the first question is, "How should we define our database?" or "What services should we build?" And every single time, I have to say, "Nope! Let's think about the UI first."
Here's the hard truth: no one really gives a damn about your services — whether you've got one monolith or hundreds of microservices — users just don't care. You should care, but not at this stage. What users do care about is the interface they'll be interacting with — the experience, the responsiveness, the performance.
So, start there. The backend and database should only exist to serve the user's experience—whether it's in real-time through the UI or as part of an async activity via a scheduled job or workflow. If the backend's purpose doesn't fulfill one of these two activities, you're most likely over-engineering.
Here's why starting with the interface layer is so crucial:
2 / Event Storming: Simplifying Complexity with Collaboration
Let's discuss Event Storming, a method that's changed the way I tackle complex systems. If you're unfamiliar with it, don't worry; I'll give you a quick rundown on how it works and how to get started.
领英推荐
What is Event Storming?
Event Storming is a collaborative technique used to map out the entire workflow of a system by focusing on events and commands. It's a simple, visual approach that involves everyone — from developers to business stakeholders — coming together to explore how the system should work.
How to do Event Storming?
Why Event Storming Works?
While I'm a big proponent of Event Storming, I'm not here to push Event Sourcing or CQRS architecture. That's a topic for another article. Frankly, many teams might not be ready for it, and for good reason — it requires experience and discipline and often brings architectural complexity that can be overkill for many projects.
Wrapping Up
Estimating and executing software projects doesn't have to be overwhelming. By starting at the interface layer, you keep the focus on what really matters: the user experience. Event Storming helps break down complexity and build consensus, making estimation more accurate and the development process smoother.
These techniques have served me well over my career, helping me deliver software platforms that have served millions of users. Give them a try — you might find they change how you approach your projects.