If we know the game is rigged, why do we still play it?
Because both the ‘players’—the business and the engineers—still get something out of it despite losing.
Any engineer knows that for anything more than the most trivial change (and sometimes, even then), there is a lot we don’t know that could trip us up. Sure, there are the known knowns and even the known unknowns, but how do you account for the unknown unknowns?
The most reliable piece of advice I’ve ever been given around estimations as an engineer is to take your absolute, most reasonable guess at how long something would take, then triple it.
It always feels ridiculous.
“There’s no way it’s ever going to take that long. It’s just one small component and a config change.”
It always ends up being about right.
But tell the business this? Triple your best guess because… you say so?
No way. Get it done in the 2 weeks you said you think it would take, we’re not giving you 6.
6 weeks later, they’ve got their feature.
This isn’t to slam on the PMs and business execs approaching it this way. The’ve got timelines to balance, resources to allocate, budgets and marketing campaigns to get approved. They need to know when the thing will be done. The problem is, that is largely unknowable.
Hence the word ‘estimations’. Perhaps ‘guesses’ would be more accurate. But whatever we call them, there’s rarely anything very accurate about them.
But they do provide cover. Look, we performed the ritual! We did our best! Who could’ve known the database migration would need to be so complex / the API response was in such a nonsensical format / the component state was also tied into that unrelated form. We’ll incorporate this into our next round of estimations!
And so the game continues.
So can estimations ever work? And if not, what do we do instead?
A topic for another post, but for now let me leave you with this.
Instead of tripling the time, try cutting the scope by 2/3rds. Get that done in the allotted time. Then go from there.
It might still take 6 weeks. But at least you’ll have something concrete after 2.
Game on.