If you find this site useful, you should try my 55-page eBook here

Take Responsibility

by Kelly Waters

Email This Post Print This Post Save As PDF
Agile Development: Empowerment.
I had an interesting conversation with a colleague about a situation where an important feature was missed, and the reason given was that it wasn't specified in the requirements.

If I arrange to meet you somewhere at a particular time, I don't expect to have to tell you how to get there. I don't expect to write down the route for you. I don't expect to write down alternative routes in case there's something wrong with the preferred route. I don't tell you what mode of transport to use. I don't check the weather forecast and let you know what you should wear.

You figure all that out for yourself.

I just expect to see you there, unless you run into problems that delay you, in which case please let me know so you don't leave me standing around in the rain wondering when you might arrive!

Obviously it's okay to ask questions. Not stupid questions like "How do I get there?". But maybe questions like, "I was thinking of going by chauffer-driven limousine and putting it on expenses, is that okay?", because that affects me. Maybe questions like, "Is there a dress code?", because that affects the appropriateness of the decisions you take.

Questions like this are okay because they are questions to establish the boundaries. Within those boundaries you can decide for yourself.

If we can apply this thinking to our everyday lives, why do we expect something different when we work on software?

What happens to our ability to think for ourselves when we walk through the office door?

Is it a lack of skills or knowledge? I doubt it.

Is it laziness? Maybe, sometimes, but generally I doubt it.

The answer, I think, is fear of failure.

If I let someone else do the thinking, noone can blame me if it's not right.

“You never told me that”, “that wasn't in the spec”, unfortunately are just excuses for not thinking for ourselves.

Agile teams should be empowered. Empowered to make decisions for themselves. But being empowered requires team members to accept it, to use their own judgement and initiative, and to take responsibility.

Go on, grasp the nettle.

I dare you.

Kelly.

Photo by JoeLodge

  • Digg
  • del.icio.us
  • StumbleUpon
  • Yahoo! Buzz
  • Technorati
  • Facebook
  • TwitThis
  • MySpace
  • LinkedIn
  • Live
  • Google
  • Reddit
  • Sphinn
  • Propeller
  • Slashdot
  • Netvibes

4 comments:

  1. Simon Kiteley said...

    An interesting post but what happens when the guy doesn't know that putting a limo on expenses is an option.

    Also its OK to blame the engineers for not taking on the responsibilities but I think its also up to management to encourage a supportive environment.

    Maybe the team are fed up of not being listened to, maybe your iteration meetings are more like lectures to the team or maybe they may have missed this feature but caught plenty of others but you don't care about those.

  2. Kelly Waters said...

    Ah, very fair point Simon, I would definitely agree with your points.

    In our case, this is a very supportive environment, noone was being beaten up or blamed for missing it, yet the instinctive reaction was to be defensive and say it wasn't specified.

    I wouldn't want to see finger-pointing in either direction, which is what I was trying to get at in my post, as in this case it came from the team. I was not really trying to blame for missing it, but was challenging why they felt the need to blame someone else.

    From managers it would be even worse if this was happening, as they should know better.

    From my perspective, I would just like to see people take responsibility and talk about how we put it right.

    Kelly.

  3. David Oakes said...

    The siuation in your blog relates to an important feature being missed.
    My initial reaction was a defensive one - to add, that if it was such an important feature then "how did they fail to mention it up front ?" Could it be laziness on part of the customer, abdicating responsibility for ensuring that everyone is clear about everything that's needed ? or did they not realise it was a required feature until late on ?
    Then I reflected on a similar situation at our place, where developers are very good at delivering what's specified but are still in the developmental phases of "crystal ball practices".
    Sometimes a detailed specification leads developers to "code by numbers" and forget the "out of the box" thinking.
    If we could just find a way of adding "hindsight" into the upfront development stages/iterations ...
    Is getting the customer to undertake TDD and use the system before we start coding it, the answer? That way we'll get a list of all the important faults and features that the system doesn't do and none of it will get missed ! Or is it just something development teams gain with experience ?
    One of the ways of adding this experience into development teams is to get them to take a tour of duty through a support team or become a user for a few weeks. It will be a real eye opener.

  4. seo services australia said...

    Very nice article you have put here.I wouldn't want to see finger-pointing in either direction, which is what I was trying to get at in my post, as in this case it came from the team. I was not really trying to blame for missing it, but was challenging why they felt the need to blame someone else.

10 Key Principles of Agile Development

How To Implement Scrum in 10 Easy Steps

User Stories - Agile Requirements

Agile Project Management

10 Key Principles of Agile

How To Implement Scrum

Most Read

Agile Leadership

Agile Requirements - User Stories

Agile Estimating

Agile Testing

Agile Project Management

Lean Software Development

Agile Teams