Software Estimation 🧩
1 March 2024
Panji Gautama
Software Estimation 🧩
1. When does
Estimation
happen
1 1. Software
Estimation
Technique
2
When does Estimation happen
Why do we need Estimation ?
💰
Decision Making
󰤫
Coordination
🌋
Risk Management
When does Estimation happen
Common Estimation Pitfalls
📝
Misaligned
Estimation
Checklist
🫨
Uncertainties
Not
Included
🎯
Estimates
considered
Deadline
When does Estimation happen
Stages of Development
When does Estimation happen
Software Estimation Is Hard. Do It Anyway.
⚖
Hofstadter’s
Law
🔢
Arbitrary
Scoring Systems
🏹
Estimates
is
Skill
Software Estimation 🧩
1. When does
Estimation
happen?
1 1. Software
Estimation
Technique
2
Software Estimation Technique
Story Points
Software Estimation Technique
T-Shirt Size
Software Estimation Technique
Top-Bottom x Bottom-Up
Software Estimation Technique
Estimation as a Skill
1⃣ Break down work into less-complex tasks
2⃣ Estimate uncertainty
3⃣ Do the math to get expected- and worst-case estimates
4⃣ Refine, if needed
5⃣ Track your accuracy, so you can improve over time
Software Estimation Technique
Estimation as a Skill
1⃣ Break down work into less-complex tasks
2⃣ Estimate uncertainty
3⃣ Do the math to get expected- and worst-case estimates
4⃣ Refine, if needed
5⃣ Track your accuracy, so you can improve over time
Software Estimation Technique
1⃣ Break down work into less-complex tasks
● Map complexity to actual time units.
● Use real wall-clock hours and days
○ Don’t assume engineers will write code 8 hours a day.
● Try to capture realistic expected times
○ Don’t be overly optimistic
○ Don’t be overly pessimistic
Complexity Time
small 1 day
medium 3 days
large 1 week (5 days)
extra-large 2 weeks (10 days)
Software Estimation Technique
2⃣ Estimate uncertainty
● Measure uncertainty level
● Identify action items to reduce the uncertainty
Software Estimation Technique
3⃣ Do the math
Task Complexity Uncertainty Expected Worst-case
User Story A small low 1 day 1.1 days
User Story B large moderate 5 days 7.5 days
Refactor XYZ medium extreme 5 days 25 days
RFC medium medium 3 days 4.5 days
Deploy small low 1 days 1.1 days
Total: 15 days 39 days
Software Estimation Technique
4⃣ Refine, if needed
● Timeboxing
● Research
● Spike or PoC
● JFDI
Software Estimation Technique
5⃣ Track your accuracy, so you can improve over time
Task Complexity Uncertainty Expected Worst-case Actual
User Story A small low 1 day 1.1 days 0.5 Days
User Story B large moderate 5 days 7.5 days 8 Days
Refactor XYZ medium extreme 5 days 25 days 20 Days
RFC medium medium 3 days 4.5 days 5 Days
Deploy small low 1 days 1.1 days 0.5 Days
Total: 15 days 39 days 34 Days
thank you
linkedin.com/in/panjigautama

Software Estimation Strategy & Technique

  • 1.
    Software Estimation 🧩 1March 2024 Panji Gautama
  • 2.
    Software Estimation 🧩 1.When does Estimation happen 1 1. Software Estimation Technique 2
  • 3.
    When does Estimationhappen Why do we need Estimation ? 💰 Decision Making 󰤫 Coordination 🌋 Risk Management
  • 4.
    When does Estimationhappen Common Estimation Pitfalls 📝 Misaligned Estimation Checklist 🫨 Uncertainties Not Included 🎯 Estimates considered Deadline
  • 5.
    When does Estimationhappen Stages of Development
  • 6.
    When does Estimationhappen Software Estimation Is Hard. Do It Anyway. ⚖ Hofstadter’s Law 🔢 Arbitrary Scoring Systems 🏹 Estimates is Skill
  • 7.
    Software Estimation 🧩 1.When does Estimation happen? 1 1. Software Estimation Technique 2
  • 8.
  • 9.
  • 10.
  • 11.
    Software Estimation Technique Estimationas a Skill 1⃣ Break down work into less-complex tasks 2⃣ Estimate uncertainty 3⃣ Do the math to get expected- and worst-case estimates 4⃣ Refine, if needed 5⃣ Track your accuracy, so you can improve over time
  • 12.
    Software Estimation Technique Estimationas a Skill 1⃣ Break down work into less-complex tasks 2⃣ Estimate uncertainty 3⃣ Do the math to get expected- and worst-case estimates 4⃣ Refine, if needed 5⃣ Track your accuracy, so you can improve over time
  • 13.
    Software Estimation Technique 1⃣Break down work into less-complex tasks ● Map complexity to actual time units. ● Use real wall-clock hours and days ○ Don’t assume engineers will write code 8 hours a day. ● Try to capture realistic expected times ○ Don’t be overly optimistic ○ Don’t be overly pessimistic Complexity Time small 1 day medium 3 days large 1 week (5 days) extra-large 2 weeks (10 days)
  • 14.
    Software Estimation Technique 2⃣Estimate uncertainty ● Measure uncertainty level ● Identify action items to reduce the uncertainty
  • 15.
    Software Estimation Technique 3⃣Do the math Task Complexity Uncertainty Expected Worst-case User Story A small low 1 day 1.1 days User Story B large moderate 5 days 7.5 days Refactor XYZ medium extreme 5 days 25 days RFC medium medium 3 days 4.5 days Deploy small low 1 days 1.1 days Total: 15 days 39 days
  • 16.
    Software Estimation Technique 4⃣Refine, if needed ● Timeboxing ● Research ● Spike or PoC ● JFDI
  • 17.
    Software Estimation Technique 5⃣Track your accuracy, so you can improve over time Task Complexity Uncertainty Expected Worst-case Actual User Story A small low 1 day 1.1 days 0.5 Days User Story B large moderate 5 days 7.5 days 8 Days Refactor XYZ medium extreme 5 days 25 days 20 Days RFC medium medium 3 days 4.5 days 5 Days Deploy small low 1 days 1.1 days 0.5 Days Total: 15 days 39 days 34 Days
  • 18.