Stop rolling the dice: an approach to effort estimation in software development by Luca Camerini

Learn an approach to effort estimation in software development that takes into account team velocity, resources, and requirements, and discover how to avoid common mistakes and improve estimation accuracy.

Key takeaways
  • Effort estimation is complex and influenced by various factors, including the team’s velocity, resources, and requirements.
  • Effort estimation should be treated as a decision-making process, not just a predictive exercise.
  • Amdahl’s Law can be used to model the impact of parallelization on effort estimation.
  • A linear approach to effort estimation is insufficient and can lead to poor estimates.
  • Consider the non-linearity between resources and velocity when estimating effort.
  • Break down activities into smaller chunks to facilitate estimation.
  • Know your team’s skills and capabilities to estimate effort accurately.
  • Stakeholder mappings and communication are crucial for effective effort estimation.
  • Effort estimation is not just about coding activities, but also about interactions and management.
  • A perfect estimate is impossible, but a decision-making process can help improve estimation.
  • Common mistakes to avoid in effort estimation include not considering team velocity, resources, and requirements.
  • Parallelization can improve effort estimation, but consider the associated costs.
  • A decision-making process can help identify and mitigate estimation risks.
  • Effort estimation should be a continuous process, with retrospectives and post-mortem analyses.
  • The author’s approach uses a tool to estimate effort based on individual man-days and velocity.
  • Effort estimation is not just about the cost of development, but also about the value of the features being developed.
  • The author challenges the idea that time is not value and advocates for a more conscious approach to estimation.
  • The author’s approach considers the complexity of the project and the team’s velocity when estimating effort.