Most tutorials about flow charting show how to use arrows to join a few standard shapes. For me, that wasn’t effective because I couldn’t see the purpose. That’s why this article is more about WHY to flow chart.
The flow chart is a tool for analytic review.
Flow charting provides creative freedom, and also logical integrity — both or either, as needed. Thus, the analytic review may be rigorously logical or informal.
Flow charts can illustrate process as well as status. Most tutorials start with an exercise of the process variety, which is to say a procedure: “Let’s say you want to prepare a cup of tea. Where do you start? Well, you need hot water.” This diagram develops:
NOTE: I’ve assumed you know enough about flow charting to make sense of this diagram. If not, you might want one of those tutorials I was complaining about. But come back so I can give you the rest of the goodies.
Whatever the challenges, the outcome of this chart is certain to be a cup of tea. This leaves the floob (that’s a flow chart noob) wondering: why not just make the tea?
A better approach: start with status, not process
Working on status rather than process is much more helpful for initial learning. “Let’s say you are wondering if you should go buy groceries now. What factors go into this Yes-or-No choice?” Decision points are the natural focus here, and in my experience that’s the point of a flow chart:
Working faster, not harder
Now the flow chart looks more promising as a thinking tool. But there’s something even more important. My charts actually look like this:
I use pencil and paper to facilitate free thinking. Using diagram software is unproductive, because I succumb to the charm of perfect vectors and this has the effect of removing my freedom. There’s a lot about this in my article about tools (or media).
When I’m making a chart to solve a problem or overcome confusion, I’m working fast. And I’m being creative. The chart is giving me an instant and visually effective measurement of complexity. While I’m watching the paths develop, I’m thinking: Is this the best arrangement? Can it be simpler? It may look like an “thinking inside the box” exercise, but I’m looking for an “outside the box” kind of benefit: Wait, I can just do this — that’s so much simpler!
The chart has value because it can be revised. If you’re afraid to revise, you’re not flow charting effectively. Get rid of fear and start finding new handles for analytic review. Seeing a tangle of lines shake out into discernible order is a very satisfying experience. Simplicity leads to elegance. Often it leads to concrete benefits — for example, at times my goal is simply to reduce the time required for a much-repeated step in my program. As a programmer, you may identify a section of code that should be made an independent function. The chart lets you see the isolated nature of the function.
Determining the scope
One constant decision when charting is the scope or depth of your analysis. Theoretically you could drill down to ever-deeper levels of detail; obviously that won’t work, so you must know the right depth for your purpose.
“Everything should be made as simple as possible, but not simpler. ”
– Albert Einstein
A very useful chart symbol is the multi-process step — similar to the step, shown with a rectangle, but this symbol is an embellished rectangle and means “a lot of stuff happens here.” If you need to include information that isn’t simple, and you want to skip the details, this is a way of keeping the scope manageable.
Be rigorous, if you must
Everything so far suggests an informal approach. But as a programmer, you’ll also use flow charting to conquer the dreaded logical bug. This may force you into rigorous or exhaustive analysis, thus a large and even tedious flow chart. Now the flow chart is helpful reviewing referential integrity, which simply means all parts are working together and conflicting or false sequences are exposed. This happens naturally as you make sure that:
- All the “Ins” and “Outs” are correct
- All decision branches are handled (both True and False are found)
- All paths actually go somewhere!
At some point, you’ll realize the solution. Creativity is still a benefit; you’ll notice ways to improve and simplify, perhaps on a smaller scale. Those discoveries may do more than smooth out the code — sometimes I’ll discover the bug has disappeared as a serendipitous by-product.
Onward!
At this point you can imagine of the power of flow charting for general development, even before code. The chart lets you move from freedom to exactitude, from brain-storming to tool-building, just by filling in details progressively.
I hope you see new ways to start applying flexible, effective flow charting on your current project. Just reach for a big sheet of paper and get started! *
* Link does not actually go to a big sheet of paper, sorry.


