What is a flowchart?
A flowchart is a diagram that depicts a process, system or computer algorithm. They are widely used in multiple fields to document, study, plan, improve and communicate often complex processes in clear, easy-to-understand diagrams. Flowcharts, sometimes spelled as flow charts, use rectangles, ovals, diamonds and potentially numerous other shapes to define the type of step, along with connecting arrows to define flow and sequence. They can range from simple, hand-drawn charts to comprehensive computer-drawn diagrams depicting multiple steps and routes. If we consider all the various forms of flowcharts, they are one of the most common diagrams on the planet, used by both technical and non-technical people in numerous fields. Flowcharts are sometimes called by more specialized names such as Process Flowchart, Process Map, Functional Flowchart, Business Process Mapping, Business Process Modeling and Notation (BPMN), or Process Flow Diagram (PFD). They are related to other popular diagrams, such as Data Flow Diagrams (DFDs) and Unified Modeling Language (UML) Activity Diagrams.
Flowcharts to document business processes came into use in the 1920s and ‘30s. In 1921, industrial engineers Frank and Lillian Gilbreth introduced the “Flow Process Chart” to the American Society of Mechanical Engineers (ASME). In the early 1930s, industrial engineer Allan H. Morgensen used Gilbreth’s tools to present conferences on making work more efficient to business people at his company. In the 1940s, two Morgensen students, Art Spinanger and Ben S. Graham, spread the methods more widely. Spinanger introduced the work simplification methods to Procter and Gamble. Graham, a director at Standard Register Industrial, adapted flow process charts to information processing. In 1947, ASME adopted a symbol system for Flow Process Charts, derived from the Gilbreths’ original work.
Also in the late ‘40s, Herman Goldstine and John Van Neumann used flowcharts to develop computer programs, and diagramming soon became increasingly popular for computer programs and algorithms of all kinds. Flowcharts are still used for programming today, although pseudocode, a combination of words and coding language meant for human reading, is often used to depict deeper levels of detail and get closer to a final product.
In Japan, Kaoru Ishikawa (1915-1989), a key figure in quality initiatives in manufacturing, named flowcharts as one of the key tools of quality control, along with complementary tools such as the Histogram, Check Sheet and Cause-and-Effect Diagram, now often called the Ishikawa Diagram.
Here are some of the common flowchart symbols. For a more comprehensive list, see our full flowchart symbols page.
|Data, or Input/Output|
|Comment or Annotation|
Flowcharts for computer programming/algorithms
As a visual representation of data flow, flowcharts are useful in writing a program or algorithm and explaining it to others or collaborating with them on it. You can use a flowchart to spell out the logic behind a program before ever starting to code the automated process. It can help to organize big-picture thinking and provide a guide when it comes time to code. More specifically, flowcharts can:
- Demonstrate the way code is organized.
- Visualize the execution of code within a program.
- Show the structure of a website or application.
- Understand how users navigate a website or program.
Often, programmers may write pseudocode, a combination of natural language and computer language able to be read by people. This may allow greater detail than the flowchart and serve either as a replacement for the flowchart or as a next step to actual code.
Related diagrams used in computer software include:
- Unified Modeling Language (UML): This is a general-purpose language used in software engineering for modeling.
- Nassi-Shneiderman Diagrams: Used for structured computer programming. Named after Isaac Nassi and Ben Shneiderman, who developed it in 1972 at SUNY-Stony Brook. Also called Structograms.
- DRAKON charts: DRAKON is an algorithmic visual programming language used to produce flowcharts.
How flowcharts are used in numerous other fields
Beyond computer programming, flowcharts have many uses in many diverse fields.
In any field:
- Document and analyze a process.
- Standardize a process for efficiency and quality.
- Communicate a process for training or understanding by other parts of the organization.
- Identify bottlenecks, redundancies and unnecessary steps in a process and improve it.
- Plan coursework and academic requirements.
- Create a lesson plan or oral presentation.
- Organize a group or individual project.
- Show a legal or civil process, like voter registration.
- Plan and structure creative writing, like lyrics or poetry.
- Demonstrate character development for literature and film.
- Represent the flow of algorithms or logic puzzles.
- Understand a scientific process, like the Krebs cycle.
- Chart an anatomical process, such as digestion.
- Map out symptoms and treatment for diseases/disorders.
- Communicate hypotheses and theories, like Maslow’s hierarchy of needs.
Sales and marketing:
- Plot out the flow of a survey.
- Chart a sales process.
- Plan research strategies.
- Show registration flows.
- Disseminate communication policies, like an emergency PR plan.
- Understand order and procurement processes.
- Represent an employee’s tasks or daily routine.
- Understand the paths that users take on a website or in a store.
- Develop a business plan or product realization plan.
- Document a process in preparation for an audit, including for regulatory compliance, such as under the Sarbanes-Oxley Act.
- Document a process in preparation for a sale or consolidation.
- Denote the physical or chemical makeup of a product.
- Illustrate the manufacturing process from beginning to end.
- Discover and solve inefficiencies in a manufacturing or procurement process.
- Represent process flows or system flows.
- Design and update chemical and plant processes.
- Assess the life cycle of a structure.
- Chart a reverse-engineering flow.
- Demonstrate the design and prototype phase of a new structure or product.
Types of flowcharts
Different authors describe various types of flowcharts in different terms. These people include published experts such as Alan B. Sterneckert, Andrew Veronis, Marilyn Bohl and Mark A. Fryman.
Sterneckert, in his 2003 book Critical Incident Management, listed four popular flowchart types, framed around the concept of flow controls rather than the flow itself:
- Document Flowcharts: These “have the purpose of showing existing controls over document-flow through the components of a system. … The chart is read from left to right and documents the flow of documents through the various business units.”
- Data Flowcharts: These show “the controls governing data flows in a system. … Data flowcharts are used primarily to show the channels that data is transmitted through the system rather than how controls flow.”
- System Flowcharts: These “show the flow of data to and through the major components of a system such as data entry, programs, storage media, processors, and communication networks.”
- Program Flowcharts: These show “the controls placed internally to a program within a system.
Veronis , in his 1978 book Microprocessors: Design and Applications, outlined three flowchart types based on scope and level of detail:
- System Flowchart: Identifies the devices to be used.
- General Flowchart: Overview.
- Detailed Flowchart: Increased detail.
Bohl, in her 1978 book A Guide for Programmers, listed only two:
- System Flowchart.
- Program Flowchart.
But Fryman, in his 2001 book Quality and Process Improvement, differentiated the types in multiple ways from more of a business perspective than a computer perspective:
- Decision Flowchart.
- Logic Flowchart.
- Systems Flowchart.
- Product Flowchart.
- Process Flowchart.
Additional flowchart types defined by others include:
- Swimlane Diagram, a.k.a Swimlane Flowchart: To delineate who does what in cross-team processes.
- Workflow Flowchart: To document workflows, often involving tasks, documents and information in offices.
- Event-Driven Process Chain (EPC) Flowchart: To document or plan a business process.
- Specification and Description Language (SDL) Flowchart: To brainstorm computer algorithms using three basic components: system definition, block and process.
These related diagrams are also sometimes thought of as types of flowcharts:
- Data Flow Diagram (DFD): To map out the flow of information for any system or process.
- Process Flow Diagram (PFD), a.k.a. Process Flowchart: To illustrate the relationships between major components at an industrial plant.
- Business Process Model and Notation (BPMN 2.0): To model the steps of a planned business process.
How to plan and draw a basic flowchart
- Define your purpose and scope. What do you hope to accomplish? Are you studying the right things with appropriate start and end points to accomplish that purpose? Be detailed enough in your research but simple enough in your charting to communicate with your intended audience.
- Identify the tasks in chronological order. This might involve talking to participants, observing a process and/or reviewing any existing documentation. You might write out the steps in note form, or begin a rough chart.
- Organize them by type and corresponding shape, such as process, decision, data, inputs or outputs.
- Draw your chart, either sketching by hand or using a program such as Lucidchart.
- Confirm your flowchart, walking through the steps with people who participate in the process. Observe the process to make sure you haven’t missed anything important to your purpose.
More flowchart tips
- Keep your audience in mind and gear the detail in your chart to them. Clear communication is a key goal of flowcharts.
- If the process you are charting involves different teams or departments, consider using a Swimlane Diagram to clearly delineate responsibilities and handoffs.
- Use on-page or off-page connectors to “edit” your chart and make it flow logically. This can allow you to break up a chart into separate pages and still flow well.