Thomas Guest posted a great article today called Distorted Software that, among other things, points out the problem with software diagrams with big boxes and little arrows:
Most of the work will go into making the connections work. In other words, the bulk of the work is in the little arrows, not the big boxes. He suggests a better diagram might look like this:
8 thoughts on “Visualizing software development effort”
Interfaces are important. Who’d have thought it? ;-)
It’s a very good lesson to learn.
John, I’m pleased you liked the article. Thanks for the link and the summary.
Steve, you’re right, interfaces are important. My point is that our pictures don’t show just how important they are. :-)
Nice post :)
For some reason reminds me of the Sensory Homunculus.
This is spot on, and very well communicated. Kudos.
Yes, but no. It’s a good article to remind people of the importance of the interfaces but the “arrows” aren’t the place where the interfaces are implemented. It’s also a distortion in that many of the arrows are duplicates – many interfaces are built as libraries used many times over in the same system. The interface may need to be a separate item on the diagram but not duplicated as many arrows.
It’s the classic “Critical Path Method” activity-on-nodes vs. “PERT” activity-on-arrows models of project planning. Either one beats Gantt charts.
“Wetware,” a book about how white noise drives biochemical processes, erased the Krebs Cycle. Back when I studied biochemistry, the Krebs Cycle was on big black circle connecting various chemicals. Well, that circle doesn’t exist in any continuous manner. Each reaction is a reaction unto itself alone. The circle is discrete and fragmented.
Places fragment the reactions. Places enable and filter reactions. These places ensure an orientation that’s catalytic. White noise keeps the chemicals moving until they are oriented correctly, then the reaction happens. White noise moves the product to another place, and moves the feed stocks into place. What we call the Krebs Cycle is an analog illusion, whose reality is quantised.
In the architecture sense, we fool ourselves because data carries process and is a substitute for process. What is data? What is code? It’s messy.