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.
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?