After so long in the IT industry, especially Software Development / Business Consulting, I kinda feel the approach we are applying are flawed.
The customer says they need some system (maybe wanted to build a child bicycle), thus we come in to find out what they need. In the process of asking what they need, they feel maybe the child bicycle is too simple and not powerful enough, thus they told us to build a high-speed bicycle instead. After the second discussion with top management, they feel the high-speed bicycle is not good enough. They wanted to add in a motor, add some bell and whistle, change to metallic colour with stripes, and perhaps attached a mobile shopping cart at the back. Then we have the first release out, and the CEO feel that the motorcycle is not good enough, that they need a car. Then we call for enhancement to modify the motorcycle into car, and the car ends up to be a sport car and launch the product after a 12 months delay. Then the luxury car is too powerful and complicated, that no one knows how to use 90% of its feature. The sport car is too expensive and too difficult to use, and it ends up as a white elephant. What they user actually need is just a children bicycle, but the feature-creep within the users, management and CEO wanted mega-project to fulfilled their own desire.
So, what happen when you let the customer decide what to build? They would want everything under the sun, everything to be automated and everything from the best of the world. You can have all that, but it comes with time, money and risk, which you might not be able to afford. A simple accounting system can cost from RM 2000 to RM 1,000,000. Can you lived with a RM 2000 accounting system, or are you willing to fork out another RM 10K to buy another slightly better one. Is the money worth spending? Do you staff really need it or know how to use it? Yes, the RM 2000 is not really powerful, but can you live with the slight inconvenience, but lower cost and great simplicity? Are you paying money to make your life miserable? Do you intend to buy a perfect system which is too costly or too hard to build? Do you actually need those extra features? Are you being a wise consumer?
Most software project fails, or turns out not profitable. Perhaps it is wrong to let the customer to be the 100% decision maker. As consultant, we could persuade and advice the customer, sometimes they don’t listen, or sometimes our advice could be bad for our own business. It's not easy, it require education on the customer side and the software developer side. The customer can't always be right, as they customer don't know what they actually want.
Solution? No one simple solution for all. Why not always just build a simple bicycle first, launch the product and see how it goes. If it works well and become profitable, then we could slowly upgrade it to a motorcycle or car. Or just use some off the shelf product if you could, as you might not be ready to deal with the cost and risk of customised software. Simplicity (if you could afford it) is the key to a successful implementation. Even if you have 10 system to build, you could always start with 1 rather 10 at a go, as there is always a lot of lessons to be learn from the first one (so that it could benefit the rest). Every system is urgent, but you could actually spent 12 months talking and making decison, while only allocate 1 month for the system to be delivered? If this is not digging you own grave, tell me what are you doing here? Forcing the vendor to deliver the system at unreasonable timeframe doesn't benefit you at all, and does it make you feel powerful in the process?
Simple, Low Cost, Low Risk = Happiness + Satisfaction. It ain’t perfect, but it didn’t screw you up and it helps your business.