Thinkydink Guide to Process Flows

What Is A Process Flow Diagram?
How to Create a Process Flow Diagram
Tools to Try

 

What Is A Process Flow Diagram?

As the name implies, Process Flow Diagrams are pictures that describe how a thing is done; they illustrate a process. In the software/systems development world, a process flow is something you would create after you've written your Requirements Document, but before you begin working on your Software Design Document. A process flow breaks a big task down into individual steps, and then describes the dependencies and relationships between those steps. You can't really design your software or system until you have a solid understanding of the process that software or system must support. Processes that look very simple and straightforward aren't always what they seem, but until you begin detailing a process you won't know what's missing.

Consider the task of answering the phone. A basic process flow for answering the phone might look like this:

Notice how many separate steps are involved in having a phone conversation. Each step is represented in the diagram as a separate box. Also notice the two paths through the process, represented by arrows in the diagram:

1) You could answer the phone, find no one on the other end and hang up

2) You could answer the phone, find that there is a caller on the line, talk for a while, come to the end of the conversation and then hang up

There are no other paths available to the phone user; for instance, you can't hear the phone ring and then decide if the conversation is over, so there is no arrow leading from the box where you hear the phone ring to the box where you decide if the conversation is over.

A process flow diagram is intended to show all the possible actions and all the possible outcomes involved in a task, procedure or process. The example above could be expanded considerably if you take answering machines, caller ID, call waiting and other possibilities into account. A complete process flow diagram helps you to anticipate how your program or procedure and your user(s) will interact. It serves as a roadmap, ensuring that your program or process will be able to respond to every possible action the user might take.

The goal in any process flow is to give a complete, graphical representation of how a program or process works, and what happens as a result of various actions on the part of the user.

 

Back to Top

 

How to Create A Process Flow Diagram

The basic concept of a process flow is pretty simple. You need to break a program or process down into separate steps, then figure out how the user gets from one step to the next.

For example, consider the process of getting yourself a drink from your refrigerator. Begin by making a list of the steps involved in getting a drink.

Open the fridge
Look at the available drinks
Take a drink out of the fridge
Close the fridge

This is a good start, but you can break it down even further if you think about it. For instance, this list of steps assumes that there are drinks in the fridge, and that each drink is self-contained. What if you decide you want milk? The steps listed above would indicate that you should be drinking your milk out of the carton. Here's a more detailed list of steps:

A. Open the fridge
B. Look at drinks in the fridge
C. Choose a drink
D. Remove the drink receptacle from the fridge
E. Close the fridge
F. Determine if the drink receptacle contains more than one serving
G. If the drink receptacle contains more than one serving, put the receptacle on the countertop and go to step G.1; if the receptacle contains only one serving, go to step H
G.1 Go to the cupboard containing cups and glasses
G.2 Choose a cup or glass
G.3 Remove your cup or glass from the cupboard
G.4 Close the cupboard
G.5 Retrieve the drink receptacle
G.6 Pour one serving of your drink from the receptacle into your glass or cup
G.7 Open the fridge

G.8 Put the drink receptacle back into the fridge

H. Close the fridge

Now imagine the extra steps introduced if you want to account for the case where you look for a drink, but don't find any drinks in the fridge. Think about how you would include steps for having ice with your drink. As you can see, even the simplest task can seem like a major production when you break it down into its smallest components.

You may be wondering if all this detail is really necessary; to get a drink from the fridge, probably not. But to write a computer program, absolutely! You don't want to discover that you've forgotten to include a step or possible user action AFTER you've begun to write your code, because it can be very hard to backtrack through the program and squeeze that new step or action into a program you've already begun to write. As you wrote the program, whether you realized it or not you were going with an assumption that no other steps or actions would have to be accomodated. Whole modules may have to be rewritten when your assumptions change, so it's a far better thing to spend an extra few hours nailing your process flow than to spend extra days and weeks dealing with a new step or action later.

Once you have all of your steps listed and have reviewed them to ensure you've included every possible condition in your program or process, get someone else to look over your list. Ideally, this should be someone who has some familiarity with the process your system or program will support. Virtually without exception, that other person will bring up steps you haven't considered.

When you're sure you've got your list of steps finalized, it's time to start creating your diagram. Take each step, and make it into a box. Then connect the boxes with arrows to illustrate the possible paths through the process. Whether you use a sketchpad, a white board, a chalk board or a computer program, be prepared to manipulate your working copy quite a bit before getting a finished product. Some people prefer to begin with diagram sketches instead of step lists; use whatever makes the most sense to you. If you're a visual person, diagram sketches may get you off to a better start than written step lists. In our 'getting a drink' example, the process flow might look like this:

The process flow diagram has a start and an end, and the flow moves in a circular path from the start box to the finish box. Notice that there are three possible paths to get from the start to the end:

1. You could open the fridge, find no drinks and close the fridge.

2. You could open the fridge, choose a single-serving drink and close the fridge.

3. You could open the fridge, choose a drink receptacle, pour yourself a single serving of the drink and then close the fridge.

Notice that there are two decision points in this process flow - places in the process where the user of the process must answer a yes/no question. Most process flows for software have many decision points, and therefore many different paths the process, or user of the process, can possibly follow.

Once you have a good working copy of your flow, follow each path through your flow from the START box to the END box. This will help you to discover possibilities you hadn't thought of, and to see if there are any dead ends in your flow - places where the user will get stuck instead of being allowed to get to the END box.

In the example above, following all the paths would point out that I haven't included any steps to cover the situation in which the user opens the cup/glass cupboard and doesn't find any cups or glasses. Unless I add some more steps to cover this possibility, the user will get stuck in the "Choose Cup/Glass" box whenever no glasses or cups are found. I'd also see that I haven't included any steps to accomodate the situation in which the drink is in a receptacle, but the receptacle only has one serving left in it. Given the flow I've written, the user would end up putting an empty receptacle back into the fridge. Again, I would add the steps for that path to my process flow.

Your first draft of the process flow will get quite a workout in terms of edits and changes, so don't worry about formatting, fonts and other details of how pretty it looks until your flow is finalized. If your finished diagram is very complex, you may want to use different colors of arrows and boxes to distinguish the different paths. Notice how I've used green in the START box, a reddish tone in the END box and yellow in the decision points; the meanings of these colors (go, slow down and stop, respectively) are fairly universal, so people viewing the diagram will get an immediate idea of what happens at those places in the diagram before they even read the contents of the boxes.

This simple drink example should give you enough information to get started on your own process flows. To review:

1. Gather your requirements in a Requirements Document

2. Break the process defined by the requirements down into individual steps

3. Have someone else review your steps, and edit them accordingly

4. Sketch out a process flow

5. Follow all of the possible paths through your flow from START to END

6. Edit your flow diagram to accomodate new or different steps discovered while following the available paths

7. Clean up the process flow diagram so it will be presentable to your users

 

Back to Top

 

Tools to Try

You don't really need anything more than boxes and arrows to make a process flow diagram, though as the complexity of your diagrams increases you may choose to use different shapes to represent different kinds of paths, decisions and actions. There are many different formalized systems for creating process flows, and while each dictates its own set of formatting rules, all that really matters in the end is that anyone looking at your process flow can follow its paths and understand the process it illustrates.

Most MS Office programs contain drawing tools. I created the flows shown in this page in MS Power Point, because in my opinion its large, empty workspace and its flexibility are easier to work with than the workspace provided by Word or Excel. Word "expects" you to write documents and Excel "expects" you to create spreadsheets, so they're not always optimal for creating or manipulating graphics.

If you don't have MS Office but you do have Windows, you can use the Paintbrush program that comes with windows. More information about Paintbrush and the things you can do with it can be found in the Stupid Graphics Tricks page.

There are plenty of other flowcharting programs available if you want or need to get really fancy with your diagrams. Visio Technical has templates and tools specially designed to help you create all kinds of different diagrams, including network layouts, database diagrams, and yes, process flows. ABC Flowcharter is another tool you may see on software shelves for this purpose. Both are excellent programs, but I would discourage you from investing the money in either of them unless you're sure that your needs far exceed what can be accomplished with software you already have.

 

Back to Top

 

Send comments and questions about this site to the Webmaster@Thinkydink.com All Thinkydink site content copyright April Hamilton, 2000-2002, All Rights Reserved.