A Musical Metaphor for Agile Estimation
Agile estimation with relative sizing is a powerful mechanism for planning, but it’s also a difficult concept to grasp. Most of the explanations I’ve seen use examples that are either different enough from how software is built that it is hard to relate to them, or so similar that we can’t step back from our own experiences. Music may offer a better metaphor, as learning to play a song requires a mix of skill, knowledge, and effort.
My son has been taking piano lessons, and recently I’ve considered relearning how to play some holiday songs (something I’ve not done since middle school). While comparing what was possible for a novice like me to learn in a few weeks to what he could do, I realized there was some similarity to point estimation. Here are some examples I came up with with the help of my son's piano teacher.
If we’re assigning points, “Jingle Bells” might be a 1. Either hand moves, both parts are basic, and the most you need to do is learn how to play them together.
Based on twenty or thirty minutes of daily practice (an “ideal practice day”), it might take my son a day to get competent with it, but it might take me two or three. Regardless, the complexity is still a 1.
“Deck the Halls” is harder. The right hand has to cross its thumb over and move in one part, so this might be a 2 or a 3, about twice as hard. It might take my son a couple of days to learn to play it well. It might take me a week or more. Notice that the time difference between skill levels need not be linear.
“God Rest Ye Merry Gentlemen” is much harder. Both hands need to move throughout the song and the song moves quickly, so once you have all the notes down and the hands playing together, you have to practice even more to get the right tempo. Consequently, this might be a 5 or even an 8. An intermediate student might learn to play it well in a week, and a novice would take longer still.
These examples seem to resonate well with the core ideas of agile estimation: People can agree on the relative size of the work to do; the time varies by the skill and experience of the person doing the work; and as you become more skilled, you have a higher velocity. Right now I could learn three songs like “Jingle Bells” in a week, but someday I may be able to learn three songs like “God Rest Ye Merry Gentlemen” in the same time.
Many explanations of relative sizing in agile estimation fail to capture the mix of knowledge, skill, and effort that is involved in completing a task. Learning to play a song seems to capture the core ideas of estimation. With a good metaphor, it is easier to come up with baselines to estimate against for your team so you can benefit from agile sizing.