Context
The Shift
Software systems are more complex than ever, and AI is adding fuel to the fire. The role of architects is changing. Diagrams and code that took hours to produce are now generated in seconds. The dream of automated architecture diagrams from code feels close to reality. However, faster output doesn't mean better architecture. Quantity and quality don't always go hand in hand. In fact, AI can sometimes create more complexity and uncertainty for teams, especially at scale.
The current approach to software architecture isn't equipped to deal with today's complexity. It's outdated, siloed, and slow to adapt to new requirements. The current tools for software architecture suck. They lack depth, clarity, and opportunity for collaboration when designing systems. Rarely do these tools feel fun and enjoyable to use.
Architecture isn't something that only architects should care about. It's soon going to be a baseline expectation for anyone involved in product building. Architecture needs to evolve as fast as the businesses it supports.
The bottleneck is no longer writing code, and honestly, it never has been.
Architects and product builders in general face many challenges when designing software. Coming up with ideas is easy. But without a clear hypothesis for the value proposition and an understanding of current constraints, ideas can't be validated. They're just assumptions about the architecture. If the architecture doesn't reflect the reality of the system, it becomes hard to turn assumptions into tested decisions.
Product builders face challenges like:
Understanding existing systems and business context
Statements like 'It just works' or 'TODO: add a diagram' won't cut it. Architecture isn't designed in a void. It's designed in a world of interconnected systems, each with inputs, outputs, and feedback loops. That's what Donella Meadows called "Thinking in Systems". Customers are systems. AI agents acting on behalf of users are systems. The more context we have, from business to technical, the better we design systems that actually work together.
Aligning teams
Designing architecture is one thing. Getting stakeholders behind the architectural decisions is another thing. Aligning teams can be challenging if the problem isn't communicated clearly up front. Alignment comes from discussing ideas, trade-offs, and reaching consensus. Just as important is making sure teams work from a stable foundation of knowledge and a language for talking about their systems. How many times have you seen people refer to systems as different things?
Making the right decisions
Architectural decisions can be expensive and sometimes irreversible. Product builders should deeply understand the problems they're trying to solve in order to make the right decisions. Without a deep understanding of the root cause, even well-intentioned decisions can waste months of a company's time. Jeff Bezos distinguished between two types of decisions at Amazon: Type 1: Irreversible with long-term consequences like choosing a cloud provider, enterprise resource planning (ERP), or a database solution. Type 2: Reversible with short-term consequences like building prototypes or a minimum viable product (MVP).
Building the right thing
Sounds cliché, but it's true. Many teams end up building the wrong thing. This could be misguided product direction, not aligning on decisions, or building on inconsistent architecture. Now with AI, building is no longer the bottleneck. Knowing what problems to solve and how to solve them is.
Pivoting when needed
In a perfect world where all requirements are available upfront and customer needs never change, we wouldn't need to change or revise our architecture. As much as we want this to be true, that's not the case. Even more so today. Learning how and when to pivot is both a challenge and a critical skill for product builders.
Architecture is foundational to all software we use. But the way we've been doing it isn't working. Treating diagrams as set-and-forget won't work in modern architectures. Diagrams are just one view of the model, a visual representation that helps humans reason about complex systems. But the model itself is what matters. AI doesn't need a diagram to understand your architecture. It needs the model. Legacy codebases are inevitably maintained. The models that represent them should be too.


