Skip to content
back to the archive page
#Architecture

Minimum Viable Architecture • Randy Shoup • YOW! 2022 (Category Architecture)

Another excellent talk by Randy Shoup, VP Engineering and Chief Architect at eBay. His earlier talk, “Improving Software Flow,” which I covered before, gave me ideas for one of my own talks this autumn :) Here, he explains why it makes sense to start with an MVA, or Minimum Viable Architecture, a concept similar to an MVP, or Minimum Viable Product. He begins with the early architectures of eBay and Amazon and how they evolved. His point is that had these companies started with a more complex architecture, we might never have heard of them: competitors building their MVPs on an MVA could simply have beaten them :)

He then describes architectures that fit the organization’s lifecycle: starting → scaling → optimizing.

0) Prototype architecture comes at the idea stage, before those phases. It is great if you can get by without technology at all :)

1) Just enough architecture supports rapid iterations at the starting stage. Monoliths built with popular technologies that make coding straightforward are useful here. Buying an existing product is often easier than writing one yourself. It also makes sense to start with a modular monolith, CI/CD, trunk-based development (TBD), and feature toggles.

2) Scalable architecture is a stage that, in Randy’s estimate, only 1% of applications reach. He starts by asking when redesign becomes necessary: development slows down, or some parts need to be deployed independently. This is where stream-aligned teams from Team Topologies come in. More performant technologies, greater use of asynchronous processing, and boundaries aligned with domains become useful. Microservices often appear at this stage. I particularly liked his discussion of incremental migration from old systems to new ones using end-to-end vertical slices.

3) Optimizing means fewer teams, with the main goals of stabilizing the architecture and consolidating parts of the system to make operations easier.

#SoftwareArchitecture #Architecture #SystemEngineering #DistributedSystems #SystemDesign #SystemThinking #Software

Open video on YouTube