10 Reasons Why Software Project Estimates Fail

Share this article

Think about the web and software projects you’ve completed. How many were delivered on time and on budget? How many estimates were accurate? IT projects are notorious for over-running, and here are several reasons why it occurs… 1. The project is poorly scoped How can you estimate time on a project when you don’t know what that project is? It’s rare to find a client who appreciates exactly how their system should work. Almost every large project I’ve undertaken has requested “flexibility”. In other words, the client wants the system to handle anything they want at any future point in time — even though they have no idea what those features might be. Flexibility is not a requirement! 2. Development time is estimated by non-programmers If you’re not a programmer, don’t guess at development times. A project is doomed the moment a manager writes their own fictional estimate. At best, they’ll be completely incorrect. At worst, the programmers will be tempted to prove them wrong. 3. Developer estimates are too optimistic Developers think in terms of coding hours. Time passes quickly when you’re in the zone and it’s difficult to assess your own speed. Appreciating the speed of other developers is impossible. Many developers are over-optimistic. They tend to forget the softer side of the development process, such as project management, collating requirements, discussions with colleagues, absences, PC problems, etc. 4. The project is not adequately dissected Be wary if the development estimate for an individual feature exceeds a week. That chunk should be sub-divided further so the developer can analyze a complex problem in more detail. 5. Estimated time is used Give a programmer 5 days to complete a task and it’ll take 5 days. Software development is infinitely variable and any code can be improved. If a developer takes 3 days to finish the task, they’ll spend the remaining time tweaking it or doing other activities. Unfortunately, this results in a situation where estimates become the minimum number of development days. The actual delivery time can only get worse. 6. More developers != quicker development A 100-day project will not be completed in 1 day by 100 developers. More people results in an exponential increase in complexity. See Why Larger Teams Do Not Result in Faster Development… 7. The project scope changes This is perhaps the most irritating problem for a developer. A feature is changed or added because customer X has requested it or the CEO thinks it’s a cool thing to do. Is the impact of that new feature documented?… 8. Estimates are fixed Estimates should be continually assessed and updated as the system development progresses. Programmers often believe they can make up lost time — it rarely happens. 9. Testing time is forgotten It’s impossible for a developer to adequately test their own code. They know how it should work, so they consciously or sub-consciously test in a specific way. In general, you can expect to spend another 50% of the development time on testing and debugging. 10. Estimates are taken too literally Non-programmers rarely appreciate the complexity of software development yet few businesses plan for schedule slippages. The project often sits at the bottom of a huge unstable tower of other activities, such as literature printing, marketing, distribution, etc. Development hold-ups can cause a costly chain reaction of delays. Unfortunately, it becomes easy to blame the programmer at the bottom of the pile. That’s doesn’t bode well for future projects — the programmer will either refuse to provide estimates or inflate them dramatically. Have you encountered other reasons why project estimates fail?

Frequently Asked Questions (FAQs) on Software Project Estimates

Why is it difficult to provide accurate software project estimates?

Providing accurate software project estimates is challenging due to several factors. Firstly, software development is a complex process that involves numerous variables, including the scope of the project, the skills and experience of the team, and the technology used. Secondly, unforeseen issues can arise during the development process, such as technical difficulties or changes in project requirements, which can significantly impact the timeline and cost of the project. Lastly, there’s a human factor involved in estimation. People tend to be overly optimistic about their abilities and underestimate the time and effort required to complete tasks.

How can I improve the accuracy of my software project estimates?

Improving the accuracy of software project estimates requires a combination of experience, data, and effective project management techniques. One approach is to use historical data from past projects to inform your estimates. This can provide a baseline for how long similar tasks have taken in the past. Additionally, using a structured estimation technique, such as function point analysis or the use case point method, can help to standardize the estimation process and reduce the impact of individual biases. Regularly reviewing and updating your estimates as the project progresses can also help to improve accuracy.

What are some common pitfalls to avoid when estimating software projects?

Some common pitfalls to avoid when estimating software projects include underestimating the complexity of the project, failing to account for unexpected issues or delays, and not considering the skills and experience of the team. It’s also important to avoid the trap of providing overly optimistic estimates in order to win business or please stakeholders. This can lead to unrealistic expectations and project failure.

How can I manage stakeholder expectations around software project estimates?

Managing stakeholder expectations around software project estimates is crucial. One approach is to provide a range of estimates, from best-case to worst-case scenarios, rather than a single fixed number. This can help to set realistic expectations and prepare stakeholders for potential delays or cost overruns. Regular communication and transparency about the progress of the project and any issues that arise can also help to manage expectations and build trust.

What role does project management play in software project estimates?

Project management plays a crucial role in software project estimates. A project manager is responsible for overseeing the estimation process, ensuring that it is carried out systematically and objectively. They also play a key role in managing stakeholder expectations, communicating progress, and making adjustments to the project plan as necessary. Effective project management can significantly improve the accuracy of software project estimates and the likelihood of project success.

How can I account for unforeseen issues in my software project estimates?

Unforeseen issues are a common challenge in software development. One way to account for them in your project estimates is to include a contingency buffer in your timeline and budget. This can provide some flexibility to deal with unexpected issues or delays. Regularly reviewing and updating your estimates as the project progresses can also help to account for unforeseen issues.

How does the complexity of a software project impact the accuracy of estimates?

The complexity of a software project can significantly impact the accuracy of estimates. More complex projects involve more variables, making it harder to predict how long tasks will take or how much they will cost. Additionally, complex projects are more likely to encounter unforeseen issues or changes in scope, which can further impact the accuracy of estimates. Using a structured estimation technique and regularly reviewing and updating your estimates can help to manage this complexity.

How can I use historical data to improve my software project estimates?

Historical data from past projects can be a valuable resource for improving your software project estimates. This data can provide a baseline for how long similar tasks have taken in the past, helping to inform your estimates. It’s important to ensure that this data is accurate and relevant, and to consider any differences between past projects and the current one. Regularly collecting and analyzing this data can help to continually improve the accuracy of your estimates.

What are some effective techniques for estimating software projects?

There are several effective techniques for estimating software projects. These include function point analysis, which measures the functionality of the software to estimate effort and cost; the use case point method, which estimates effort based on use cases; and the Delphi method, which uses expert consensus to estimate effort. Choosing the right technique depends on the nature of the project, the available data, and the skills and experience of the team.

How can I ensure that my software project estimates are realistic and achievable?

Ensuring that your software project estimates are realistic and achievable requires a combination of experience, data, and effective project management. Using historical data and structured estimation techniques can help to provide a realistic baseline for your estimates. Regularly reviewing and updating your estimates as the project progresses can help to keep them aligned with reality. Finally, managing stakeholder expectations and communicating openly about the progress of the project can help to ensure that your estimates are achievable.

Craig BucklerCraig Buckler
View Author

Craig is a freelance UK web consultant who built his first page for IE2.0 in 1995. Since that time he's been advocating standards, accessibility, and best-practice HTML5 techniques. He's created enterprise specifications, websites and online applications for companies and organisations including the UK Parliament, the European Parliament, the Department of Energy & Climate Change, Microsoft, and more. He's written more than 1,000 articles for SitePoint and you can find him @craigbuckler.

Share this article
Read Next
Get the freshest news and resources for developers, designers and digital creators in your inbox each week
Loading form