Very often developers are asked to provide estimates (at least rough ones) when a solution or feature will be ready. What steps development team should take to ensure that estimated solution will be delivered in time in accordance with provided estimates?
There are two thing you can do to finish a project faster and one to make it more likely to finish before the estimated date.
To make a project go faster.
Remove features. With less work to do the work will be completed sooner.
Hire more programmers. With more people to do the work, the work will be completed sooner
To make it more likely to finish before the estimated date
- Increase the estimate to at least double your first estimate.
Unfortunately there is a million things you can do that will make a project go slower and be late.
This question highlights a common problem with estimates, in any field. An estimate is a guess. It has a chance of being wrong. Therefore to talk of “delivering on time” when estimates are involved is a nonsense. To deliver on time, one must offer a guarantee; not an estimate.
So one solution is to turn that estimate into a guarantee. A good approach (for the developer at least) is to multiply that estimate by a figure between 3-10, depending on how many likely risks there are. That becomes your guaranteed figure.
A far better approach is to adopt an iterative approach to development. If you are only estimating what can be achieved in the next 2-3 weeks, then the risks of significant slippage of actual versus estimates is reduced. Of course, there is then no estimate at all of the final end date, but since most software products are never finished, as new releases are made all the time, that’s a cultural issue that can be addressed through education of other parts of the business.