Many years ago (many, many years ago) when I went to work for Litton ABS and first got involved in computer programming, my manager and I went to try to sell a new up-do-date computer to an existing client. The client's old system was actually built around a modified teletype machine. Like the 30-year old car currently sitting in my driveway, the antique computer still managed to do what they needed (albeit slowly and with the help of a lot of manual input), but the client had become attached to it and kept resisting the temptation to change.Our new system was a huge improvement in every way (or almost every way as it turned out). It included a high-speed printer, much greater storage capacity, and a brand new bright and shiny software package. There was no way the client could resist all the features packed into the software and the great job we did of presenting it, including sample print-outs and a full-color brochure. And yet - after all that, the customer turned us down.
Why did we lose the sale? What shortcoming in the software or our presentation doomed us? Well, as it turned out it was the one thing we couldn't do for the client. The owner believed in keeping all his employees out on jobs, which left his wife to handle the computer and work the front counter in their store. Periodically, when the computer finished a stage in the job costing program it was running she had to go into the back room, check on some interim figures, and decide what to do next. Then she had to hurry back out front and be ready to serve any in-store customers.
So how did the owner's wife know when the computer had finished a stage in the job costing process? The old system, built on the skeleton of a teletype machine, rang a bell (left over from its teletype days) whenever a particular section of the program ended. With all the huge improvements incorporated in our new software package, the program couldn't perform one critical function - it couldn't ring a bell. In spite of all the work we put into developing a crackerjack job costing program and all the effort we put into presenting all its virtues, we forgot to listen closely enough to what the customer needed.
Given time we could have found a way around "ringing the bell" but we got too focused on everything we packed into our program and not what was missing. It's many years later now but the point is still valid - let as many people as possible look at your app now, while you're building it, to make sure you're not overlooking something important that could cost you sales.