Skip to content
0:00 / 0:00

#c4model#softwarearchitecture#diagramming

Visualising software architecture with the C4 model - Simon Brown, Agile on the Beach 2019

Agile on the Beach

5.4K subscribers • 1 video on Hallway

YouTube
  • Recommended by 4 people: 3 on Hacker News and 1 on Lobsters.
  • Presented by Simon Brown, creator of the C4 model

Intermediate. Assumes working knowledge.

553K views7 years ago4 recommendations

Software designTools and practiceSoftware architectureDesign patterns

Simon Brown presents the C4 model, a lightweight and hierarchical approach to diagramming and communicating software architecture.

In Simon Brown's talk at AOTB 2019 he explores the visual communication of software architecture based upon a decade of Simon’s experiences working with software development teams large and small across the globe. He looks at what is commonplace today, the importance of creating a shared vocabulary, diagram notation, and the value of creating a lightweight model to describe your software system using the “C4 model”, which he created as a way to help software development teams describe and communicate software architecture, both during up-front design sessions and when retrospectively documenting an existing codebase. It’s very likely that the majority of the software architecture diagrams you’ve seen are a confused mess of boxes and lines. Following the publication of the Manifesto for Agile Software Development in 2001, teams have abandoned UML, discarded the concept of modelling and instead place a heavy reliance on conversations centered around incoherent whiteboard diagrams or shallow “Marketecture” diagrams created with Visio. Moving fast and being Agile requires good communication, yet software development teams struggle with this fundamental skill. A good set of software architecture diagrams are priceless for aligning a team around a shared vision and for getting new-joiners productive fast. Visit www.agileonthebeach.com for more information about the premier annual Agile conference. BIOGRAPHY Simon is an independent consultant specialising in software architecture, and the author of “Software Architecture for Developers” (a developer-friendly guide to software architecture, technical leadership and the balance with agility). He is also the creator of the C4 software architecture model, which is a simple approach for creating maps of your code. Simon is a regular speaker at international software development conferences, travelling the world to help organisations visualise and document their software architecture.

Why it's here

4 people recommend this

What people say. Recommended as a practical and conceptually simple framework for creating clear, coherent software architecture diagrams.

Moments people linked to

stevanon Lobsters • Recommends

Visualising software architecture with the C4 model (2019)

tmountainon Hacker News • Recommends

On “Beyond Whiteboarding: Creating Expert System Architecture Diagrams”

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. link to this video

qrianon Hacker News • Recommends

On “Ask HN: Visualizing software designs, especially of large systems (if at all)?”

Recently stumbled upon C4 Model( link to this video ), which seemed very promising. It builds on the failure of adopton of UMLs, and aim to be practical and communicative.

SnowProblemon Hacker News • Recommends

On “Architecture diagrams enable better conversations”

If C4 is new to you too, I recommend their intro video: link to 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.

u/Addidyin r/softwarearchitecture • Mentions

On “What are the fundamental tools used by software architects to manage complexity?”

I know you talked about diagrams already but I haven't seen the c4 model mentioned by anyone here yet. It's my personal favourite way of visualizing dependencies and my team now in the process of properly adopting it. The general idea is that it is like google maps where you can zoom out and see the entire planet and then zoom in to see the individual streets. In these diagrams you can zoom in from high level abstractions of your system into low level implementation details in UML code. Here's the original talk: [video Best tool for it IMO is: https://icepanel.io/

u/WanderingLethein r/softwarearchitecture • Mentions

On “Twitter Architecture Diagram of their Read Path”

Always a 7/10. Ha, it was the first thing the popped up in my head when I saw it. From Simon's talk about the C4 model: link to this video
3View on Reddit

chrsigon Hacker News • Mentions

On “Architecture diagrams should be code”

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 - link to this video