Flowcharts were usually invented before activity diagrams. Non-programmers use flow charts to model workflows. A flow chart, for example, is used by a manufacturer to explain and illustrate how a specific product is manufactured. A flowchart is a simplified version of an activity diagram. A flow chart is used to represent business processes that involve decision-making. As a result, programmers depict workflows using activity diagrams (a more advanced flowchart version). Developers use activity diagrams to understand the high-level flow of programs. It also allows them to identify the constraints and conditions that lead to specific events.