About the C4 software architecture model
Simply said, the C4 software architecture model is a way to describe and to communicate a project architecture visually, created by Simon Brown. It comes as a hierarchical set of diagrams to draw systems, focused on readability.
Simon describes his solution as a way to get unambiguous diagrams, adapted to various audiences. He observes that a side effect to embracing agile methods is a reduced documentation effort in project teams.
While I share his opinion, I believe that when it comes to huge organizations with complex hierarchical structures, the communication becomes so inefficient, that it will be difficult to keep everybody informed of architectural changes, even if you put a lot of efforts into documenting your projects. Your will always have to fill the gap with your CISO, your compliance team, enterprise architecture, and so on.
But there is hope, because at the end of the day, the developer is the one aware of the latest changes, since he is the one making these changes. And because the C4 model is so easy and fast to change and to read, I believe that it is an ideal support to fix that deficient communication.
This is why I decided to create the C4-PlantUML Maven Plugin: while developers would focus on maintaining their part of a system, moving as fast a possible to match their deadlines and constraints, these diagrams could be used to feed other systems such as enterprise architecture repositories, and to infer other diagram types such as deployment diagrams, networking, etc, that would help the rest of your organization.
After all, it is always faster to notice some changes in a small set of simple diagrams, than in big ugly text documents.


