Today's Web applications support the editing and manipulation of data, allowing a much more robust dialogue to take place between the software and the user. When done well, the end result provides the user with a better tool to help them complete a task. Too often, though, software ends up being developed before the user interaction and user models are taken into consideration.
This lack of representation results in a user interface reflecting more of the back-end framework than the front-end needs of the user. Introducing task flows into your software development lifecycle can avoid some of these pitfalls and benefit not only the end product but the development process as well.