"If you guess how many USB sticks are in the jar you win an iPad" they said with a smile that had been seared into their face from years of standing at conference popup stands selling the same message.
I glance over at the sacred prize. For randomly picking a number out of thin air I could easily walk away with a brand spanking new...
"Wait", I say noticing something is odd about the prize. "Is that, an original iPad?".
"Well its not a knock off it that's what you mean"
"No no I mean is it an original version, an iPad one?"
"Oh, yep it is"
"And that's what you win?"
"Of course"
"Why are you giving away an ancient iPad?"
"Well no one has ever actually won so we haven't felt the need to replace it"
"Why has no one ever won?"
"Well no one has ever guessed the exact amount of 1GB USB sticks in this jar"
"So you need to be exact, not just be 'the closest'?"
"Of course, now listen buddy, are you just going to question me about the prize or are you going to listen while I talk to you about our latest release of Super Pro Manager 4.0 - Agile Enterprise Edition."
I walk off, its not even worth the effort. I'd either need a the historical data of guesses or a chance to take each stick out and count them individually. Even then the prize at the end of it is completely out of line with what I'd expected in the first place - a new iPad.
The Cold Hard Truth
The story above sounds incredibly silly yet we as an industry still do this on a daily basis.
I'm still hearing, to this day, stories of people treating estimates as targets. I'm hearing them from the enterprise companies that will never change and I'm hearing them from the companies that grace our stages at conferences and talk about how they are "enabling agile teams to deliver value by running lean with a shared responsibility".
The reality is many teams are forced into this fixed template of Scrum with its overhead of extra ceremony and expected to deliver more without giving up the practices of old. It's crunch time every sprint for the team. Its unsustainable. We see the senior members "rise up" and become "cross team" conduits for best practice and status updates. They have successfully extracted themselves from the daily grind and frustration of the sprint.
It may sound like just another one of those developer frustrations that managers tell us "same as it ever was, back in my day..." ad nauseam - but it's not. When we combine it with the faux-agile, process over people, approach most organisations actually have then we have a serious problem. Seriouser, in fact. The teams that were already shipping software in a healthy manner continue to do that, the ones who changed over the last few years in response to careful agile marketering and brand engagement (through certification and top dollar coaching) have just heaped more pain onto their process.
The iterative and incremental application of big design upfront methodology practices will completely and utterly dehumanise a team. People begin to tell themselves that the flat team, the shared vision, one goal stuff was nonsense anyway, it pays the bills for the houses and flats they never really get to see because of the "Unending Project Death March" being exacted one overladen, overprocess-ised, overtime driven sprint at a time. The team don't get their 3 months head space of building solutions against slipping timelines followed by a few weeks of intense crunching, no, they get a constant slightly less intense crunching all the time, non-stop, forever and ever and ever and ever and ever.
Don't believe me? Trust me this is so widespread, so pandemic, that one musical collective even wrote a song about it - Godspeed You! Black Emperor - The Dead Flag Blues. Of course they had to give it a fictional political lean to avoid getting into trouble at work but at the risk of getting them found out allow me to break their brutally honest piece down a bit.
The car is on fire, and there's no driver at the wheel
And the sewers are all muddied with a thousand lonely suicides
And a dark wind blows
This is every IT project. Ever.
The government is corrupt
And we're on so many drugs
With the radio on and the curtains drawn
The "government", yeah right, more like a cheeky nod to managment and sales. The drugs are Scrum and Agile and we are listening to the things these people say without looking outside our walls following our estimates and hoping it will all be different this time.
We're trapped in the belly of this horrible machine
And the machine is bleeding to death
Public and private money spent on failing systems across every industry and we are all just cogs.
The sun has fallen down
And the billboards are all leering
And the flags are all dead at the top of their poles
The flags are the principles we once felt we stood for - making a difference, changing the world, all dead or dying.
It went like this:
The buildings tumbled in on themselves
Mothers clutching babies
Picked through the rubble
And pulled out their hair
Buildings clearly represents the promises and contracts based on estimates. The fallout of these being wrong are clear.
The skyline was beautiful on fire
All twisted metal stretching upwards
Everything washed in a thin orange haze
At some point you start to accept that this is as good as it gets. You're immune to the mess, in love with the decimation you and your contemporaries have wrought. But its all still broken.
I said, "Kiss me, you're beautiful -
These are truly the last days"
You grabbed my hand
And we fell into it
Like a daydream
Or a fever
You give up, you go with it, you accept that broken is the only thing this can ever be. You allow yourself to believe this, you forget everything you ever cared about.
We woke up one morning and fell a little further down
For sure it's the valley of death
You adopt a new technology, a new platform, you let it consume you, you raise your rates.
I open up my wallet
And it's full of blood
Consultancy.
The End of Everything
It may have seemed like a small thing to enforce estimates as targets but you've just ruined the world a bit more. Your teams write crappy broken software because they hate what they do. They hate what we do because they are forced to work against arbitrary timescales like battery chickens - no light, hemmed in pushing out sub-standard cheap bits of code as often as possible. Quantity over quality, no time for quality, no way no how.
This is the end of everything.