Work flow diagrams need to present all possible paths that a user can take within an application. The focus of a work flow diagram is to coordinate between the all-possible actions that a user can take and the way the application responds in each scenario.
Work flow diagrams are not wire-frames and they are not concerned with what is displayed on a screen but with the actions users can take.
Drawing a work flow diagram on a white board can be used as an ideation exercise early in the design process. By sketching a work flow diagram on a white-board a group of people can quickly design the foundation of a feature. By involving development at this stage product managers and designers can get an early technical estimation or validation of the design.
I always attach a detailed work flow diagram to each design. This is extremely helpful for both the development and QA teams as it is a great quick reference for how things need to work without having to search through pages of high fidelity mock-ups.
Work flow diagrams are not just documentation, but a part of the design process and probably the best way to view at a glance the user experience of a feature.
If you have to redesign an existing feature always start with creating a work flow diagram for it. This is a great way to expose redundancies and edge cases in the existing interaction. Always avoid complexity. A simple logic ensures a better interaction and less chance for technical bugs.
Share your work flow diagrams with others as much as and as soon as possible. Do not work on wire-frames until everybody is in agreement about exactly how the feature will work and what it will do. It is great if you can add a more detailed map of the data flow in your diagram, if you are not sure how the data is generated try to ask a developer for assistance.
Create a work flow diagram even if the feature is very small. Work flow diagrams are a great way to discover edge cases.
Work flow diagrams are a great way to early map assumptions, requirements and risk. You should always try to test your work flow design early on. The best way to do that is through interviewing users. Describe the different scenarios and ask them how would they react to each one. Focus on understanding what is happening to the user outside of the application as well as in it. For example ask question like:
“When you are filing an online order do you have your credit card with you or do you need to get it half way through?”
If the user often goes to get their card mid way maybe the timeout has to be adjusted or the already entered information saved automatically.
At the end as with any other design, try to iterate, even though it might feel like wasted work, it is not.