Visualizing software development effort

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:

big boxes, 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:

big arrows, little boxes

13 thoughts on “Visualizing software development effort

  1. Pingback: The Third Bit » Blog Archive » What My Students Have Learned This Summer
  2. 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. 🙂

  3. 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.

  4. “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.

Leave a Reply

Your email address will not be published. Required fields are marked *