Book a Consultation

Navigating Estimation Bias Across Software Development

img

By Dan Galorath, Founder and CEO, Galorath Incorporated
 
In today’s software development landscape of ever-changing requirements and uncertainties, it can be difficult to manage projects, ensure each initiative is rooted in data-driven insights, and stay on track for success. However, it doesn’t have to be a time-consuming and demanding process.
 
Estimating future costs for software projects and programs is a crucial aspect of any company’s operations and helps determine the time, resources, and deliverables required to complete a project. While it can seem challenging during the early stages of a project life cycle, developing an estimate makes it easier for software developers and cost engineers to ensure projects are on time, within budget, and of the highest quality.

Estimating Methods

There are several estimation methods commonly used, including analogies, expert judgment, agile velocity, and comprehensive parametric estimating:
 
Analogies compare similar past projects to create an estimate for the current project.
Expert judgment relies on a specialist’s knowledge and skills to estimate project details.
Agile velocity is a metric used in Agile project management methodologies, such as Scrum, to measure the work a team can complete within a given time frame.
Parametric estimating uses design parameters, mathematical algorithms, and statistics to calculate the cost, time, and resources required for a project.
 
While each method has its advantages, they can all be affected by bias and inherent errors in thinking, impacting the reliability and accuracy of estimates.

Bias in Estimation and Planning

There is an old saying: “The first 90% of the software takes the first 90% of the time. And the other 10 % takes the other 90% of the time.”  Sometimes, this is due to a lack of understanding of the scope. Optimism bias often causes this issue—I know I can do it. Other times, anchoring is the issue—The boss said it had to be completed in a year, so we will estimate a year.
 
Bias reflects a tendency to make decisions rooted in thoughts, varying perceptions, and emotions instead of factual evidence. While biases can serve as a helpful starting point to lay the groundwork for making choices, it is essential to recognize that bias affects everything we do and can potentially lead to errors, misjudgments, and skewed data. For example, plans that rely on assumptions about average conditions can often fail. Averages representing an uncertain factor can distort outcomes, as this approach doesn’t consider the impact of inevitable variations. Confirmation bias is the tendency to seek, interpret, and favor information that confirms existing beliefs and expectations, which can cause people to overlook errors and inconsistencies in estimates.

How to Mitigate Bias

Of course, there is always uncertainty in software development: some from uncertainty, often some from technical issues, and more from “scope creep,” the customer’s growing expectations. A thorough estimation process can help software cost estimation professionals eliminate judgment errors from bias, including looking at past measurement results, traditional forecasting, risk analysis, uncertainty analysis, and statistical parametric modeling. These approaches can help provide traceability, repeatability, best practices, and an analytical mindset essential to mitigating bias and achieving visibility into every software project parameter.
 
By utilizing project estimation techniques, businesses can construct a range estimate that aligns the three primary constraints of the project management triangle: resources, scope, and schedule. Effective businesses must balance and adjust these three elements in every project accordingly to achieve success. In addition, it’s essential to align the estimation process with the software development process, as it provides a roadmap for project planning, resource allocation, risk management, and decision-making.
 
The following are ten steps rooted in best practices to help the C-suite understand the realities of software development and help software project managers effectively plan for deadlines, budgets, resources, and software metrics for traditional and agile projects and the possible cost/schedule uncertainty associated with them. 

  • Establish Estimate Scope and Purpose: Define and document estimate expectations, which will set the stage for the entire project, providing a baseline against which to measure the impact of future changes.
  • Establish Technical Baseline, Ground Rules, and Assumptions: To lay a solid foundation for your estimate, establish the software’s technical requirements, which include what the software is expected to provide, the performance it must meet, and the constraints it must operate within. Identify the ground rules to ensure the process is consistent, transparent, and fair, including methods, data sources, and risk management procedures. Make initial assumptions, including the complexity of the software, the schedule of the development team, and the availability of resources, and review these regularly to ensure they remain valid. For Agile, attempt to identify the minimum viable product and enhance it.
  • Collect Data: Determine the relevant data for your project, including details on trends, costs, resources, industry databases, or historical data from past projects. After the sources are identified, carefully collect, organize, and document the data, as the quality of the information directly impacts the estimate’s accuracy.
  • Software Sizing: This process involves quantifying the amount of functionality the software will provide, which can be measured using lines of code, function points, use cases, story points, and more. Determining the size of the software being developed is a critical factor in estimating the project’s cost, effort, and duration. A complete sizing analysis should also include the size of any pre-existing software that will be modified and integrated into the new system.
  • Prepare the Baseline Estimate: After inputting data and notes for each parameter, create a baseline estimate incorporating project schedules, scope, and resources.
  • Quantify Risks and Risk Analysis: Understand and anticipate project risks and potential issues and include them in planning decisions.
  • Estimate Validation and Review: For larger systems, even the most reasonable estimates need validation, which, in turn, provides confidence that the data and methods used are effective and results accurate. Create a checklist of action items to review the estimate for parameters like staffing, risk, and cost.
  • Prepare a project plan based on the estimate: Generate a thorough project plan based on the estimate and any risks involved, which will help guide the project expectations, stages, schedules, deliverables, and metrics. For agile projects, identify the probable number of sprints, epics, etc.
  • Document the estimate and the lessons learned: Ensure all documentation is complete, including any exceptional circumstances or if there are multiple versions of an estimate.
  • Track the project throughout the development: It is essential to update the estimate through each stage, ensuring it remains valuable throughout the project’s lifecycle. Additionally, advanced estimation technology can help businesses seamlessly adapt to evolving project requirements, providing accurate and actionable estimates.

Key Takeaways

People providing estimates can bundle inherent biases with meticulous care and in-depth analysis, even with expert judgment. Ignoring bias can impact projects, leading to missed deadlines, budget overruns, and failure to deliver. While some bias is inevitable, establishing a thorough estimating process can be valuable for successful software development, enabling businesses to mitigate bias, streamline operations, and improve decision-making.

About the Author

Dan Galorath, Founder and CEO, Galorath Incorporated
Dan Galorath brings over four decades of engineering, software, estimating, and analysis experience and consulting services to industry and government sectors. Dan is the founder and CEO of Galorath, the premier provider of cost, scheduling, and should-cost estimation solutions and consulting services. Focused on turning software from an art into an engineering discipline to total acquisition, he is an accomplished author, writing widely on estimation, planning, measurement, control, and risk analysis, including the book “Software Sizing, Estimation, and Risk Management: When Performance Is Measured Performance Improves” (Auerbach Publications 2006). Dan has received lifetime achievement awards from SCEA and ISPA.

Author Image
Dan Galorath Dan Galorath is a software developer, businessman, author, and founder and CEO of Galorath.

Every project is a journey, and with Galorath by your side, it’s a journey towards assured success. Our expertise becomes your asset, our insights your guiding light. Let’s collaborate to turn your project visions into remarkable realities.

BOOK A CONSULTATION