I got inspired to write this after reading one of Mike Cohn's recent blog posts. Now, before I begin, let's get one thing straight: I agree with probably everything Mike has ever written about Scrum and Agile and I've learned a lot from his book 'Succeeding with Agile', which is essential reading for anyone practising Scrum. Did I say I agree with everything? I meant nearly everything ;). Story-point estimation is the point on which I beg to differ. It's my major bug-bear with Scrum, the one thing that I find 'not fit for purpose', broken, not working, kaput.
Mike, in his post, likens the definition of a story-point to the definition of a "yard", i.e. a standard unit of measurement that can be agreed upon by everyone. The reasoning goes that, if everyone can agree on how long a yard is, then everyone can agree on how long a mile or an inch is and therefore have a standard frame of reference for future estimations.
Moreover, a yard remains ever unchanging and unchangeable, unaffected by the whims of man or nature. Whether you're tired or beaming with energy, in a good mood or in a bad mood, full of cynical experience or optimistically naive, a yard is a yard is a yard is a yard. The same cannot be said about good ol' story-points. Something that appears very complex or time-consuming today may well appear simple and quickly-solvable tomorrow. Knowledge is power and if I had a penny for every time I came back a week later and re-adjusted my estimate downwards for a previous story after learning a bit more about the relevant domain, well....I'd probably have enough money to buy myself a pizza. Not just any pizza, I'm talking 16 inch, thick-pan, filled crust here, the works. That's a lot of pennies right there!
Not only that, but the way we define a 'yard' in software changes dependent on the observer's technical perspective and even psychological or emotional state. Factors like personal and team morale, inter-personal relationships, outside influences, e.t.c. they all affect our ability to tell how time-consuming or complex a story is. On a 'good'(4) day I feel there's nothing I can't achieve and my estimates tend to be overly optimistic, reflecting my psyche. Conversely, when things are gloomy so are my estimates - everything seems like a huge chore to me. My definition of a 'yard' keeps changing, victim to a dozen or more fluctuating factors, none of which are taken into account when we come to 'agree' on an estimate during our planning poker.
In every single planning meeting I've attended, 'consensus' is always closer to the estimate of the most senior/influential/charismatic person in the room. Trying to give objective estimates during planning poker is a bit like trying to avoid taking drugs at a Grateful Dead gig: peer pressure will prevail in the end. Still, I can envisage an environment where planning poker works fine. The trouble is, that environment consists of closely-knit team-members of similar experience, skill, background and 'status'(5). Last time I checked there weren't many dev teams like that!
So what are we to do? Well, we can always fall back on Joel's evidence-based scheduling approach. Or we can get Story-point estimation working right, using more objective measurements and accounting for a number of technical and environmental factors. I have some thoughts on this but they'll have to come out at a later post as this one's already getting too long(6).
(1) feel free to replace with your chosen bit of legendary coding.
(2) not accounting for the surrounding HTML
(3) I'm not having a go at Java (this time), just making a point about complexity and size.
(4) I don't have many of these, to be honest.
(5) For want of a better word.
(6) I'm such a tease!
Here's a scene: you're in the interview room at a really exciting company, being interviewed for your dream job. You've already aced the technical interview and really hit it off with the team leader and the other team members. You can already imagine yourself happily working there. But just before you start visualising your first 'employee of the year' award, another person walks in the room. (S)he introduces him/her self as the HR manager and asks if you mind being asked some more questions. 'So, Fred', goes the first one 'what is your biggest weakness?' 'Ermm..' you fumble, '..Ben & Jerry's, I suppose'. 'No', the HR person goes, 'I meant as a professional developer'. 'Why didn't you say so', says you, 'in that case it has to be Herman Miller chairs. I'd sell my own grandmother for an Embody full mesh'. 'No, no, that's not what I meant' (s)he says, 'I meant a weakness in your abilities as a professional developer'. 'Why would I tell you that' you reply, 'I'm trying to sell myself here, not bury myself'. At that point all the positive vibes you've built up have evaporated, your self-confidence is shaken and you're beginning to wonder if this really is the right company for you. Yes, you've fallen victim to the....CURSE OF POINTLESS INTERVIEW QUESTIONS (ta-dah-dah).
I mean, what's the bloody point? Does anyone seriously believe that someone talking about how well they work in a team gives any kind of insight into that person's abilities as a team player?! The only thing I learn from asking such a question is whether or not the person can bullshit or not. And I don't care either way. No, the real reasons behind these questions is simply office politics. Power plays and self-importance are the motives here, not adding value to the hiring process. Certain people / departments want to feel that they affect the recruitment process in a meaningful way. After all, they have to justify their existence somehow and what better way to do it than pretend to be able to discern suitable candidates for positions that they don't fully understand or appreciate?
I don't know if it's just me getting older and crankier but I've lost all patience with this sort of questions. Not only that, I now tend to actively avoid companies that ask such questions. I mean, why would I want to get involved with a company that considers my ability to bullshit, brown-nose and lie as an important selection criterion ?!?
Here are some of my favourites (and I use the term ironically):
So, employers: please, please stop asking your interviewees meaningless, misleading, disingenuous, template-based trivia. Not only it doesn't help pick out the best candidates, it may even drive good candidates away from you. Because, after all, who'd want to work for a company that asks stupid questions?