Many people who attend my Certified ScrumMaster courses come from a background in traditional project management. One agile principle that many project managers find difficult to grasp is relative estimation. However, taking the time to learn how to perform relative estimation and why it works so well is essential for bridging this gap and ensuring that sprint commitments are consistently met.
Like most people in the profession, my past experience as a project manager often involved a great deal of time trying to answer the question: “How long is this going to take?” My interactions with my team were often centered around getting estimates for their work. Whether in hours, days, or weeks, I needed to know how long their share of the work would take in order for me to determine the overall timespan of the project.
Not surprisingly, this often lapsed into guesswork. Because estimates were required so early in the project, my team had little information to go on when determining how long their work would take to complete. Project plans were routinely “padded” to account for this uncertainty.
The strength of relative estimation is that it does not simply ask the question “How long?” but rather, “How much effort does this work require in relation to work we have done in the past, and work we are considering now?” Relative estimation scales are simple and manageable, typically containing less than five values (e.g., small, medium, and large).
Here’s an example. Suppose I run a US-based business and have decided to expand into non-US markets. To do so, I have decided to learn to speak and write in three non-English languages: Spanish, French, and Chinese (Mandarin). We can write these requirements in user story format as follows:
- As a business owner, I want to become fluent in Spanish so I can expand my business into Spanish-speaking markets
- As a business owner, I want to become fluent in French so I can expand my business into French-speaking markets
- As a business owner, I want to become fluent in Chinese so I can expand my business into Chinese-speaking markets
The next step is to estimate the amount of work – not time – required to complete each task relative to one another. This is where relative estimation comes in. Though I’m sure the answer is different for each person reading this blog, this is how I would estimate these user stories:
- Spanish – I’m familiar with a handful of words and phrases in Spanish and find that I can sometimes follow a conversation, at least at a rudimentary level. I am also fortunate to live in a place with easy access to Spanish-speaking radio and television stations, which provides me with opportunities to repeatedly hear common phrases and sayings. The alphabet characters used in Spanish are almost identical to that of English. Therefore, I believe Spanish would be easiest for me to learn, so I would size it as small.
- French – I feel certain this language would be more difficult for me to learn. I find pronunciation difficult in French. Many words contain silent letters (“ballet”) or sound completely different when spoken compared to how they are spelled (“beau”). I could probably learn to write French more easily than I could speak it. For these reasons, I would size this as a medium.
- Chinese – Despite being a fan of several Chinese movies, I feel this language would be the most challenging for me to learn. It would require learning an entirely new alphabet, with a flow and phonetics that’s utterly different from the European languages. Learning Chinese, even at a level comparable to a small child’s vocabulary, would be a daunting task indeed. I would size this as large.
Notice that at no point during my estimation did I consider: “How long will it take to learn each language?” That’s because I have no idea how long it would take to learn any of these. If pressed to give a time estimate, I’d have to make something up that is in no way based on detailed analysis – which is, by the way, what your software developers must do when pressed to give time estimates very early in a project. However, I can say with some certainty that French would be relatively more work for me to learn than Spanish, and Chinese would likely be the hardest language of the three for me to master.
Remember that, when using agile practices like Scrum, the real question we are trying to answer is not: “How long will this user story take to complete?” Instead, we want to know how many user stories will fit into the time-box of our sprint. Relative estimation helps us answer this question by giving us a simple, manageable scale that allows us to quantify stories based on what we already know.
Of course, my examples are for illustrative purposes and far too large to be real user stories. But the process of sizing your own user stories will be the same. My recommendation is to avoid estimating anything—user stories or tasks—in units of time such as hours or days. Remember that estimation is only a means to an end. The true goal is to make a sprint commitment that can be met, and relative estimation serves as an invaluable tool for making that happen.
Buena suerte con sus futuros proyectos Scrum!