This originally appeared on my old blog in May 2010
Feature Injection, an approach to Agile Business Analysis created by Chris Matts, is a much misunderstood thing –. It is a way of combining several techniques to understand just enough of a business problem to start expressing solutions to it. It provides specific techniques to incrementally and iteratively comprehend each of the following:
- The business value sought (the why)
- The problem domain (what specifically needs solving to deliver that value)
- The resulting roles, incentives and product capabilities (the solution)
Basically, it helps us to evolve everyone’s understanding of the business-need as we (by other means) also evolve the implementation of the product.
Now, before you say, “it’s nothing new”, Chris Matts will be the first to agree. He’s taken his experience of various techniques, combined several of them that often work, evolved it into an approach to agile business analysis and given it a name.
I wish I could explain all of this now, but we’ll have to save that for another day. This post is intended to try to explain the relationship between Feature Injection and User Stories.
I’ve seen several examples of user stories taking some inspiration from Feature Injection, however, I’m not sure any of them do Feature Injection enough justice.
A common story
One of the problems with how User Stories are often applied is that people focus on the role, the capability and then try to work out what the benefit is. This is quite natural, explained nicely by Udi Dahan:
Users ultimately dictate solutions to us, as a delta from the previous set of solutions we’ve delivered them. That’s just human psychology
– writer’s block when looking at a blank page, as compared to the ease with which we provide ‘constructive criticism’ on somebody else’s work
This is something that other aspects of Feature Injection actually help you to solve… but again, today I’m just focusing on user stories…
The tendency of people to dictate solutions, rather than the problem that needs solving, has lead some to emphasise that we should put the benefit of the story first. For example, let’s say a fictional printer manufacturer consistently entices 3% of everyone they e-mail, reminding them to check their ink-levels, to purchase print consumables. In this situation, some might illustrate taking a story like this…
As the PrintCo marketing manager
I want customers to register their e-mail addresses
So that we increase the sales of our print consumables
And changing it to this:
In order to increase the number of sales of our print consumables
As a marketing manager
I want customers to register their e-mail addresses
The intent behind this shuffling around is to get people to think about the problem in order of business value first, then the stakeholder then what the stakeholder thinks will deliver the value.
But, the story is talking about a stakeholder… In my experience, this doesn’t get the best value from the user story approach.
Stakeholder ‘stories’ or User Stories?
I’ve found that user stories are most useful when communicating to the team if they encourage a conversation around who the user is, what capability the user needs and why it’s important to the user (could that be why they are called “user stories”?). This helps us to understand what user experience they need and what capability will make that possible.
This template, brought to us by Rachel Davies and Tim McKinnon’s 2001 XP Day session “Tuning XP”, helps us with that:
As <some role>
I want <some capability>
So that <some benefit>
If we discuss this solely from the business stakeholder’s point of view, the team doesn’t get as much understanding from what is needed by the user or why the user will need this capability. If the capability summarises what the product will enable or do for user it’s a lot easier to see what needs to be changed in the product. The benefit should be the answer to “what’s in it for the user?” or “why would they want the product to do that?” (exploring the persona of the user is helpful in finding this out).
So, taking the earlier PrintCo example, an alternative way of writing the user story would be like this:
As a PrintCo Customer
I want to be prompted to share my e-mail address with PrintCo
So that I can avoid those times when I need to print something but the ink is empty
Ah… but now we’re back where we started – where’s the business value? How do we get people to think about the business value first and then identify the roles and capabilities?
Let’s start again
Ideally, we want the benefit of driving the features from the business value and the increased understanding of what we’re implementing by understanding the user in our conversations around a user story.
To get to the right place, we need to start again with our example. Imagine that, instead of the above, we’d taken a different approach.
Recall that the business value or goal was:
Increase PrintCo printer cartridge sales by increasing our customer mailing list
Then, we could consider what behaviour we want to encourage and for whom. For example, we want the Customer to share their e-mail address with us online.
So, what will encourage that behaviour… What’s in it for our users? Into our business value statement, we “inject” the beginnings of a capability (or feature) that will help us deliver the value:
In order that PrintCo printer cartridge sales go up by growing the mailing list:
As a PrintCo Customer
I want <something>
So that an e-mail reminder helps me to avoid those times when I need to print something but the ink is empty
Now we’re ready to talk about the special <something> that we don’t currently have that will give the user the benefit they want:
In order that PrintCo printer cartridge sales go up by growing the mailing list:
As a PrintCo Customer
I want to be prompted for my e-mail address
So that an e-mail reminder can help me avoid those times when I need to print something but the ink is empty
We also want the Customer Services Rep to be encouraged to ask customers for their e-mail address when dealing with customers over the phone. So, we inject some more features:
In order that PrintCo printer cartridge sales go up by growing the mailing list: As a PrintCo Customer I want to be prompted for my e-mail address So that an e-mail reminder can help me avoid those times when I need to print something but the ink is empty As a PrintCo Customer Services Rep I need <something> So that I increase the points I get for e-mail captures, improving my position on the high-scores display As a PrintCo Customer Services Rep I need <something> So that I can see that the points I earn for e-mail captures affect my position on the high-scores display
And now we want to know what that special something is going to be for our Customer Services Rep:
In order that PrintCo printer cartridge sales go up by growing the mailing list: As a PrintCo Customer I want to be prompted for my e-mail address So that an e-mail reminder can help me avoid those times when I need to print something but the ink is empty As a PrintCo Customer Services Rep I need to be prompted to ask for the customer’s e-mail address So that I increase the points I get for e-mail captures, improving my position on the high-scores display As a PrintCo Customer Services Rep I need e-mail captures shown as one of the columns on the high-scores display So that I can see that the points I earn for e-mail captures affect my position on the high-scores display
And, if it is important that you capture the key stakeholder:
In order that the Marketing Manager grows PrintCo printer cartridge sales by growing the mailing list…
Or, you don’t need to even use ‘In order to’… you can word it any way you like
Goal: the Marketing Manager wants to grow PrintCo printer cartridge sales by growing the mailing list…
The most important thing here is not the wording. It’ that we find a way of keeping the business value in the conversation and when we’re talking about the capabilities, we focus on the user. What I’ve described is just one way of achieving that.
It’s like a “theme” for the stories
Themes have been suggested by many as a way of grouping user stories. In this case, the ‘In order to…’ can be thought of as a theme for the stories – i.e. the theme is described in terms of business value. Stories, described in terms of the user capability and incentive/context, are injected into the “theme” as we identify roles and capabilities that deliver the business value.
Notice, that I thought about the “As a…” and “So that…” aspects of the user story first and then summarised the capability, yet the order in which I expressed them remained as normal. As Rachel Davies once highlighted to me, just because we think of these things in one order, that may not be the best order for a discussion with the people who will implement it.
Another way of putting this is that the “As a… I want… So that…” is optimised for the conversation that helps the product owner(s) communicate what is required to the rest of the team, not for the order in which we generally discover the information.
In Summary
As you can see, Feature Injection doesn’t encourage you to simply move the “So that” to the beginning and reword it with “In order to”. I can see why people do that. One possible reason is because the stakeholder intent has been mashed into a user story, but that loses the purpose of a user story. I can also see why that happens, because there wasn’t an obvious place to think or talk about stakeholder intent. Business-value focused themes give us that.
I hope this helps clarify a little about Feature Injection and how it relates to user stories… but remember, this is only the tip of the Feature Injection iceberg. Actually it’s just one of the outcomes of Feature Injection. Watch this space for more.