Software Architecture Is Overrated
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
- Start with the business problem
- Brainstorm the approach
- Whiteboard your approach
- Write it up via simple documentation with simple diagrams
- Talk about trade-offs and alternatives.
- Circulate the design document within the team/organization and get feedback
The author also shares few tips on getting better at designing systems
- Pull over a teammate and whiteboard your design approach
- Write up your design in a simple document and share it with your team, asking for feedback
- Design it two different ways and contrast the two designs.
- 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?”.