SV

10-Software estimation

  • Key Software Metrics:

    • Size is fundamental for software estimation including:
    • Schedule (duration)
    • Effort (cost)
    • Quality (defects)
    • Productivity
    • Size (scope)
  • Estimation Challenges:

    • Estimating code size is complex; requires progressive elaboration.
    • Two types of sizes to estimate:
    • Functional size (user-focused)
    • Technical size (developer-focused)
  • Common Sizing Methods:

    • T-shirt sizing (order of magnitude)
    • Functional size (normalized to Function Points)
    • Technical size (normalized to Implementation Units)
  • Cost Estimation:

    • Personnel cost is the major factor in software development.
    • Software size significantly dictates development staff costs.
    • Staff-months are used for estimating effort; 100 staff-months means neither one developer working 100 months nor 100 developers working one month.
  • Agile Estimation Techniques:

    • Experience-based techniques: Based on past project data.
    • Algorithmic cost modeling: Mathematical function using attributes of product, project, and process.
  • COCOMO Models:

    • Variants including Application Composition, Early Design, Reuse, and Post-architecture models help estimate effort based on varying project stages.
  • Use Case Points (UCP):

    • UCP = (Weighted Actor Count + Weighted Use Case Count) * Technical Complexity Factor * Environmental Complexity Factor
    • Factors influencing UCP include unique actors, use cases, and productivity.
  • Brooks’ Law and Communication:

    • Additional staff on a late project increases delays due to training bottlenecks. Communication overhead increases complexity.
  • Effort and Calendar Time Estimation:

    • COCOMO II provides formulas to convert effort (staff months) to calendar months.
    • TDEV = 3 × Effort^(1/3) is a representative formula.
  • Caveats in Estimation:

    • Accurate estimates hinge on experience, and UCP can be inflated without organization-specific adjustments.
  • Final Considerations:

    • Understand the distinction between development cost and pricing, which is influenced by various external factors.