Remember the days when people were proclaiming that Scrum can cure cancer? Not as a joke but, like, seriously? Ah, those were the days š¤¦āāļø
Of course, that was all a bunch of… trying to sound professional here… nonsense. Yes, it helps if teams of all disciplines can organize their work efficiently. But, I’m sure you’ll be surprised to hear, their work organization before scrum wasn’t exactly a pile of papers thrown around randomly.
After the initial years of agile and scrum hype, the inevitable realization kicked in. That’s not to say scrum isn’t a useful way of organizing work; it definitely is. But parts of it were brought to reality. And a big one was story points.

People came to hate them so very, very much. You can read headlines like “Story Points Are Dead“, “5 Reasons Why Your Story Points Arenāt Working” and so on.
And for good reason. People feel so strongly against them because they are hard to estimate. I’ve been in exhausting hours-and-hours-long meetings trying to get them right. Plus, do they really work? If youāve spent more than fifteen minutes in a Scrum environment, youāve heard the “Classical Scrum” lecture: āStory points measure complexity, not time!ā Itās a beautiful, noble sentiment. Itās also, quite frankly, a load of… trying to sound professional here… nonsense.
The Great Divide
On one side, you have the Dev team, trying to explain that a “3” is like a medium-sized cat: “itās not about how long it takes to wash the cat, itās about how many claws the cat has“.
On the other side, you have literally everyone elseāStakeholders, Project Managers, and probably their puppiesāwho only want to know one thing: āWhen is this going to be finished?ā
You can explain Fibonacci sequences until youāre blue in the face, but the business runs on calendars, not abstract integers. We techies need to answer the “when” question without losing our souls -or our weekends.
So, I stopped fighting human nature. Instead, I started using a mind trick.
The Trick: “Days” That Arenāt Days (But Are) (Well, kind of) (But not really) (Eh, sort of)
Here is the system I use to bridge the gap between devs and, for a lack of better term, the real world.
I tell my team we are estimating effort in sizes: Small, Medium, and Large. Butāand hereās the trickāI tell them to estimate those sizes using “Days of Effort.”
For a 3-week sprint (15 working days), I only allow three choices:
- Small: 2 “Days”
- Medium: 5 “Days”
- Large: 15 “Days”
Wait, a 15-day story in a 15-day sprint? Yes. Because we all know that “Large” actually means “This is the only thing I am doing, and Iāll probably still be screaming at my IDE on Friday afternoon.”
The “Phase 2” Maneuver (Handling the Unfinished)
Sprints are messy. When the clock runs out, i.e. on the last day of the sprint, and items aren’t done, we donāt just “carry them over” and pretend nothing happened. We follow two rules:
- The “Zero Progress” Rule: If no work was done during the sprint, the item moves to the next sprint as-is.
- The “Downgrade” Rule: If some work was done, we downgrade the effort by one grade (15 becomes 5, 5 becomes 2, 2 stays 2) and set it to “Done”. We then create a “Phase 2” copy of the ticket for the next sprint with the effort that we estimate is remaining -can be anything from Small to Large. If the item (usually a PBI) has unfinished tasks, we change their parent to the new PBI and move them to the next sprint as well.
Note: we only estimate PBIs, not Tasks. In our board, Tasks are welcome and encouraged, but not mandatory.
At the end of the sprint, we look at what was actually finished. We take the average of the last three sprints, and that is our Velocity. If our average is 90 “effort-days”, we donāt commit to 150. We arenāt heroes; weāre mathematicians (well, the good kind).
Why Does This Work? (The Science of Being Wrong)
To be clear, Iām not lying to anyone. I tell my team, the stakeholders, and their puppies (yes I actually tried once; the puppy seemed to nod in agreement though she may have thought I’ll give her a treat and was promptly disappointed) exactly how this works. And yet, it still works. Why?
Because developers are notoriously terrible at estimation, butāand this is keyāwe are consistently terrible.
Think of it as the Mindset Coefficient μ.
When a developer estimates the effort E required to complete a piece of work, the real effort R can be calculated by:
The value of μ depends on the specific people in the room. As long as the team remains the same, μ stays remarkably constant. They might think theyāre estimating “days,” but theyāre actually providing a consistent unit of “their own personal version of time.”
By using the downgraded “Phase 2” tickets and the 3-sprint average, we are effectively solving for μ using real-world data. We aren’t trying to force developers to be “correct”; we are calibrating our planning to account for their specific brand of optimism. The famous developer’s optimism is the reason why μ is always always always >1.
An Example
Let’s say we start the sprint with 4 PBIs:
- PBI S1 and S2 are estimated at 2 “days”.
- PBI L3 is estimated at 15 “days”.
- PBI M4 is estimated at 5 “days”.
- In the middle of the sprint, as it often happens, there’s an urgent issue. So we add a PBI M5 which we estimate at 5 “days”.
At the end of the sprint, we’ve finished S1, M4 and M5. So we set them to done (obviously this can be done earlier, doesn’t have to be on the last day).
For S2, we set it to Done. It’s at 2 “days” so this stays the same. We then create a copy “S2 – Phase 2” which we estimate at 2 “days” for the remaining work and assign it to the next sprint.
For L3, we set it to Done. It’s at 15 “days” so we change it to 5 (downgrade by one grade, remember?). Note that the change, in Azure Devops at least, has to be made before setting it to Done. We then create a copy “L3 – Phase 2” which we estimate at 5 “days” for the remaining work and assign it to the next sprint.
So what’s our velocity? For this sprint it’s:
- Finished S1, M4 and M5 = 2 + 5 + 5 = 12 “days”.
- Unfinished S2 and L3 = 2 + 5 = 7 “days”.
- Total 19 “days” of effort.
Of course that’s for a single sprint; we need to average over the last 3, but even if it’s the first sprint of the team, it’s still a useful indicator.
The Result
The team stops sweating the “Complexity vs. Time” debate. Estimation becomes an easy exercise because the options are both relatable and limited. The business gets a velocity they can actually use to project a release date.
Itās a Jedi mind trick because even though everyone knows the “days” aren’t literal, their brains start treating them that way. They think in days, we plan in days, and the “Mindset Coefficient” handles the translation to reality.
Want more “honestly-it-works” advice? Check out my previous post on How to store secrets the right way. Because your API keys shouldn’t be as public as your estimation errors š


