Cost estimation is absolutely essential for ensuring a successful, on- or under- budget software development project.
In this article, we provide an overview of common mistakes that can derail the cost estimation process.
Before we dive into those mistakes, it’s important to emphasize why cost estimation is so imperative to successful software project management.
Why Cost Estimation Is Essential in Project Management
- A detailed estimation process helps de-risk development by identifying outlier cost drivers during the planning phase. Back-of-the envelope comparisons to past projects risk missing the sort of unique project requirements that risk driving cost overruns.
- A thorough estimation process provides an actionable foundation for subsequent development. The estimation process should generate a detailed accounting of timelines and deliverables which can be directly translated directly into a project roadmap.
- Tying a development effort to concrete, deliverable-driven cost estimate helps fight scope creep and keep workflows aligned to available resources.
- Estimation is inherently full of uncertainty. But by identifying “known unknowns” during the estimation process, budgets can be planned with the flexibility to support different future development scenarios.
1. No Cross-review of Task Requirements
Cross-review of key project requirements is a good starting point for developing time and cost estimates.
When you have a team that takes care of, say, mobile app development, it usually consists of developers who are working with different platforms.
This means that the quality of their cooperation is one of the key factors in your project’s success. If the backend developer has no idea what the iOS developer needs or vice versa, it can easily lead to an unpleasant situation.
For example, consider a situation in which the backend developer did their work, but it suddenly turns out that the iOS developer needs something else to do their part of the job. Due to a lack of information, we have received false estimations. Now, the task needs to go on a new “To Do — In Progress — Done” cycle and precious time is lost.
To avoid this mistake, it’s crucial to make sure that all team members are on the same page. Have them do a cross-review of the technical requirements.
2. No Time for Research
A key for developing better project cost estimates is to formalize evaluation and research time.
It’s no secret that estimating can be pretty tough, especially if the task is entirely new to its assignees and they have never done it before.
In this case, a project manager or Scrum Master usually has two options: Request the estimation right away — which will undoubtedly be based on a pure guess — or set a timebox for investigation.
Doing the proper research will reduce the risk of false estimates, and may even affect your understanding of whether you should do the task. It may turn out that it is better to update the project’s priorities in accordance with the task’s value from the business’ point of view relative to the resources (i.e., the time and effort required from the team) needed to complete the task.
For example, research may help the team understand that the business value of developing a certain feature is simply insufficient to justify the team spending so much time on it.
3. No Priorities Assigned
Robust prioritization keeps workflows tied to ultimate business value.
Product development is always about managing time and scope. If you do not assign priorities after the task is decomposed, the team — which is in this case doing tasks one by one — may waste time on something less important that could be done later, instead of focusing on the most significant tasks.
Also, if the task scope is ambiguous and you have a limited time frame before release, priorities play the role of a helping hand when you have to decide what can be kept for later.
The prioritizing mentioned above goes hand in hand with the need to decompose large stories down into smaller ones. This video breaks down these concepts and explains how to make it happen:
4. No Decomposition of Features and Stories
Decomposition helps ensure estimation results in an actionable development plan.
Decomposing — the process of subdividing tasks into smaller, more manageable components — often seems like something that may just slow you down on your way to providing the estimations needed.
But decomposing is essential for precisely specifying requirements, concretely breaking down tasks, and clarifying risks. And a detailed decomposition effort will leave developers with a clear roadmap for eventual development.
5. Estimating in a Vacuum
In developing time and cost estimates, project managers must consider specific business-driven targets, timelines, and end-goals.
Daily estimations make assumptions about the assignee’s expertise, experience, and understanding of possible risks. Still, proper estimating cannot be done in vacuum.
The team should always be made aware of important business targets (e.g., attending an expo with an MVP for a demo by a certain date). This knowledge allows you and the engineers you are working with to plan towards these targets effectively, staying ahead of the game.
6. Treating Estimates as Final Values
False certainty won’t help generate a cost estimate that’s tied to operational reality.
Even when all of the above is said and done, there is one more important thing to be mentioned…
Estimations are always provided based on assumptions — yours or your colleagues’ — and treating them as final, super-reliable values may not lead to the best results.
After all, it is well known that project management is a realm of high uncertainty (as evidenced by the classic software “Cone of Uncertainty” problem, which describes how the amount of uncertainty changes throughout a project). Accordingly, this is a consideration that you should always keep in mind, staying ready to adapt as needed.