Uncertainty Principle in Software Projects

This principle resembles Heisenberg uncertainty principle in quantum mechanics and can be stated like this

“The more exact you wish to be the project deadline match the less detailed should be the contract”.

(You may listen to the audio or read the text below it)


Uncertainty principle in software projects (audio)

This principle is important because every software project assumes the development of something new. Otherwise we could just instantly copy the existing software.

Since the features are new, we have no experience to estimate the time they require exactly. The statistics confirms that average software project finishes six month after the official deadline and takes two times more money than planned.

It remains to convince the customer that (and it is really true!) the negotiation about the details is better to postpone to the moment when the prototype to interact with the corresponding features is ready.

This of course means that the first prototype should be delivered as soon as possible and that the procedure of the periodic negotiation about the details as soon as the prototype for the corresponding feature is ready should be included in the contract. The additional negotiations and the prototype delivery naturally slow down the project with the deadline as compared with the project without it. However it is the price to pay for your and your customer peace of mind and for the finishing in time.

Another advantage is that to the moment of the deadline all details will be agreed and you will have nothing to adjust at the last moment.

The uncertainty principle usually allows you to finish the project in reasonable time because according to another principle (Pareto principle) 80% the most important features take only 20% of the time. However, naturally, you should also negotiate the reasonable time.

However, even you will fail to finish in time, having the working prototype the customer likely agrees to shift the deadline or cut some less important features.

The next question naturally is how often you should negotiate the details with your customers and how to observe the deadlines for these intermediate iterative negotiations. I am going to discuss it in one of the subsequent notes. So stay tuned and subscribe to the feed :) .

0 Response to “Uncertainty Principle in Software Projects”


  • No Comments

Leave a Reply