Finally, you could observe what is currently going on. Sit with a user and watch how long it takes to complete a process, or what steps are done. You can then assess where the shortfalls are in the process and you’ll probably find they talk to you as you watch, pointing out things they don’t understand or steps they feel are pointless (or conversely, things they would like to have instead).
Once you’ve gathered all the requirements, then it’s the time to start thinking about solutions. Remember that the people who worked with you to elicit and formalize the requirements should also be involved throughout the project to check that what you are building continues to meet their needs. With 80% of project team members in one study (http://www.geneca.com/75-business-executives-anticipate-software-projects-fail/) reporting that they spend at least half their time on rework you can see why spending time upfront and then working together throughout the project is essential for a smooth project. However, it can be hard to get it right exactly at the beginning, so if you involve the decision makers as you go you’ll find they will tell you more about how the product fits their needs and you can make changes accordingly. That’s cheaper, faster and more successful for everyone.