Software Estimation in Unstable, Undefined, and Uncertain Business Processes

Research consistently shows that a majority of software projects fail to meet their original budget, timeline, or scope, with poor estimation as a leading cause. In ambiguous environments, several factors exacerbate this challenge:

  • Evolving or Unclear Requirements: Stakeholders may not fully understand their needs, or business priorities may shift rapidly.
  • Lack of Historical Data: Early-stage or innovative projects lack comparable past efforts to inform estimates.
  • Complex Dependencies: Integration with legacy systems, third-party APIs, or external vendors introduces unknowns.
  • Resource and Skill Uncertainty: Team composition, availability, and expertise may change during the project.
  • External Risks: Regulatory changes, market shifts, or technology disruptions can alter the project landscape.

These factors create a "cone of uncertainty," where early estimates can be off by a factor of four or more in either direction

 

 

Some principles that we need to understand

  • Estimation Is Not Commitment. A critical distinction must be made between an estimate (a forecast based on current knowledge), a target (a business goal), and a commitment (a promise to deliver by a certain date or cost). Treating estimates as commitments leads to unrealistic expectations and erodes trust. Instead, estimates should be presented as ranges with associated confidence levels, and commitments should only be made when sufficient information is available.
  • Embrace Ranges and Probabilities Single-point estimates create a false sense of certainty. Instead, use range estimates (e.g., "4–7 weeks") and express the probability or confidence associated with each range (e.g., "We are 70% confident in this range"). This approach acknowledges uncertainty and enables informed decision-making.
  • Document and Track Assumptions. Every estimate is built on assumptions—about requirements, resources, dependencies, and external factors. These must be explicitly documented, tracked, and revisited as the project evolves. An assumption log is a vital tool for this purpose.
  • Continuous Re-estimation and Adaptation. Estimation is not a one-time event. As requirements clarify and the project progresses, estimates must be revisited and refined. This continuous re-estimation (or "re-forecasting") is a hallmark of agile and adaptive project management.
  • Foster Open Communication and Collaboration. Estimation is a team sport. Involve engineers, business analysts, subject matter experts (SMEs), and stakeholders in the process. Openly communicate uncertainties, risks, and changes to maintain alignment and trust.
Here are the steps 
  • Step 1: Stakeholder Engagement and Expectation Setting
  • Step 2: Rapid Requirement Discovery and Scoping
  • Step 3: Decomposition—Breaking Down Fuzzy Features
  • Step 4: Selecting and Applying Estimation Techniques
  • Step 5: Identifying, Documenting, and Tracking Assumptions
  • Step 6: Quantifying and Communicating Risk and Confidence
  • Step 7: Commercial Models and Contracts for Uncertain Scope
  • Step 8: Tools, Templates, and Artifacts
  • Step 9: Tracking, Reforecasting, and Continuous Re-estimation

Estimating software projects in the face of unstable, undefined, and uncertain business processes is inherently challenging—but not insurmountable. By adopting a mindset that embraces uncertainty, leveraging structured frameworks and collaborative techniques, and maintaining transparency through robust documentation and communication, teams can produce estimates that are both credible and adaptable.

Key takeaways include:

  • Estimation is a forecast, not a commitment. Use ranges and confidence levels to express uncertainty.
  • Document and track assumptions. Use assumption logs and change logs to maintain transparency and adaptability.
  • Decompose requirements and use appropriate estimation techniques. Tailor methods to the context and available data.
  • Communicate openly with stakeholders. Set expectations, share risks, and update estimates as new information emerges.
  • Continuously re-estimate and improve. Treat estimation as an iterative, collaborative process.
the big question is, how to create proposal and investment fund so that we dont suffer for lack of budget!

Add comment

  Country flag

biuquote
  • Comment
  • Preview
Loading

Topics Highlights

About @ridife

This blog will be dedicated to integrate a knowledge between academic and industry need in the Software Engineering, DevOps, Cloud Computing and Microsoft 365 platform. Enjoy this blog and let's get in touch in any social media.

Month List

Visitor