Contact us!

Why is it difficult to estimate the cost of custom software?

Developing software is a complex process with many factors at play – something that leads to difficulties when it comes to estimating cost.  

Many companies that use external experts to develop software for their business have never done so before. It’s a new kind of process for them and it often looks very different from when they buy other solutions for their business – which can be frustrating. Buying custom software is not like picking out and buying a machine you’re in need of, where the machine is delivered, installed and up and running within a week.

Starting from scratch

When you order custom software, you start out with basically nothing and often everything has to be built from scratch. The only thing that exists is perhaps an idea of what your company needs but no details have been determined. There is no code, many decisions to be taken and there is a lot that has to be taken into account. It is a little bit like if that machine you need doesn’t exist yet and has to be invented and built on the spot. The only thing you know is what the machine will be used for, and everything else needs to be done from the ground up. From drawings to decisions on material and components to actually building all the parts and putting them together.

Since the work starts from square one, it is important that a lot of focus is put on the initial feasibility study and planning work. If this is not done properly, there is a great risk of the whole project failing. During this stage, it is also important that you as a client really clarify the goals you have for your software. If not, a gap can form between you and your development team which can lead to a lack of clarity regarding what you want from them.

A “dynamic” purchase

Ordering custom software is not, like many other types of purchases, static. It is a process which in many cases means that what you order is not actually what you, in the end, buy.    

At the beginning of a project, the client often enters with assumptions, clear directives and a list of the most important things. But – as things are broken down and defined, the focus often changes and you want to re-prioritize. Also, as the project evolves, you, as a client, will realize just how many opportunities custom software opens up for your business.  You’ll find more things you want to do, maybe integrate towards even more programs, and you’ll find that you want to do things differently to how you originally thought.  

Developing your own software can be a real door opener when you realize all the possibilities there are. And as software consultants, we know that that door will open. It follows that we also know that from the beginning we are forced to make an impossible cost estimation – an estimation that is not based on what we will actually end up building for you.  

The simple answer to why it is difficult to estimate the cost of custom software: because it’s so complex. Even when clear goals are set for your solution, the road to get there is long and a lot can affect the project, making it, if possible, even more complex.  

More factors than can be counted

What mainly makes software development so complex is its functionality. There are endless parameters that need to be accounted for and basically just as many decisions to take. This is however not something you can spot at the beginning – instead, all these factors which affect the software will reveal themselves along the development journey.  

This makes it possible for the software to look good on “the outside” but if you look a bit closer you will soon see that that might not be the case. For example, a lack of existing, or simply incorrect, documentation could cause problems when integrations with other systems need to be built. This means that we as software developers are often dependent on the client’s other suppliers, which can complicate the process.  

Unexpected events occurring is also common in software development. Again, to compare with the machine example: imagine that a water pipe was just discovered right underneath the exact place where the machine needed to be drilled into place. As a result, you can no longer place the machine in the intended place and you need to rethink everything. Worst case scenario is that the machine needs to be completely redrawn as the dimensions you planned for no longer work in the new spot.

Vad kan man göra för att förenkla estimeringen?

What can be done to simplify the estimation?

Delivering a cost estimate at the earliest stage of the software development process is, due to the reasons mentioned above, almost close to impossible since we, as your development team, first need to understand your organization and your needs. When that kind of feasibility study is done, it is then difficult to estimate the cost as a lot will happen along the way, both in terms of re-prioritizations and unexpected events.  

But – there are a few things you as a client, together with the development team, can do to create the best conditions to estimate the price of your custom software:

Define and scale down the scope. Immediately.

Define your high-level goals instead of handing over long lists of things you want done to the development team. Changes and re-prioritizations will happen along the way no matter what.

Avoid detail planning

Have a look at the project paradox showing that the biggest decisions are taken at the beginning of a project when we have the least knowledge. The green line should instead move to the right so more decisions are taken later in the process.

Break down the project into as many parts as possible

This is also a way to counteract the paradox – take small steps all the time, all while learning from them. This way, it’s easier to control the cost.

Try to identify risks and problems in advance

As mentioned, there will be unexpected events but do what you can to eliminate them.

Maintain an ongoing dialog with all stakeholders

It is important to communicate what is happening at all times. This way, everyone knows what is going on and the right person is involved at the right time.

Estimating the cost of customized software is difficult. Software development is a complex process and your software partner needs to know a lot about your business before even a first estimation can be done.

Block Quote
Back