Agile Metrics 101

Many organizations rely on metrics: spreadsheets, data, numbers and measurements in order to monitor the health of projects.  In a traditional project where value isn’t delivered until the end, it’s probably pretty important to try to know where you are along the way.  In Scrum, the regular delivery of valuable  shipable, high-quality, working software negates the need for many traditional measurements.  Here are a few ideas to keep in mind when thinking about metrics in an agile project.

1. Measurement Paradox.  Albert Einstein said “not everything that can be counted counts, and not everything that counts can be counted.”  This is the heart of the measurement paradox.  Especially with modern technology and ALM systems we have access to so much data!  But just because the data exists does not automatically mean we should use it or that it’s valuable.  Additionally, as we start to use some of this data, we create all of these isolated measurements – and when we present these isolated measurements to management and stakeholders, they draw system wide conclusions.  Hey, that’s not fair!  Great examples of isolated measurements in software projects include lines of code, number of test cases, number of hours worked, etc.

2. Hawthorne Effect.  When you measure something, you influence it.  The Hawthorne effect describes this behavioral psychology concept where people unconsciously change the way they behave in response to being measured.  This is not necessarily a positive or negative thing, but it turns out that most traditional metrics have negative Hawthorne effects.  For example, measuring test pass/fail percentage almost always causes the percentage to go up.  As people think to themselves “higher is better,” they may start writing smaller test cases, passing tests and writing defects anyway, or a number of other things that will affect the passing percentage.  In an agile project, try measuring accepted features or cycle time for closing customer complaints – these types of things have positive Hawthorne effects.

3. Measure Up!  It turns out that not only do you influence what you measure, you also end up getting only what measure, and loose things that you cannot measure like collaboration, customer service, employee happiness, and creativity.  Woah! – those are the most important things, aren’t they?  The things that every business strives for, yes?  Robert Austin talks a lot about these concepts in his book “Measuring and Managing Performance in Organizations” and comes to a clever conclusion: Measure Up.  The idea is to measure one level above from where typical metrics are taken.  For example, in software project we often tie defects to the developer that wrote them.  Instead, try measuring a level up: perhaps defects per team, or better yet, customer reported defects.  These higher level measurements make it easier for individuals and teams to collaborate and work together to solve problems.  Besides, when it comes right down to it, your customer doesn’t really care about all the low level metrics.

When Scrum teams are delivering done software every few weeks, there is very little need for traditional predictive metrics.  Ensuring you have done potentially shipable software each sprint, looking at a release burndown, and perhaps some measurement of team happiness will provide your organization with more valuable information than any set of isolated metrics ever could.

Also cross-posted here:  http://www.centare.com/agile-metrics-101/

Freedom!!! (and feeding the system)

About a month ago, my engagement at a client ended.  This is a good thing.  Being a consultant before and working for some very traditional companies, this lead me to believe that the next thing on my desk would be another client engagement.

I mean, if I’m billing, I’m costing, right?

Well, it turns out this is a very narrow view of value.  Having freedom in your job and autonomy over your work can produce value also.

The upside:

Feeding the System.  If we take a wider look at value, a more holistic systems view of what value is, we can see that a healthy and productive system is valuable in and of itself.  We can even start to trace the health of the system to direct profits (maybe, we’ll leave this for another time).  In any case, if we want a healthy system, we have to work at that, we have to feed the system.  How?  In my context it’s run the gambit from discussing our companies benefit packages, to looking at speakers for an upcoming conference, to helping out a few colleagues with their work, to simply taking some time to talk with and listen to colleagues having work issues.

Another upside is that creativity is trending upwards.  Outside the walls of the 8-5 gig, I have so many reflections, new ideas, and energy to pursue them.  I’ve done some writing and researching that needed doing.  I’ve had the opportunity to learn from my colleagues and attend some workshops.

The downside:

This.  Is.  Hard.  It is mentally challenging to control your own destiny.  Exciting, sure, but also exhausting at times.  Creativity ebbs and flows, and there are more “good days” and “bad days” further out on the good/bad spectrum compared to clocking it in from 8-5.  And there is no denying that, largely due to my past work history, there is that voice in the back of my mind saying “this isn’t sustainable, watch for pink-slips.”  Freedom can be paralyzing.  Autonomy requires practice.

Final thoughts:

I’m not going to try to equate this type of value to profit.  I know I’m providing value, and I know I’m not providing profit.  Surely this isn’t a permanent configuration, and I’ll be back teaching and coaching soon.  But a “balanced approach” (thank goodness I’m not a politician, I may be actually able to do this) to work that splits time between direct-profit-producing-activities and feeding-the-system-value-producing-activities is, in my opinion, exactly what is necessary for a high performance organization.

Kanban Made Easy!

Kanban is a great way to organize work when a simple “To-Do” list just ins’t quite cutting it.  Those To-Do lists always seem to grow faster than tasks are completed, and we can quickly get overwhelmed and frustrated.  Kanban lends some relief to common To-Do list woes by focusing on these three things:

1. Visualizing your Work
2. Limiting Work in Progress (WIP)
3. Producing Flow

What’s more is that it’s simple to get started with.  Select a location for your Kanban Board in a nearby, public, high-traffic area where everyone who needs to can gather, see and have a discussion around the Board.  Make three columns: “TO DO” “DOING” and “DONE.”  Write down all the tasks on stickies or note-cards and place them in the “TO DO” column.  Try to give them some order or priority.  Congratulations, you’ve just visualized your work.

Now for the fun part.  Decide on a WIP limit for the “DOING” column.  Studies suggest that we’re really only good at doing 1 or 2 things at a time.  After that, we’re spending a lot of time switching between tasks and we loose efficiency.  As you have availability in the “DOING” column, pull in tasks from the “TO DO” column, but only as many as your WIP limit.  When the task is completely finished, pull it into the “DONE” column.

This pulling action along with the limited work in progress produces flow.  People and teams using Kanban will start to notice it appears things are getting done more quickly, and more things are getting done overall.  This sense of accomplishment creates built in positive feedback.  As we see more and more things in the “DONE” column, we’re excited to pull more and more tasks to “DOING” and “DONE,” creating more and more flow!

We’ve seen Kanban used successfully in a variety of situations.  Among the most popular places are support or help desks – very useful in handling high volumes of support tickets without overwhelming the people doing the work.  We’ve also seen Kanban be successful in other diverse areas such as sales backlog management and even wedding/event planning!

Also cross-posted here:  http://www.centare.com/kanban-made-easy/

Trust the Team!

One of the Agile Manifesto principles says we should “build projects around motivated individuals – give them the environment and support they need – and trust them to get the job done.”

Recently I was reminded of how powerful a Scrum team can be when we simply trust that they can solve a problem.  We were looking at using some new technology, something the business wasn’t familiar with at all and the team had only limited training on.  As is common in large companies we got stuck in an analysis loop for quite a while.  The business wasn’t really comfortable moving ahead with this new technology until a swath of questions were answered.  How will it work when it’s done?  How long will it take?  Are you sure the team can handle it?  We need to know what the plan is!  What if it doesn’t work, what are our contingency plans?

All of these types of questions make for good discussion, and team and business should talk about them, don’t get me wrong.  The problem comes in when these types of questions stifle exploration and creativity.  We have a whole team of highly skilled developers just waiting to tackle this cool new problem, and we’re holding them up!

The team decided to dig in and do some investigation while the business was still talking through their questions   After a few weeks we had something to show, something to demo, and something to have a real conversation about.  Concrete working software.  This is the game changer.  It’s much easier to have a conversation about all the risks and concerns of the business when talking about chunk of working software.  The team continued on this path for a few weeks and kept exploring this new technology, gets more and more pieces of the puzzle put together, and learning a ton along the way.

Too often we try to centralize decision making authority with management.  When in fact, the best way to develop a complex product in a complex environment is to distribute decision making authority to the lower responsible level – in the case of product development with Scrum, this is the Scrum team.  Trust your team, give them freedom to explore and learn.  Always trust that the smart people you’ve hired to build your product can do just that – build a product.

 ”Intelligent control appears as uncontrol or freedom and for that reason it is genuinely intelligent control”
~Loazi, 600BC.

 

Also cross-posted here: http://www.centare.com/trust-the-team/