Search code examples
agilecucumberbdd

How do I determine the goal of a feature in Cucumber when stakeholder and user are not the same person?


I am trying to understand how to write complex stories where stakeholder and the end user has different goals. I don't have a good example for this, but say for instance a story like "Sally the Single Mom can follow what her friends are buying on a shopping site." The goal of the user in this story is to keep up with her friends, but the goal of the owner of the site -- the stakeholder we care more about -- is to increase sales.

If this is the template for stating the story:

In order to <achieve a goal>
As <the stakeholder who wants the goal>
I want <something>

The stakeholder who writes the story, owner of the site, would write it as:

In order to sell more products
As the owner of the social shopping site
I want Sally the Single Mom to follow her friends' shopping activities

..and yet this story would be more direct if it were written from the point of view of Sally the Single Mom.

In order to keep up with my friends
As an end user
I want to follow my friends' shopping activities

Granted this is not the best example because the goals of the user and the client are not mutually exclusive. You could think of a better example. But my question is how do you write stories where the motivation of the project stakeholder is different from the motivation of the end user?


Solution

  • I use the stakeholder-focused template, calling out the real stakeholder of the system. Yours is a great example, particularly with the use of personas.

    There are a number of things which a user might want which won't actually make money for the site. By ensuring that everything is focused on the real stakeholder and the goal - selling more products, rather than providing the user with everything they want - we ensure that every story is relevant.

    It's more about the stories we don't play than the ones we do. If we focus on user experience then we end up playing all kinds of stories which might not actually increase our revenue - and unless we're a truly user-focused site (like Wikipedia, for example) we should be playing the most profitable stories first. User experience is only one aspect of a profit-making company's vision.

    I heard a lovely example during an Agile 2009 keynote of a company which reduced one user operation from 5 steps to 2. They forgot they were paid with advertising by page impression and the company went bust. This might be an extreme example, but it should help understand why the real stakeholder is important.

    It's also very useful for realising that there are some things users don't really want to do, so that you can focus on making them as enticing as possible.