I believe it was the sublime Pink Floyd who once said “Time”.
Ironically, the late, formerly omnipresent TV celebrity chef Keith Floyd said much the same thing – or was that “Thyme”?
Either way, the subject (i.e. “the indefinite continued progress of existence and events in the past, present, and future”, rather than “Thymus Vulgaris of the family Lamiaceae” [thanks Wikipedia]) is one that is never far from our minds here at Siteset.
Specifically, Siteset Digital are an Agile Agency, which means we work in two week ‘sprints’ that require us to deliver small increments of functionality. This enables us to successfully provide our clients with what they need, rather than failing to deliver what our clients thought they wanted six months ago, as happens with the traditional waterfall method of development.
This of course requires detailed planning, not least of all so our clients know what deliverables they can expect to see at the end of the sprint. We achieve this through frequent ‘scoping’ sessions during which all product owners and developers gather around the Rock of Democracy in the forest clearing to the East of Siteset Towers to discuss the proposed workload for the forthcoming sprints. (If it’s an early slot then some of us developers can go straight there from our dwellings in the woods, as soon as we’ve caught and consumed our breakfast).
Part of this process is assessing how long we expect each task to take. Having to assign time values to future tasks is among the most challenging and stressful parts of the life of a developer.
In an attempt to lighten the experience we used to play a game of Poker. The winner would then have the privilege of deciding who gets to do which task and how long they’re given to complete it.
That person was usually Phil.
He’s an ex-professional Poker player.
The rest of us didn’t think that was fair, so we changed the rules.
Now we still play Poker, but with a specially designed deck of planning cards. We each decide three things:
- what we think the general scope of the task is (e.g. small, medium, large)
- whether it’s an individual task or something that would benefit from pairing
- the level of testing complexity
We then declare our opinions by simultaneously revealing our chosen cards so that we don’t influence one another. There typically follows a discussion, after which a consensus is reached and the product owners convert the results into an expected task duration using a top secret formula.
The problem is that despite the combined experience and skills of the participants matching any in the known world, the answer arrived at quite often bears little or no relationship to the time ultimately spent on the job.
Most of us can recognise how tricky making these kinds of estimates can be, even in the simplest of scenarios, but few appreciate that it’s the laws of the universe that make it so difficult – near impossible – to accomplish successfully.
A little over 100 years ago (is it really that long?), a boffin called Albert Einstein first suggested that time doesn’t pass at the same rate for everyone. This is never more apparent than when it comes to developing and delivering state-of-the-art, web-based experiences-of-wonder to the world.
His theory describes, amongst other things, the concept of time dilation, whereby someone moving very quickly will experience time passing more slowly compared to a stationary observer. A quick extrapolation of this concept leads to the conclusion that the faster a developer types their code, the longer the task takes!
Not only does this cause developer fatigue, as we wrestle with the paradoxical implications, but it makes the process of arriving at those estimates during scoping rather challenging since we can’t reliably base our assessment on past experience.
And it gets worse.
Most people have no doubt encountered that feeling of time racing by when they’re ‘having fun’ or conversely, dragging almost to a halt when they’ve been forced to endure a second-by-second account of how Great Aunt Flossy spent her holiday – or almost but not quite as bad, a life story from a drunk stranger at a bus stop.
What may surprise you is that this time-flexiness is a ‘real thing’. It’s a manifestation of the concept of Time Perception as studied in the fields of neuroscience and psychology. In simple terms this describes how no two people experience time in the same way – and even an individual can perceive time at varying paces depending on the circumstance.
Ask any two ordinary people a time related question: How long did something take? When did something happen? You will most likely receive two different answers. Ask any two developers a similar question and the warp effect from Time Perception will be even greater due to the huge amount of specialised knowledge and expertise that they have to carry in their heads.
The truth is that the human brain has to continually summarise, interpret and generalise in order to build a picture of what’s happening at any given time – so much information is discarded that anything we think we are experiencing simply can’t be believed.
Pretty much everything your brain tells you about a) how long your current activity has lasted and consequently b) how long events took in the past, is untrue. This isn’t because the brain is malicious – it just doesn’t know any better. Either way it’s usually safer just to ignore what it tells you altogether.
So is it any wonder that those scoping sessions feel like a bit of a lottery? No – it’s no wonder at all. We may as well use a roulette wheel to determine how long to allow for a task. The biggest surprise is that developers manage to survive the estimation experience with their sanity intact at all.
Well, it seems I’ve spent far too long writing this blog (somewhere between 2 minutes and an hour, I think).
I’m off to prepare myself a spot of lunch. I’m going to try a Pink Floyd recipe that at step 6 requires me to “stand in cool, dark place for 1 hour” – that’s going to fly by!
I’ll therefore leave you with some final words of wisdom from the late, great, Lord Sir His Royal High Holiness Douglas of Adams:
“Time is an illusion. Lunchtime doubly so.”