Saturday, April 26, 2008

The Pitfall of Business Software Development

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.


Damien Tan said...

Sometimes customers can be like a 5 year old kid in a toy shop. My solution is not to tell them they're wrong but to charge them for everything they ask for that's outside the signed-off scope. Yes, everything is chargeable. The more last-minute it is, the higher the price. If they are not happy with it, I will politely withdraw as I had done a few times before. I may not get their business but in the long run, I rather do that than to end up financing their wild fantasies and bleeding my business dry. At some stage, even indecisive customers must learn there is a price to everything, including their indecisions. But if they do agree to pay me, then I make sure I give them a job well done.

d_luaz said...

Sometimes it is not just money and price, but their indecisiveness or fanticies will actually coz the project to fail.

It is so hard to let them notice it, and I personally believe following everything they demand even though I know it will lead to doom road is not a good thing.

Anonymous said...

Well, I agreed that the approach that most of us are using currently leads us into that kind of situation.

From customer point of view, I guess if we want to buy a product, we get to see thing before we make the purchase. But for IT solution, most of the time, customers are putting certain percentage of trust in vendor. So theoritically, it's like I'm asking for an orange but given an apple in the end.

I believe that's reason why most of the customer wants a POC from vendor before proceeds to engage the vendor. Of course, I personally think that's a luxury at the expense of vendor which only large corporation like Oracle, IBM etc will agree.

Hmmm ... just another 2 cents of thoughts.


d_luaz said...

If you want insurrance (aka POC), there is a price for it as well :) IT Vendor don't mind doing it, as long as someone is paying for it, or the project is big enough. Nothing is free in this world.

An orange for an apple? That could be a problem. Human is too different and complicated, it's hard to get everyone to think on the same level. I am asking you to build a car. It might come out as a Proton Wire or Toyota Vios, and it's still a sedan car. It had wheel, and it move, why are you not accepting a Proton Wira? And you are paying RM 50K, and you want a VIOS?

Again, no easy way out. If possible, buy off the shelf product, and don't do big customise software solution unless necessary. But again, everyone WANT customised solution :)