I was recently directed toward an interesting site (blog, presentations, etc) by Simon Brown, and his download presentation about "sketching the architecture" that more or less reinforces my idea that:
"If you can't draw it, you can't build it."
Box model
From this idea flows my "box model" approach to setting down high level narrative (business story with context), major functions (boxes) and the interconnecting process (network).
Now, Brown tells a similar story -- with more depth re design -- with an idea he calls C4. C4 is a box model that Brown claims enables agility in architecture:
Profound
These ideas of Mr. Brown are profound:
Now, Brown tells a similar story -- with more depth re design -- with an idea he calls C4. C4 is a box model that Brown claims enables agility in architecture:
- Context
- Container
- Components
- Classes
One thing in Brown's version is an assertion that multiple views may be needed to convey the architecture completely. To this end he posits views like:
- logical vs conceptual;
- process vs functional; and others.
In Brown's world, these different views are tools to "... manage complexity and highlight different aspects of the solution."
For instance, logic shows interconnections with conditions (if, then, else, etc) and process shows work flow, as an example.
Profound
These ideas of Mr. Brown are profound:
- We can visualize our process but not our software.
- In [Brown's] experience, software teams are unable to visualize the software architecture of their systems.
- Pictures are the simplest form of documentation.
- Sketches are not complete models.
- Abstraction is about simplifying, not creating a different representation.
Buy them at any online book retailer!