You can often read about software development projects that failed. The presented figures vary from about 35% up to 75% of the total amount of projects. There is no need to argue these figures. Let’s better try to fight the causes. So, first we need to find the biggest traps in software development.
[Picture credits: Stock.xchng]
Basically there are three areas of client dissatisfaction:
1. The project is more expensive than expected
2. The project is delayed
3. The project doesn’t satisfy the needs.
How come that we are still not able to handle this? In my opinion there are many different causes. The list below is for sure not comprehensive. Basically it is based on our own experiences as software consultants and developers.
1. Everything is supposed to be easy
Business representatives consider their requests to be rather easy to implement. They very often don’t understand why one tiny “simple” request leads to a lot of work.
2. In general the business is not capable of clearly defining their needs.
Very often they occur to have a different problem that needs to be solved than the request they initially came up with.
3. We start thinking in terms of solutions too quickly
Being aware of bullet 2. that shouldn’t happen too quickly. The business has to express its needs, IT should propose the solution.
4. Sales people are eager to close a deal.
They like to provide their clients with a quick estimate. They give little information to the developers and request for a rough estimate. Commercial negotiations very often lead to an even lower price than the rough estimate. During the project it appears the budget is not sufficient.
5. After a basic project intake the developers start coding.
Too quickly developers think they know everything they need to know about the project. After some time they show their final result to the client. He concludes it’s different than he imagined. We forgot to find out what car make and type he would like to buy.
6. There is little time for a good software design.
Too often the business representatives put high pressure on the developers to deliver. The developers just don’t get the time to think about a decent solution design.
7. Code is not being tested by the developer.
They either claim it is too time consuming or they just don’t treat it as their job. A lot of bug fixing, which causes project delays and unhappy clients, is the result.
8. The specifications are being changed on the fly.
Both the business and IT tend to add or change things during the project for all kind of reasons. Everybody should realize that such changes will have an impact on the budget and the planning.
9. Developers don’t dare to say they don’t understand a request.
Either they say it’s not possible, which results in an unhappy client, or they just go ahead and implement it in the way they think is best.
10. Developers are too proud to admit they do not know something.
If they are stuck they keep looking for hours or even days for a solution. Of course they cannot be sure whether this is the best solution. My golden rule is that you should ask others for opinion about your issue if you don’t manage to solve it yourself within half an hour. While explaining your issue to a colleague, most often you will find the solution yourself. Don’t waste too much time, together you just know more. Be proud you dared to ask for help. Nothing wrong about that.
What is the mistake you make most often and probably more important how do you try to prevent making it? Please share your experiences and opinion below.