You're Building Software Wrong
Published ....
Last modified ....
Share this post on BlueskySee discussion on Bluesky
Imagine software as a square. A square has four sides—top, bottom, left, and right. In this metaphor, that square represents your software product in its entirety. Every piece of your project exists within it.
Now, let’s focus on two key edges: the top and the bottom. The top edge represents the surface that users interact with directly. If you’re building a web application, this would be your user interface (UI). Below that, supporting the UI, is everything else—your backend services, infrastructure, databases—extending all the way down to the bottom edge.
The Traditional Approach: Horizontal Slices
Most software teams tend to break down projects into horizontal slices.
- They start at the bottom, figuring out infrastructure—where and how to deploy the application.
- Above that, they choose frameworks and set up backend services.
- Higher up, they connect data layers and start wiring backend logic.
- Finally, they work their way up to the UI, assembling components and polishing the user experience.
At first glance, this approach seems reasonable. Each layer is built in sequence, dependencies are resolved early, and there’s a logical flow from the ground up.