"It is not the strongest of the species that survive, nor the most intelligent, but the one most responsive to change!" - Charles Darwin

Tuesday, 19 February 2013

The importance of working with requirements


Two weeks ago (and the week before) I held a couple of sessions of Product Owner training in Sweden
As you know, I’m particularly interested in Product Ownership, being such a critical (and often underestimated) activity for the success of an Agile organization.

Anyway, regardless of this, every time I facilitate a PO training, one of the most interesting discussions happens around the subject of requirements. And the reason is that even experienced analysts or system engineers are sometimes not used to work with requirements properly.

The first important concept, which looks straightforward and totally sensible, but happens to be pretty hard to apply, is that a requirement is expression of a need, not a specification to implement.
It is an item in the space of problems: it is a problem to solve, not a function to deliver. 
On the other hand developing SW is just about solving problems, not writing code, right?

For instance, if one says: I want a bridge, is this a requirement? Is it a problem to solve or a solution?

A right conversation would then be: 
- What is the need behind this request?
- I want to cross a river without getting wet.

Eureka! This is a requirement and, as you might guess, this opens up more than one option to find a proper solution. One solution is definitely the bridge, other solutions could be a boat or a raft or even swimming. And you don’t even need to build anything in the latter case.

This is a very important job: understanding the real need behind a customer request. That’s why we don’t say writing requirements or defining requirements, but eliciting requirements, because it is about digging out real problems and helping the customer understanding her real need (or at least making a hypothesis on the real need, which must be validated through a fast feedback loop).

Then you as PO use your brain, your skills, your domain knowledge and the brains in your team to translate the need in business solutions, you can write in forms of User Stories, which is the language you speak with your team.

Requirements are instead the language the Product Owner speaks with customers, but it would be too easy and not profitable downloading the requests on the team as they are. Challenging customer needs is a very crucial activity for a Product Owner to be able to find a solution compatible with business and maximize the Return on Investment. 
I repeat many times to my PO team: your job is not to push your team to do as much as possible – your job is to challenge requirements, so that your team can do as little as possible.

Cutting some scope because it is not needed has an effect that no efficiency program whatsoever can ever beat: effectiveness eats efficiency at breakfast every morning.
Unfortunately I saw too many times the pattern of jumping directly into solution mode as soon as a request arrives and business solutions masked as requirements.

Buddhist masters know that, if you spend enough time in finding and formulating the proper question, the question itself will contain the answer. But how do you feel is the ratio between the time spent on defining the problem and the time spent on the solution in your context?

2 comments:

  1. About getting the real requirement in your example, one could formulate a question:"So getting over the river dry, what would that give you?". The answer might be "That I can get into the pub next building". So why to get to the pub in the first place?

    You can use this method "So you get what you asked. What do you do with it or what does that give to you?" while trying to get into the bottom of the real need.

    Jussi

    Ps. I loved the PO course. Great stuff. If only we could use all of that.

    ReplyDelete
    Replies
    1. Thanks Jussi for your comment and your feedback on the training.
      As you point out and as analogy to the 5 Whys approach, you will probably need more than one question to get to the real need.
      I would be really happy if you can find and share the reference to the technique you mentioned during the course.
      BTW, what is preventing you to use all the techniques we taught you ;)

      Delete