Some time ago I wrote about my discussions with Joe on fluctuating velocity, readiness at starting point, building on legacy code and dependencies - see 'Related Posts' at the end. After a gap of several weeks, Joe and I met again. That was sometime last week. I am writing this post to share an interesting part of our discussion. Read on.When I met Joe last week, I was waiting to hear about his challenges because he has been running two or three projects – all of them using agile methods. And he had enough information to share. He had some questions too.
He remembered our first meeting and said, “Let me tell you something, the problem of velocity dip and customer concern continues in my project. Velocity is throughput or units of work accepted in every iteration. Right?”I nodded and said, “Wait. What do we mean by units of work? Number of stories delivered? If you have a good distribution of stories or mix of stories in terms of various complexities, that will work because over several iterations you will see some trends - those must help you in sense making.”
“Well, I am talking about Story Points! Now I am managing three projects. We have the project velocity of all these three projects posted on our wall. In our organization velocity is the number of Story Points accepted per iteration. One day our Vice President walked along the wall and appreciated a team that topped all in terms of velocity! I did not expect that to happen! Another day, he asked me about the velocity dip in one of the project in front of our customer. I had reasons but did not buy what I said! That wasn’t good for me.”
Joe took a pause. I took my pen to do a quick calculation on my writing pad and asked him, “Joe, do you think 59 is equal to 59? I mean, do you think delivering 59 Story Points in one iteration and 59 in another mean the same? Are they equal?”
Joe was not sure. He wanted more information. And I continued.“Let me elaborate. In one iteration, let us assume that 11 user stories were accepted. These 11 include 4 stories of 2 SPs each, 5 stories of 5 SPs each, and 2 stories of 13 SPs each. In the next iteration, say 8 stories were accepted – these include 4 stories of 3-SPs, 1 story of 8-SPs, and 3 stories of 13-SPs. That means 59 Story Points delivered in the first iteration and the same 59 Story Points delivered in the next iteration.”
Hearing my example, Joe started writing the following on a piece of paper.
(4x2) + (5x5) + (2x13) = (4x3) + (1x8) + (3x13)
8 + 25 + 26 = 12 + 8 + 39
59 = 59
He said quickly. “Good example. But this is not happening on the ground!”
“Well. Why do you expect that to happen? 2, 5, 8 and 13 are sizes. Why do we attempt to add them together?”
“What else can we do? Is there a way around it?”
“Let me tell you and you know some of this. Story Point estimation is based on relativity and complexity. It is not scientific. It is not linear. We are not talking about buying potatoes in bags – bags with different weights such as 2 pounds, 3 pounds, 5 pounds, 8 pounds, 13 pounds, etc. When you buy potatoes like this, you can multiply and add because that makes sense. Can we apply the same treatment to measuring velocity by adding up Story Points? Does it make sense? No. It doesn’t. Many organizations have realized this fact. They have stopped this practice.”
“I understand. Do we have another way?”“Consider the number of user stories accepted per iteration along with several other parameters such as team availability or capacity, technical debt, etc. Try to put all those together and understand team progress. Now, do you realize the evil of comparing two teams by looking at the number of Story Points accepted per iteration? That is the second mistake! That is something we must avoid!”
“Yes. That makes sense. I liked that analogy of potatoes. Now I know why 59 is not equal to 59.”
“I am sure you do. Too much focus on velocity and not measuring it right is a big ‘No-No’. Unless you spread this awareness, your senior management will not understand. Talk to your vice president.”
“Sure. I will.”
I could convince Joe. He agreed.
What do you think? What is your definition of velocity? How do make sense out of velocity trends?