Composable Software Architecture

Toying with the concept of "Composable Architecture" I'm struck by how many folks get lost on the technology and staring at "how do other people do it?" instead of pivoting to think about "how might this help my business?". Time and time again I roll onto a client that is talking about microservices, API first design, Headless solutions, Cloud Native platforms, but have no idea why any of this might help thier business. Routinely I head "well this is how [netflix, amazon, fill in some other business name] does it, so we're going to replicate their success by doing what they do.

Why this is flawed

The logic behind this thinking is deeply flawed because it's presupposing that the technology architecture by itself makes the business successful. This is, in fact, backwards. Netflix didn't start with a microservices architecture, they started with (and appropriately so) a monolithic architecture. Why? Because their business model and scale (at the time) was best supported by this model (and, in fact, at some point things might swing the other way at some point). They, however, understand this and are not hampered by looking around and wondering "what architecture can I use that will make my business model successful?", they instead think of the problem by asking "what architecture can support my business model best given the things that are strategic to my business objectives?".

How to fix it

The very first step in fixing the problem is acknowledging you have a problem. If the entire organization (especially leadership) is sold on the idea that "getting a good architecture will make our business better" and the approach is to look at how other businesses with different business models model their technical architecture...you will always have a wierd mismatch of expectations versus reality. If instead, everyone takes a deep look at what value the business needs to extract from technology, and the technology teams are aligned and tasked with designing and building systems that deliver this value, you have taken your first step into a much more effective way of delivering solutions.

Comments

Popular posts from this blog

the myth of asynchronous JDBC

The difference between Scalability, Performance, Efficiency, and Concurrency explained

Push versus pull deployment models