Flowcharts and system diagrams are an important part of the illustration of complicated systems and algorithms; however, they can be misleading if they are not properly prepared.
The most important concept to keep in mind when creating a flowchart is to make them easy to understand.
Consistent design
With that in mind, make sure to be consistent in the shapes, lines, and text within your diagram. Example shapes are shown below. The flowchart shapes are meant to convey a particular meaning. For example, ovals are often used to denote the start and end of a process.
In addition to the meaning of each shape, color can help convey information. If a different color is used for each decision that must be made in a process, for example, the steps of the process can be more efficiently illustrated.
Length limitations
The human mind can become overwhelmed by too much information. Try to limit the scope of your flowcharts to a single page. Larger and more complicated processes and algorithms should be broken down into multiple pages.
To help make use of available space, remember that you can have your flowchart process both linearly from left-to-right as well as from top-to-bottom. You should not mix these two flows, but instead be consistent throughout the diagram.
Software recommendations
https://draw.io is a free and open source software that supports a wide variety of shapes and file formats. It is fully compatible with proprietary formats such as .vsdx (Microsoft Visio).