While it is a cute story, the real meat is in the advice at the end.
1. Get to know your end users as people
2. Learn their jobs and their concerns
3. Don't undertake a design/analysis/programming project if you do not have free access to the end users and stake holders.
4. End users will know significantly more about how they do their jobs and what works than they are given credit for.
5. When an end user has a problem with the solution, always assume there is a problem until your have proof there is not. It is not the end users job to debug your code. Most shops assume there is no problem unless the user can prove it. This approach is fundamentally flawed.
Using these guide lines, projects will run more smoothly and have a much better chance of finishing on target and on time.