Visualising software architecture with the C4 model - Simon Brown, Agile on the Beach 2019
Agile on the Beach3 HN recommenders · recommended in 3 months, 2021–2023
talk · intro · evergreen · 2021–2023 on HN
Simon Brown's Agile on the Beach 2019 talk presents the C4 model, a lightweight approach to diagramming software architecture with a shared vocabulary and simple notation.
Recommended as the introduction to C4 when people ask how to visualize and communicate software architecture.
Up next
2 mo on HNCrust of Rust: async/await
Jon Gjengset
2 HN recommender · 2023–2026
15 mo on HNRailsConf 2014 - All the Little Things by Sandi Metz
Confreaks
15 HN recommender · 2015–2025
14 mo on HN"Simple Made Easy" - Rich Hickey (2011)
Strange Loop Conference
14 HN recommender · 2022–2026
13 mo on HN"Making Impossible States Impossible" by Richard Feldman
elm-conf
9 HN recommender · 2017–2026
12 mo on HNHow To Design A Good API and Why it Matters
Google TechTalks
12 HN recommender · 2011–2025
11 mo on HNThe Value of Values with Rich Hickey
InfoQ
10 HN recommender · 2014–2023
10 mo on HNOverwatch Gameplay Architecture and Netcode
GDC Festival of Gaming
16 HN recommender · 2019–2025
11 mo on HNSolving Problems the Clojure Way - Rafal Dittwald
Clojure/north
10 HN recommender · 2019–2025
10 mo on HNLecture 1A: Overview and Introduction to Lisp
MIT OpenCourseWare
10 HN recommender · 2019–2026
11 mo on HNAlan Kay - Normal Considered Harmful
powerfuloutlet
10 HN recommender · 2012–2026
10 mo on HNA Philosophy of Software Design | John Ousterhout | Talks at Google
Talks at Google
11 HN recommender · 2018–2026
10 mo on HN"Uncle" Bob Martin - "The Future of Programming"
Paul Stringer's Mobile Tech
10 HN recommender · 2016–2022
4 comments from Hacker News
If C4 is new to you too, I recommend their intro video: ▶ this video . It feels like a very light ruleset over what we would do naturally when explaining a system to another engineer. That's great. Some of the ideas that stood out were: 1. Allow flexibility in the notation (shapes and color) as long as the abstractions are good. 2. When drawing arrows, make them unidirectional to show the main intent. 3. Hide details to express the main story (@ 27min in the video) 4. Don't just give names to components. Give short descriptions too. 5. Don't document the lowest levels. Code is better here.
Recently stumbled upon [C4 Model]( ▶ this video ), which seemed very promising. It builds on the failure of adopton of UMLs, and aim to be practical and communicative.
These fail my litmus test, which is, "can a third-party look at the diagram and make sense of it without verbal explanation?" For a more formal approach to coherent diagrams and white boarding, I recommend the C4 model. It's conceptually simple and results in better system documentation than the free form method that's commonly used. ▶ this video
I've looked at mermaid & planetuml before. structurizr is new to me and looks interesting. PlanetUML has the advantage of gitlab support, iirc -- allowing rendering of diagrams in README files. I'd like to see more options for that. edit: interestingly, the author of structurizr (Simon Brown) was recently linked in another HN thread. HN thread - link YT link - ▶ this video