A year or two before I first started writing publicly, I read an interesting, varied and quite long essay by Jeff Patton on the Product Owner role in Agile development (particularly Scrum)
Whilst there are some areas I agreed with, the discussion on “heroics” was an area that left me cold. In my opinion, great software teams don’t have space for individual heroics and (in my opinion again) the sustainable pace ethos generally also plays down team heroics (but that’s a debate for another time).
There was a comment in Jeff’s article that resonated with me that I made a note of at the time. Years later it’s still highly relevant and I wanted to re-raise it this week in the context of recent challenges I’ve been facing.
“For the product you’re working on right now, how will your company benefit after the product has shipped? If you understand how, do others?”
Although this question was aimed at Product Owners it’s something I’d ask all development team members to really think hard about.
Now go further. Are you solving technical problems and a series of requirements to ship a product release or do you really understand the value of the release you’re working on, its reason for being developed and its impact on specific customers, the market or the company?
How many times have you or your team examined the reason for delivering a release with a specific set of features and understood their aim, questioned the backlog and vision and better still, properly understood what you’re trying to deliver in terms of solving the needs of the user?
When I say “understood”, I mean really understood – not just prettied up to follow one or another user story format.
Consider this an opportunity to pause for thought.
Back in 2013 I attended a Retrospective Facilitators Gathering and was introduced to an amazing concept over lunch by Willem Larsen that he described as “200 Questions”. He explained an idea that comes from animal tracking.
When tracking an animal you explore the environment in a way that an every day person doesn’t even consider. You look at every twig, leaf and blade of grass and ask questions of how it came to be in its given state (and why) in order to determine if you’re on the right path.
My translation of this to my own work is to try and develop a genuine and deep curiosity for every item you look at. (Even if you don’t have time to answer all your questions)
At the same lunch, we tried it with a salt cellar
How many people have handled it since it was made?
Who designed it?
What inspired the design?
What’s it made of?
Where did the salt come from?
What process did the salt go through?
(we lost count of how many questions we asked)
Applying this same healthy curiosity to incoming product features or requests is incredibly powerful.
You know things are wrong when every request coming in is essentially a specific solution being proposed.
And you know how translating feature requests back to user stories in anything except a shopping cart or finance trading application seems to be really poorly explained in the agile community?
Try this as an experiment for getting unstuck…
- Set yourself a target of asking 200 questions about the next big item coming in to your team.
- Try different “lenses” for asking the questions (much like 6 thinking hats)
- The “User” lens
- The “Investment” lens
- The “Functional” lens
- The “Market” lens
- What questions logically follow from those first “level 0″ questions?
- Decide which of those are important and valuable to actually answer in order to further your understanding towards your goal.
- Work on answering them – collaboratively.
In no particular order (but with some logical grouping around lenses) and in the very rough form I’ve been actively using in my current team, here’s over 50 of the “level 0″ questions I’ve started experimenting with.
- Name – what do we call it?
- What is it? (2-3 sentence user-facing description *and* 2-3 sentence product description)
- Describe how a user would do this now? (without new code)
- What types of users does this help?
- How does it help them? (what does it enable, unblock, simplify etc.)
- What is a user trying to actually achieve when they do this?
- What constraints are they facing at that moment?
- Who can we talk to about their goals and needs for this? (a selection of people willing to talk to us more)
- How complex/accessible (to the user) is it?
- How many/what proportion of users will benefit from this?
- How frequently might we expect different types of users to use this?
- How might this detract from the product for other users?
- How does this improve the product?
- How big/expensive is it?
- How much time do we want to invest in initial investigation?
- If an initial investigation is inconclusive, what next?
- How much are we willing to invest in this? (and how flexible is that decision)
- Is there anything obviously more important/valuable/beneficial to do before this?
- Would we be fools not to do this in the next 90 days? – why/why not?
- If this were the only thing we did in the next 30-90 days, is this the right thing to do?
- Why is this valuable to the team/company?
- How does it align to current product/company goals?
- How does it further our journey toward those goals?
- Would you describe this as a tactical or strategic change?
- Does this really fit within the product we have already?
- (how) will it help differentiate the product from the competition?
- Could this be a new product?
- Are there any other products it may integrate with or impact? (ours or elsewhere)
- Does this align more closely to another product than this one?
- Do any of our competitors already do this? (and how)
- What solution options exist already?
- Can you give an example of how that would work?
- Under what situations might that not be suitable/successful?
- What additional solution options can we think of
- What’s the smallest simplest thing that could possibly work?
- What’s “good enough” to meet customer needs?
- Is there an 80/20 solution option for this?
- How can we make this more discoverable, useful and valuable to users?
- Is there an ingeniously simple solution for users?
- What would it take to make a user say “wow!” (and is it worth the extra effort?)
- What is the best solution in terms of cost/functionality/usability/quality balance
- What performance and quality criteria do we have for this?
- What is explicitly out of scope?
- Are there any cross-cutting or performance risks?
- Are there any other significant risks to be investigated?
- What dependencies exist?
- If we ship an incomplete solution, what is the follow-on plan and forecast cost for completion?
- What is the market demand for this?
- Is there any market or customer sensitivity around timing for this?
- What marketing is planned or expected for this feature (if any)?
- How do we expect our competitors to respond to this?
- For what we’re planning to deliver, what do we expect from our users on social media?
- How will we launch this feature (alpha/beta/freq update/big bang etc)?
- How will this impact our position in the market relative to our competitors?
- What impact are we expecting on sales/renewals by announcing / releasing this feature?
- What impact are we expecting on our reputation by announcing / releasing this feature?
- How will we sell / price this?
It’s a lot like writing 10 minute test plans – so quick and so powerful.
Give 200 questions a try on your next big feature request.