Here are a few random problems that prevents delivery of a solution to users that they can use. Remember, if it fails to function as intended, fails to function at all, or fails to return a reliably correct result it’s not done. You have problems.
1. Fixing the wrong problem. An organization that has been responsible for the original creation and maintenance of a legacy system is so certain it understands the the needs of the users that it fails to engage the users and actual subject matter experts when creating the next generation.
2. Making the difficult even more difficult. Consider an ancient system of decision making where each person was presented a list of items to choose from on a piece of paper. Each person would then put a mark on next to their choice. The papers were collected, marks counted and the the choice with the most marks was selected. Fast forward to today's electronic voting systems. The user interfaces changes year to year. The system is put through a double blind audit, individual choices are displayed, printed, and stored. Each to be verified by the voter, the system, and the auditors. Real time numbers are held back to ensure completeness and every election seems to elicit cries of foul and tampering… that’s better isn’t it? These digital systems are being systematically dumped for the old school paper systems.
3. Too much information. Banking is, by most accounts, an industry concerned with security. It worries about accuracy and knows that integrity of the system is second only to the need to service the depositors. While trying to decide just how to to present a banking customer their account balances a committee was formed to ensure every part or the organization was represented. They created a “tiger team” to go do research, elicit opinions from academia, poll customers, and review the competition. The result was a 2 hour presentation of finding to the committee with 6 possible solutions each clearly marked with their pro’s and con’s. Consultants were hired to build prototypes which would run on all known platforms, support multiple languages, and be able to handle several different back end systems. When I meet these fellows they were nearly 2 years into the project and by my estimate, tens of millions of dollars spent, and no product in the the field. You can decide for yourself if that is a problem.
There are many, many more … what problems have you seen?