Summary by TwinMind · 12m 12s
Summary by TwinMind · 12m 12s
A better way to estimate
A better way to estimate
Theo - t3․gg
Theo - t3․gg
Problems with Traditional Estimation
- Estimations extremely difficult - never worked on team good at them
- Most teams terrible/okay at estimations at best
- Traditional point systems often frustrate when tasks don't complete on time
- Ping doesn't currently use points due to difficulty making valuable system
Goals of Estimation Systems
- Identify who should do task
- Identify when task should be done
- Identify how long task will take
- Prioritize based on above factors
- Identify low performers/underutilized team members
Key Insight: Time Estimation Failure
- "How long it will take" fundamentally unreliable
- Could be accurate sometimes but not consistently
- Common trap: assuming point value = guaranteed completion time
- This assumption is fundamentally wrong
Proposed New Estimation Framework
Three-Dimensional Scoring (1-10 scale each):
Complexity (or Specialization)
- How hard/specialized is the task
- How skilled should person doing it be
- Example: WebRTC task at Ping = 10/10 complexity (specialized knowledge required)
Effort (formerly Time)
- How long should task be worked on
- Not mapped to specific time units
- 1/10 = quick one-line fix, 10/10 = extended work period
- Will almost always be wrong but provides relative indication
Risk (Confidence)
- Chances that complexity/effort estimates are wrong
- Missing component in most estimation systems
- Critical for indicating estimate reliability
Real Example: Voice Levels in Pre-call View
Initial Estimates:
- Complexity: 3-4/10 (seemed simple, reuse existing code)
- Effort: 2/10 (quick implementation)
- Risk: 6/10 (third-party dependencies, device interaction)
Actual Results:
- Agora SDK doesn't provide reliable voice indication outside calls
- Risk estimate proved accurate
- Complexity became 6-7/10, Effort became 4-5/10
- High risk score correctly predicted estimate inaccuracy
Value of Multi-Dimensional Approach
Task Assignment Benefits:
- Easier identification of right person for task
- Clear reasoning for assignment decisions
- Better employee development planning
Junior Developer Growth Strategy:
- Start with: low complexity, high effort tasks
- Progress to: medium effort, high complexity tasks
- Consistently impressive results when shifting focus from effort to complexity
- Reveals unexpected developer capabilities
Key Problem with Traditional Systems
- Conflate complexity and effort into single metric
- Ignore risk entirely
- Pretend complexity = effort (fundamentally different concepts)
Handling Unknowns and Research
Separate Research Tasks:
- When complexity/risk unclear, create research task first
- Example: "Identify how to get voice levels from third-party SDK"
- Complexity: 2/10 (read docs)
- Effort: 2/10 (research task)
- Risk: 4/10 (moderate uncertainty)
- Research tasks mitigate risk for subsequent implementation
- If struggling to categorize complexity vs risk = need research task
Current Implementation Status
Ping's Current Approach:
- Team of 5 developers + 1 non-developer
- Using gut feel due to small team size
- All tracking in Linear
- Good intuitive sense of task assignment and timing
- Thinks in proposed framework but doesn't formally measure yet
Future Plans:
- Will implement formal system when team scales
- Proposal for future estimation methodology
- Moving away from T-shirt sizes and Fibonacci sequences
- Focus on: what's hard + who has skills, what's long + who has time, what's risky + how wrong are estimates
Implementation Philosophy
- Estimation system should expect to be wrong
- Less guarantee, more indicator for task assignment
- Separate unknowns identification as distinct task type
- Build system that adds value rather than frustration
