my-notes

GOTO 2020 • Five Things Every Developer Should Know about Software Architecture • Simon Brown

1. Software architecture isn’t about big design up front

Responding to change over following a plan

“Big design up front is dumb. Doing no design up front is even dumber.” - Dave Thomas

Enough up front design to create a good starting point and direction.

“Architecture represents the significant decisions, where significance is measured by cost of change. - Grady Booch

2. Every software team needs to consider software architecture

Every “software system” needs technical leadership.

3. The software architecture role is about coding, coaching and collaboration

Different types of teams need different leadership styles.

Book recomendation: Elastic Leadership - Growing self-organizing teams - Roy

Soft skills:

4. You don’t need to use UML

Teams need a ubiquitous language to communicate effectively.

C4 model: Context, Containers, Components, and Code

https://c4model.com/

A common set of abstractions is more important than a common notation.

tooling: structurizr

5. A good software architecture enables agility

Agile is about moving fast, embracing change, releasing often, getting feedback, …

Agile is about a mindset of continuous improvement.

Agility is quality attribute.

“A good architecture rarely happens through architecture-indifferent design.”

George Fairbanks - author of Just Enough Software Architecture