Tuesday, 26 June 2012

Agile Estimation

Is there something in the nature of the personality of the developer that causes them to feel the need to under-estimate their work? Is it the fact that developers enjoy their work so much, and are so anxious to be able to continue to be paid to do what they enjoy doing, that they more-often-than-not tend to see the world through rose-coloured lenses when it comes to estimation? Possibly it's both of these, also probably it's to do with the fact that software development is an exceedingly difficult and complex thing to whack an estimate on unless it's done in very small chunks.

With it's well defined toolkit tailored for just these type  of complex problems, Agile has built a reputation for kicking arse and taking names when it comes to software estimation; at least, it has in my experience. Let me count the ways (that Agile breaks it down):

- Epics
- User stories
- Tasks
- Story points
- Planning poker
- Sprints
- Acceptance criteria

...and the list goes on. Many of these artifacts are Scrum specific, but all of them are about clearly defining, measuring and decomposing big chunky pieces of work into manageable, measurable, increments of achievable cool stuff.

Looking back and remembering the stress and uncertainly that used to be part-and-parcel of software estimation (and delivery on an estimate), I find it difficult to believe that I made it though my tenure as a developer to tell the tale (that is, I didn't change professions). I guess I enjoy programming too much.

[the dreaded "cone of uncertainty"]

I have seen the change that the introduction of an Agile approach makes in a business and in a Team of developers; it is somewhat revolutionary. As a manager of developers, I get to share the benefits. I think that one of my Team members summed it up best by saying that "Since we have launched Scrum I've been a much more relaxed person". Agile is not easy, but it can make things easier.

I'm going to have a crack at writing about Story Points and Planning Poker in a future post (soon-ish) - a couple of particularly interesting Agile estimation artifacts.

Migrating (and Open-Sourcing) an Historical Codebase: SVN-to-Git

I have a SVN repo on my local machine that I have been shoving stuff into since before I knew how to use revision control systems properly (...