How to assess a software cost estimation (for non-technical persons)
It is pretty hard to evaluate a software project and put a price tag on it.
In the article some challenges and how to go about assessing software cost estimations.
According to the chaos report, which is cited often, around 30 percent of all software projects fail. That means, that either the project duration is getting too long or the budget is not kept.
Here some challenges in software projects:
1) Difficult to check the exact requirements
If you want to build a custom build large house, then a price could be fixed only, if every part of the work is properly assessed. Upto the last screw, which will be used.
The architect will create a plan with an exact plan, where the whole house is replicated either on paper or often nowadays as 3D model. And in these programs it can be calculated how many screws, etc. will be needed to build the house.
With this information it is possible to give an exact estimation for the house building project.
But we also know: In very large building projects, the price estimates are usually not correct. And what was supposed to cost 500 Million Euro, will end up costing 5 Billion Euro or more. The Berlin Airport, the Elbphilharmonie in Hamburg and the main train station in Stuttgart, Germany are three examples, in most cases the cost was off by one billion Euro or more.
In the case of the main train station in Stuttgart, the fee for the architect was around 36 Million Euro. Even though the architect was paid such a high amount. The project cost estimation was off by around 1 Billion Euro.
Similar challenges can be seen in software projects.
Especially when non-technical people are involved in passing on the requirements for the software or web project. Usually the project descriptions will only a few lines inside an Email. Or a phone call where the required solution is outlined.
Some example websites will be given for reference. Not seldom these example websites have been built over many years costing hundreds of thousand of Euros, sometimes Millions.
But the budget for the web application or software solution will be around 4’000 to 40’000 Euro and it should be built within 2 months, maximum 3 months. (That is the wish usually by the non-IT person who is enquiring about the price).
The reality is this: Without a detailed enquiry document by the client, which will be around 10 to 50 pages and a detailed proposal created by the IT company, based on that enquired document, a price for the project cannot be determined.
And even if there is an exact proposal document. Usually requirements change during the project, which renders this exercise of proposal creation, which can take weeks, an unnecessary task.
2) Changing requirements during the project
There is almost no IT project, where the initially quoted software project stays the same during the project.
The reason is, that only once the software is starting to get shape, the client recognises, that there are some important things missing, without which the project cannot be a success and the software would not help the business processes.
But what if a fixed price has been agreed upon? How can the IT service provider allow changes during the project. This is almost impossible, because then the IT service provider will make no profit at all.
On the other side, the client will insist on the fixed price, saying that “For this small change there is no need to change the budget. This small change request you can put in the initial quote”.
And here is usually where the dilemma starts. This discussion about change requests will go on and on. And the project will get stuck.
Thus it is always better to keep the project budget fluid. Where the client pays as much, as the software development requires. -> Of course, this can seem “like a heaven for the software company” for the client, because he/ she will think that they will make more hours than necessary.
But compare it to a restaurant. If you order an extra coca cola or an extra steak, you would also need to pay for that extra thing. Why should it be different in software development? Especially in IT where hourly rates are usually much higher.
3) Difficulty to understand the complexities of software development by the non-IT person
It is usually very difficult to understand for a non-IT person to understand the complexities of software development.
“My friend built this one website in one day and it has a lot of features, Why do you need, as an expert, more than 6 months to develop these features?”
Most probably the friend used some Content Management System like WordPress or Drupal and used some standard plugins, which are usually bringing a lot of functionalities. But these are not custom software solutions made for the friend. Those are systems and plugins used by usually thousand and hundred of thousands of people, having similar requirements. Those are not custom made solutions.
But: Building these plugins most probably required around 2 to 5 or more developers full time for several months or even years. So even though the friend is using seemingly simple solutions. They have been created in a very complex software development.
So in case the client has some requirement which can be met by those plugins and “ready made solutions”. Then it is better to use them. But in most cases, these “ready made” software systems are not what the client requires.
The best example is the Google search engine. On the front-end (what the user sees) there is only a search bar and two buttons. So a non-IT person would say “it could only take one week to develop this. There is only a search bar and two buttons”. In reality there are many “hidden” backend functionalities, which are developed by thousands and thousands of developers and that over many years.
Depending on the complexity, scalability needs, etc. of the client project, the software development could take more time than expected.
There are some solutions how a non-IT person could approach the enquiry to the IT service provider.
1) Involve a software developer
Ideally there would be an in-house software developer or IT expert, who could cross check the estimate by the IT services company.
Usually that software developer will advise to keep the project scope flexible, so that changes can be accommodated.
If the estimation by the software company is plausible, the software developer will give green light.
That way, as an in-house employee is assessing the project, the non-IT person will also be convinced of the efforts involved for the development.
2) Use of Dedicated Developer
A dedicated developer, is a developer which is provided to the client on full time basis.
The advantage of this is, that the developer works closely with the client and also with the team of the client. This increases transparency. And the client or the team can ask questions and get real time answers.
This model works in different ways:
- Onsite: The IT services company asks the developer to go to the clients location, and work at the premises of the client.
- IT Outsourcing: A team of developers works at the premises of the IT services company.
- Nearshore Outsourcing: The dedicated developer works at the premises of an IT services provider in a nearby country. For Sweden, that would be Poland or the Ukraine. For Japan that would be Malaysia or China.
- Offshore Outsourcing: Here the developer sits in the premises of a software company in a far away country. Examples are India, Pakistan, etc. But the words Nearshore or Offshore can be used interchangeably. It depends, where the client is situated. If the client is in Japan, then India is a Nearshore Outsourcing destination.
The client can use the dedicated developer as long as he/ she wants. Till the project is finished. In case the project takes too long. The client and team can discuss with the developer, which way to go, to reach the goals faster.
3) Avoid rigid fixed price projects
A fixed price usually is not a good idea. Only if the project is very small. Like a one page website or similar.
Fixed prices can lead to a false hope that everything will be done, within that price. (Even All-You-Can-Eat does not work that way. You can eat as much as you want, but only for one meal. Not for days on end. But that is what clients expect, when they get a fixed price in software development)
Better to go for an agile pricing, where the time and effort of the software provider are remunerated, according to how much effort goes into the development.
Or use a dedicated developer or a team of dedicated software professionals, to work on your project.
A lot of software projects just fail, because there is a lack of understanding, what custom software development entails. Seemingly easy projects, can take weeks and months.
Therefore some assessment needs to be made by the client. What is the cost range for the software development, and what is the business value created by that. Is the business value created, much higher than the budget needed for the software development? Good, then it is good to go. Start the project.
If the business value created and the cost are not matching. Then maybe it is better to continue using manual solutions, Excel files or standard software or web solutions, which can be subscribed, by paying a low monthly fee.
Looking forward to an interesting discussion.
The author: Sascha Thattil works at Software-Developer-India.com which is a part of the YUHIRO Group. YUHIRO is a German-Indian enterprise which provides programmers to IT companies, agencies and IT departments.