Software Architecture Is Overrated

September 18, 2019    article notes

Notes from Gergely Orosz post - Software Architecture is Overrated:

Software design at most tech companies and startups tend to be surprising than what you would expect in general. Most startups do not use any of the standard architecture plans - UML, 4+1 model, ADR, C4 or dependency diagrams - but simple diagrams. Most often than not, they do not employ hands-off IT architects or enterprise architects, but experienced hands who drive the design process. Lastly, majority of them do not follow any strict/common architecture patters, referenced in the software architecture literature.

The author notes that peer engineers at FANG companies tend to share a simple approach to design and implementation - simple, jargonless software design over architecture patterns

  1. Start with the business problem
  2. Brainstorm the approach
  3. Whiteboard your approach
  4. Write it up via simple documentation with simple diagrams
  5. Talk about trade-offs and alternatives.
  6. Circulate the design document within the team/organization and get feedback

The author also shares few tips on getting better at designing systems

  1. Pull over a teammate and whiteboard your design approach
  2. Write up your design in a simple document and share it with your team, asking for feedback
  3. Design it two different ways and contrast the two designs.
  4. Be explicit about trade-offs you make, why you made and what is optimized for. 5.Review other’s designs. Do it better

Takeaway:

The best software design is simple and easy to understand. The next time you’re starting a new project, instead of thinking, “How will I architect this system, what battle-tested patterns should I use and what formal methodology should I document it with?”, think “How can I come up with the simplest possible design, in a way that’s easy for anyone to understand?”.