Agile Lab - Training, Coaching and Consultancy

Wednesday, 29 June 2011

How to Control Digital Projects Using Velocity (Uses and Abuses)

Controlling Digital Projects Using Velocity - Uses and Abuses

 

No matter what most people who are charging by the day may try to tell you, Agile/Scrum is a pretty simple set of ideas - in its simplest form, three roles and four meetings. There is however one concept which is absolutely essential to get the most out of Agile which is very often misunderstood - velocity.

 

What is velocity? In its simplest form, velocity in an Agile project is a measure of how much work a team can get through in an iteration. How do you get that measure? Well at the beginning of each iteration an Agile team holds an iteration planning meeting. The aim of the meeting is to plan in a list of stories. Exactly what a story could and should be is different blog post, for now let's say as stroy is just a 'work item', something that seems to need doing by development team.

 

Estimation

In the iteration planning meeting, each story is given an estimate by the team. This is where it gets complicated. There are two different methods of estimating stories at this stage, both of which cause their own kind confusion.  One way to provide an estimate is to ask the team how long it would take someone (or a pair if you're pair programming) to do this task if they had all the skills required and were not interrupted in any way. The number that the team give - 1 day, 2 days, half-a-day (that's normally the minimum estimate I'll allow) is then referred to as an estimate in ideal days.

 

Advantages of ideal days:

* Intuitive understanding of ideal days by the team makes it easy to get going with estimation.

 

Disadvatages of ideal days:

* Confusion of ideal days with real days by people outside the team cause all sorts of problems. The main confusion being the interpretation of ideal days as a promise from the team of how long a story will actually take.

 

There's another method which can be used, in which each of the stories that might be planned into the iteration is estimated in terms of complexity points. The team give each story a number indicating its complexity. For this to work, the team need a guide story that they all understand, or preferably a small group of stories that they all understand, that have all been given a complexity point rating.  For example, let's say adding a login screen has already been given a score of 5 complexity points and the registration screen has been given a score of 20, where would adding space for adverts come? Is as complicated as registration? More complicated? The team might decide, having had bitter experience of dealing with third party advert providers that this is a 40 pointer.

 

Advantages of estimating using complexity points:

* Because these are abstract points there's less danger of them being confused with any real measure of time and so less danger of the confusion of an estimate with a promise of delivery.

 

Disadvantages of esitmating using complexity points:

* The very abstract nature of complexity points can be difficult to explain to the team. This can make them even more reluctant than they normally are to provide estimates.

* You've got almost no chance of explaining complexity points to someone outside the team.

 

wait an iteration and then count the velocity

Ok, so we've got through our iteration planning session, and we've put together a list of what we think we can do in one iteration (which will be very inaccurate if this really is our first iteration). Fast forward to the next iteration planning. This is where we calculate our velocity.  We look at the list of things we planned and we count up the estimates on everything on that list that is done. That, ladies and gentleman is our velocity.

 

What is it?

Velocity in Agile is a measure of how much work can be done by a particular team on a particular project. That's it, it isn't a measure of how good or bad the team is.

 

What can it be used for?

Velocity has two main uses. The velocity of a team's previous iteration is used as a guide for how much work should be planned in the next iteration. A rolling average of the past 3 or 4 weeks is used to figure out how long it will take a team to get through a backlog of stories.

 

The velocity calculation

So, for example, you've got a backlog of 20 stories and the estimate for those 20 stories comes to 100 ideal days. You've got a team of two who are working in fornightly iterations. That mean that they're working 20 real days per iteration. But, iteration after iteration, when the estimates in ideal dauys of all the stories they've finished is added up, it comes to about 10 ideal days. So how long is it going to take this team with a velocity of 10 ideal days to get through a backlog which is estimated at 100 ideal days? That's right, 10 iterations.

 

Of course, in order to do that, the backlog of stories has to be estimated in the same units as velocity. If the team estimates in ideal days, the backlog needs to be measured in ideal days.

 

The Abuses

Someone once said, "what gets measured gets managed". In my experience what gets measured gets mangled, massaged and misunderstood.

 

Use velocity to set a target

Given a velocity of N, a genuine measure of the capacity of a team to do work, a manager might be tempted to declare that velocity in the next iteration will be two times N! From now on I decree that velocity will double every iteration.

 

Compare velocity between teams and projects

Team A's velocity is twice as high as team B's velocity? That must mean team B are a bunch of lazy sluggards. Actually, it could mean all sorts of things, it's not necessarily a problem of any kind at all. But it could be that there are all sorts of blockers to increasing velocity.

 

Confusing Ideal Days with Real Days

Team A 'only' did 10 ideal days of work in 20 real days, this means team A are a bunch of lazy sluggards.

 

Throwing your Rattle out of your Pram

I don't understand any of this new fangled Agile gibberish, all I understand is that you're saying I can't have my software until three months after I wanted it.  So now I think it's time I called you some names to get that number down. First of all, do you realise how negative you're being? Surely if we all thought positively about this then the software would be written faster?

 

And anyway, I'd have thought that any professional team of software developers who knew what they were doing would be able to get this done in about half that time. But as I've mentioned to you before, your team is clearly a bunch of lazy sluggards.

 

The Uses

Remove Blockers

Pay attention to what comes out of team retrospectives. Are there any infrastructural or environmental problems that you could help solve, that could massively increase velocity. For example, more often than you'd expect, it turns out the team don't have enough computers, or there's something wrong with their setup. Use your influence to get blockers removed and fixed and velocity will go up. You will have a much better chance of getting your software on time.  

 

Prioritise

Prioritise the things in your backlog. This is something that an Agile development team will be asking you to do.  There are a bunch of ways of doing it. Kano analysis and Theme Scoring are the ones that I find most useful. Get together with other stakeholders - other people who really want to see this software and prioritise using one of the methods I've discussed. As a colleague of mine recently pointed out. Even if a set of items that are all the same priority, they still need to be done in a sequence. Why bother with all this prioritising and sequencing? So you can negotiate on scope.  

 

Negotiate on Scope

So you want your project to deliver on time? Once you've done all you can to remove blockers, the only way that you can realistically increase the chance of a project delivering on time is to reduce the list of things that need to be done.  If you've put some effort into prioritising the list of stuff that needs doing then this shouldn't be too difficult. What's important is that you remember that just because you don't get something by a deadline, doesn't mean that you won't get it very shortly afterwords.

Posted via email from Agile Lab Blog

Emailing: ControllingDigitalProjectsUsingVelocityUsesAndAbuses.doc

ControllingDigitalProjectsUsingVelocityUsesAndAbuses.doc Download this file

Started off just talking about velocity but it jus got bigger and bigger - need to add a section on T-shirt sizing and Alphas, Betas and Permanent Beta.
Sent from my BlackBerry® wireless device

Posted via email from Agile Lab Blog

Tuesday, 28 June 2011

Legacy Systems (tags:(kanban))

"...some of the existing systems were effectively end-of-life and were really due for complete replacement.  Legacy-system replacement is a major challenge, and it typically involves long projects with a large staff until parity of functionality is reached and the old system can be turned off as the new one is brought online. (This approach is really far from optimal, but it is typical)."

Kanban by David J Anderson http://t.co/D4nTicM

Posted via email from What Stringer's Reading

Wednesday, 22 June 2011

This is where we're heading... Gotta a love that "Free Market" health care.

Sunday, 19 June 2011

Changing behaviour

Asking people to change their behaviour creates fear and lowers self-esteem, as it communicates that existing skills are clearly no longer valued.

David Anderson, Kanban

http://www.amazon.co.uk/gp/aw/d/0984521402/ref=mp_s_a_1?qid=1308482006&sr=8-1 Sent from my BlackBerry® wireless device

Posted via email from What Stringer's Reading

Tuesday, 14 June 2011

www.thamesribexperience.com

For some reason I'd want to do it on a really bright sunny day in winter.
Sent from my BlackBerry® wireless device

Posted via email from The Ginger Mumbly

Saturday, 11 June 2011

Highgate smelling clean and cool

Img00100-20110611-0841

Sent from my BlackBerry® wireless device

Posted via email from The Ginger Mumbly

Thursday, 9 June 2011

Paddington

Img00097-20110609-0843

Sent from my BlackBerry® wireless device

Posted via email from The Ginger Mumbly

Not knowing...

Not knowing is the best approximation to the truth. Zen saying.
Sent from my BlackBerry® wireless device

Posted via email from The Ginger Mumbly

Sunday, 5 June 2011

"Should"-ering to a halt

Wow. This is private stuff, I feel slightly cagey about sharing this, oh well, here goes. More thoughts on "Writing Down the Bones" and those negative reviews. I read WDTB just before I went on holiday to Paros with my wife. I wrote Zazen every day while I was holiday and managed to keep it up all the way through September - the following month. Then in October I decided that maybe it was time to write something other than just whatever came into my head. And started to write a detective novel. I think I did alright for about two weeks, then I spent a couple of days teaching a course which really took it out of me. And when I came back to this fledgling detective novel, I realised that I couldn't remember the names of some of the characters. And that's when I started to get the 'Should'-ers. "If this book's any good, surely you SHOULD be able to remember the names of the characters. Maybe you SHOULDN'T be writing this at all, maybe you SHOULD be concentrating on your day job. And there it ended. This kind of SHOULD-ing is what Natalie Goldberg calls "Monkey mind." The whole of WDTB is about getting away from that kind of paralysing self-criticism. Stop worrying about what it is, just write. It's taken me nine months but now I'm thinking I need to go back to that "start" (I'm refusing to call it false) and the simple device of a dramatis personae at the end of the file will get over that particular problem. What's important is that I keep going, keep my hand moving as Natalie Goldberg says (impervious to the dangers of any doubles entendres) and "finish it" as my impro teacher Tom Salinsky (http://www.the-spontaneity-shop.com/) says, or sometimes - "find an ending."
Sent from my BlackBerry® wireless device

Posted via email from The Ginger Mumbly

Hold on tightly let go lightly

I can't find a more profound source for this quote than the film 'Croupier' but for now that will do. Having recommended 'Writing Down the Bones' http://amzn.to/jZaevS in a tweet earlier this morning I took a look at the negative reviews. It seems the objection of most of the reviews is that to get together a book you need form and discipline and structure. No doubt. But before you can form and structure things, you need to have written something. That's what this book is brilliant at advocating and explaining. It shows you a way to just get writing, and to keep writing. It's interesting that several of the negative reviews are from 'published authors.' Hidden in their comments is the assumption that this would be the only reason that you would tap a keyboard or put pen to paper. But of course, for most people, the idea 'is this sentence of publishable quality' would be utterly crippling to their writing. What Natalie Goldberg is encouraging is the literary equivalent of "Dance as is if no one's listening." Of course the reality is that we need both sides of the coin - holding on and letting go. We need an id and a super ego. We need plans and we need to be able to make stuff up on the spot. This book tells you it's OK to let go in a far more convincing and reassuring way than any of the other books mentioned in the negative reviews.

Ok, I'm going to get myself a fresh 'Regular Americano, Extra Shot," and write zazen as advocated in "Writing Down the Bones" for an hour.
Sent from my BlackBerry® wireless device

Posted via email from The Ginger Mumbly

Friday, 3 June 2011

June CV

Wednesday, 1 June 2011

I know @guidelondon would like this...