If you can model your app's control flow as a state machine, then IMO you should. As others have said, state machines are quite easy to visualise in flowchart form. More importantly, however, having a state machine as your model makes validating the correctness of your code much, much simpler, because you can confirm that the code covers every state and every transition between states.
Code written for microcontrollers is often designed and implemented using this approach for exactly this reason.
At risk of provoking a flamewar, I'll also state for the record that anyone who finds a state machine "too geeky or hard to understand" has no business programming. A regular expression is a finite state machine, after all.