Saturday, March 17, 2007

Work Ponderings

We're in the process of introducing Key Performance Indicators (KPIs) in our workplace. There are a couple of forces behind this, which I'll describe without commentary for now.

1) In order to help us inspect and adapt, as good wannabe Agilists, we need some way to measure things and tell if we're actually improving. So a Feature Team might, for example, start tracking a KPI such as "how many Story Points of functionality are we delivering, per person day?" You could even argue that maintaining roughly the same value for that KPI is fine, once you reach an acceptable velocity.

2) Our parent company, we're told, wants to have some KPIs by which they can monitor our progress and tell how we're doing.

You can see how those are not necessarily the same usage of KPIs, although a broadminded person might allow that they could be.

Anyway, as I was sitting in a management meeting this week, a particular issue within the group came up that we were discussing how to resolve. The suggestion was made that perhaps these folks should own the problem, or those folks ought to create a process to solve it. Then I said, a little more than half-seriously, "Why not create a KPI for this and then track it and report on it every month?" That got a big laugh and then the discussion moved on to something else.

Which got me thinking: in how many areas are we not practicing what we preach? In other words, it's easy enough to impose mandates on others - some would say that's a part of what management is - but how often are we holding ourselves to the same bar? I know it happens, but is it happening enough? I've had questions like that asked of me, as the Agile Manager, and I don't know what the answer is. I don't, for example, have a list of tasks for every Iteration that I commit to and which then get reported on. Should I? Could I work effectively in that way, given how often my priorities change and that I don't actually generate product? More importantly, would things be better at work, if I and all the other managers had to work that way?

These are the sorts of things that wake me up in the middle of the night...

3 comments:

Anonymous said...

Hi Kimota94,

Could you please share with us what other useful KPI's you came up with besides "how many Story Points of functionality are we delivering, per person day?"?

Thanks,
Alexey

Kimota94 aka Matt aka AgileMan said...

Well, not much has been finalized yet. Possible KPIs that have been considered have been:

1) Percentage of the committed features that were actually completed in the Iteration (eg. 3 out of 4 = 75%)

2) Percentage of code base that has automated regression test coverage

3) Number of defects found per 1000 lines of code (counting only defects found after Feature Team has finished, not bugs found during an Iteration; not clear yet what criteria to use for lines of code just yet)

4) Estimated hours vs actual hours (I don't expect we'll use this one, but one of our development partners does)

Thanks for asking, and do you have any of your own that you could describe?

Anonymous said...

Thanks, those are interesting ones. We try to add and use some of them in our release planner/tracker (www.yoxel.com).

We actually pay attention to #4. Do you think it is not so useful?

Another interesting one is to figure out how much time each developer spent on planned work vs. on other (other project, critical unplanned request, something else unexpected). So in the next iteration you'd know better that realistically your team members dedicate only certain % of their time to planned items.

BTW, is there a way to subscribe to this blog? I keep forgeting to return to check if a new comment has been added.

Cheers,
Alexey
alexey at yoxel dot com