End of Year Meeting

Well, the end of the year is fast approaching. At DFW Scrum we normally strive to have our meetings the 3rd TUE of each month, but for November, that will not pan out. Gary and I were talking about other alternatives given I was not able to secure our 4th quarter speaker. We will definitely have a meeting before the end of the year and before the Holidays. We would usually skip DEC anyway given that most people’s schedules are crazy by that time, but if we have to do early DEC that could work.

We are thinking of having a BYOT night (Bring Your Own Topic). We will work on the logistics of actually discussing a topic, but we first need ideas. I have a place holder for the event on the MeetUp site, simply add that you will be going and place a comment regarding the topic you would like to bring. We can make a social event out of it as well as we gear up for next year. I am already working on our 1st 2012 speakers and hope it will be another great year for us.

Thank you all who make the group what it is, your participation is vital and we appreciate it more than words could express.

You Win Some, You Lose Some

I can not describe the disappointment I feel for our DFW Scrum User Group after last night’s presentation. I feel I owe each and every one of you a full apology. So for those who prefer brevity, I (Lance Dacy) take full responsibility for the poor presenter selection from last night and will ensure I learn and adapt my booking process as such to ensure we prevent a repeat. Feel free to contact me directly (lance.dacy(at)dfwscrum.com) if you would like to send any more feedback.

Our group has always tried to find ways to appeal to Developers. Our group focuses on Scrum; which has the roles of Product Owner, Scrum Master, and Developer(s). So we try to ensure we balance topics throughout the year. July of last year, it dawned on us that we need more Developer representation given they really are the secret sauce to any high performing Scrum team. So we enlisted Ron Jeffries to speak; which attracted the core Developer crowd that we see now. We followed that up with Kent Beck and Martin Fowler. Those are the minds behind the craftsman movement that we need to see more of in our own teams and we want to provide an outlet for Developers to explore that mindset and those principals.

Our presenter last night had been in contact with me for several months asking to present to our group. I finally asked him what value he thought he could bring, he stated TDD and DRY. I asked him to put together a short synopsis on what he would discuss, I then researched the various conferences and user groups he had spoken at previously. In my short investigation, I did not see any flags to deter our decision. Keep in mind that we really want more topics generated from our own group (it doesn’t always have to be a consultant or expert). So we decided to take the risk.

For the Developers, I apologize and will strive to provide better content in the future, you are very important to our group and we will learn how to find better engineers to represent the ideals and principals of Agile Software Development. I am striving to get Michael Feathers for our November meeting or perhaps early next quarter.

So there you have it, I learned a big lesson last night at the expense of your valuable time, and for that I apologize. I really want more and more people to have the opportunity to bring topics to our group FROM our group. So we will continue to learn how to navigate that process. Thanks again for listening, let me know if you have any other questions or concerns. Our next MeetUp will be posted once I have the topic nailed down. Thanks again to Improving Enterprises for always being there to support our monthly meetings with food, beverage, and space.

Don’t Measure the Work of Fixing Defects, Just Fix Them

I found this commentary in a user group forum from Ron Jeffries on how to measure the work of defects in sprints. I think it is a great perspective so I asked Ron if I could share it in blog form (so it retains its raw dialogue). Ron is a great thinker and possesses the heart of a teacher. He actually puts many things in perspective that you probably already know, but he states them in a way that gets you thinking deeper. So without further ado…Ron Jeffries:

Yes. The work of fixing defects distorts the picture of progress. It slows us down.

The solution is not to measure it and estimate this work. The solution is to eliminate it.

Defects are not a “fact of life”. They do not drop as the gentle rain upon the code beneath. Each defect is the result of flawed work — mistakes — on the parts of one or more people. Each defect is capable of being made less probable – very likely 10x to 100x less probable — by the specific ways the team works.

Scrum requires that the team produce a //shippable// increment of code in every Sprint. Not every few Sprints, not after five really grueling Sprints at the end of the project. Every Sprint.

Yes. If we spend more time fixing defects, we will deliver fewer completed stories. Velocity declines due to doing any kind of work that is not implementing stories. It would also decline if we spend more hours playing Doom.

End of “Story”. Velocity, counted as stories /Done/, correctly records all forms of wasted time, as well as our general capability, just by counting the stories.

We are interested in Done stories. We count them as good. We do not desire defects. If we know during the Sprint that a story we are working on is defective, we do not demonstrate it, and we do not count it as done. Our velocity declines immediately, because we didn’t get that one done.

If somehow a story slips out and then a defect is found, that story has already been recorded in velocity. Velocity is artificially
high. What should we do? One possibility is to reduce our progress bar by that amount, and insert that story back when and if it is fixed. That might be more accurate but it is not necessary.

All we do, instead, is count only the stories done next time. Time spent fixing the broken one does not count. Our progress line drops by one story, starting now. The line was artificially high for a while, but now it is back in line.

Note that the defect may take less time than it took to build the story wrong, or it may take more. Either way, the time necessary to complete the story correctly, and the number of stories completed, is back in balance with respect to that story. No estimation is required, no rationalizing about why we should treat what is obviously waste as if it were somehow a good thing.

Just count what’s done. Time spent fixing bugs is waste, and it will be shown by the amount of work done being reduced.

If a decision is made to fix a defect, then that decision should be handled as if it is a story, that is, it should come in through the planning session. It should not be accounted for on the product burndown as if it were new accomplishment, because it isn’t new accomplishment.

Extreme Programming, specifically the C3 project, specifically Ron, Chet, and Ann, introduced the notion of velocity in Extreme Programming Installed, ca. 2000 C.E.

We invented it. We’re here to tell you what it is, and why it is what it is.

Velocity is /defined/ as the number of stories the team completes per unit time. The notion is specifically designed not to be “the amount of work” the team completes, because the focus should be on what the customer (product owner) wants.

(It is perhaps worth mentioning here as well, that “story” is an idea from XP also. A story is something that the customer (PO) wants in the system. A feature. Somewhat like a PBI.)

We use velocity for two purposes, once of which is primary: Project Velocity.

Project Velocity is the rate, in stories per week or equivalent, at which the team is producing done stories.

In XP, mind you, all stories have complete unit tests and automated acceptance tests. They are really done. And when, as inevitably happens, a defect slips through, an XP team examines its process and practices, determines what tests and other actions would have prevented that defect, writes those tests, takes those actions, and ups its game.

They do this because velocity is a measure of //done stories//, and anything less makes it a measure of stories that may or may not be done. That’s not as useful a measure.

Project Velocity = stories per unit time. Punct, Schluss, Neue Absatz.

There is another slightly useful application for velocity, the number of stories done: it can be used as part of making the team’s commitment for the upcoming Sprint.

We should note here that Scrum does not ask the team to attain some velocity. Scrum asks the team to //commit// to the Sprint backlog.

You can use the amount of stories done in the past as part of deciding how much to commit to. It is not wise to treat this number as a large component of the decision, as there are many more influences on how much work the team will get done.

In Sprint planning, velocity is therefore only somewhat useful, if it is useful at all.

Now then. You express repeated concern that somehow, fixing defects is a good thing and needs to be taken into account in velocity. The, pardon the expression, error in this thinking is that fixing defects is //already// taken into account in velocity, that is, the number of stories done.

It is trivially true that if the team is working on a lot of bugs, then they won’t get many new stories done. In such a Sprint, their project velocity will go down, and it should go down, because they are progressing more slowly toward whatever the sum total of features needed for release may be.

Velocity already includes work spent fixing defects. It also includes time spent playing Doom, or snuggling in the closet. Velocity is the work actually done.

Therefore no other activity, no matter how important, can be treated as adding to velocity. Counting any other activity makes the measure of true progress, stories completed, worse, not better.

Velocity is stories done per unit time. And that’s all there is.

————————– Pause to Breathe, and Think ————————–

Now then. We might ask “shouldn’t we account for the time spent doing other things, like fixing defects?” Perhaps we should: it’s sometimes useful. We should also, perhaps, account for time spent in all hands meetings, or working on Project Beta instead of this project.

Sure. If it’s significant, account for it. I like a swim lane diagram for that, or a bar chart.

Still, none of this other work is “stories”. None of it. Yes, it’s important. Yes, we might want to account for it. It might be useful. But it’s not stories, and therefore it isn’t velocity.

Ron Jeffries
www.XProgramming.com
Logic is overrated as a system of thought.