There is a huge problem with C4 Architecture: there is no information about how the application works, the code is practically undocumented, and the code itself is not documentation. Unfortunately, I have another potential customer who has been duped: he trusted the developer and paid for "application documentation," but received something that cannot be used to recreate the application. Correct documentation allows you to: - quickly understand how the application works - quickly recreate it in a different technology #C4model #systemdesign #MDA #MBSE #softwaredesign #softwareengineering #vendorlockin (diagram: S. Brown C4 Model)
Surely any diagrams (including C4) are a complement to documentation, not a substitute for. We all take in information in different ways; diagrams are a nice visual way to quickly take in the big structural picture, but they need to be accompanied by descriptions, ADR’s etc. And vice versa - text-only documentation without _any_ diagrams is difficult to take in and understand. Sounds like your client was unlucky, and also perhaps didn’t quite know what to ask for when they said ”give us documentation”. Blaiming C4 seems like blaiming a car for its driver’s mistakes. 🤷♀️
Wow, detailed enough documentation to allow us to "quickly recreate it in a different technology." I don't think even NASA would have things like that. Nor would any other company in the world. 😅
Sounds like Arch docs dumped on last day of a contract :-( IMHO not the best way to leverage C4 model. In using it, I <OFTEN> find that you need to be iterative in building, use to review/confirm with the customer. I find that always starting with Context models, it can be several discussions to agree on two boxes and one line. This is BEFORE getting to container models, sometimes getting to components. While can be used for code, I recall several recordings/presentations that advise against doing that. Perhaps the developer "using C4" ran that gambit to punch a button (or AI) to produce "some docs" (which I agree are not useful) Architecture is all about the conversation; building the relationship. C4 is great if used correctly
Thank you for sharing. "... and paid for "application documentation," but received something that cannot be used to recreate the application." That CUSTOMER has somebody who runs his accounting ( agency or ... ). He / she should told him that everything regarding making SW has to be in precisely defined in CONTRACT. One more thing, project doc exist only in big systems and public state departments. 99% of private companies does not have any kind of project documentation. Creating project documentation is HUGE job, cost a lot of money, and private companies can not afford that in 99% of cases. By the way, you helped me to fully understand what is exactly C4. Thank you for reading and thank you for comments.
You are criticizing C4 for something it was never designed to do. C4 is not a specification model. C4 is not a reconstruction model. C4 is a communication model. Its purpose is not to make a system fully recreatable, its purpose is to make a system’s structure understandable, discussable, and comparable. Complaining that you cannot rebuild an application from C4 diagrams is like complaining that you cannot rebuild a car from an exploded drawing. The drawing is not wrong. You are just using the wrong tool for the wrong purpose. C4 shows you where things are. It does not explain why they are that way. And it certainly does not describe how the system behaves. If you want reconstructable systems, you need formal models, contracts, behavioral descriptions, state and process models, business rules, and architectural decision records, not just structural diagrams.