The Big Picture

Focusing on the big picture in Agile methods

Reading on Jeff Patton’s “User Story Mapping” I have been applying the ideas in a small project I am working on - an online grocery shopping service gengeni.com. In this post I am documenting focusing on the big picture.

Jeff insists on creating documents which promotes a shared understanding through user stories (rather than the traditional requirements, which are prone to mis interpretations). He insists that we are building software not for the sake of it but to make things better, solve real world problems, therefore we should focus on maximising the outcome (how we make things better) while minimizing the output (software components).

In Agile sprints the stories, represented by index cards in scrum/kanban boards, tend to be small - enough to fit in a single iteration. This leads to the loss of “big picture” view as the focus shifts to the smaller stories. Story maps helps to break down big stories (epics) and hence not lose the sight of the big picture.

Talk and document

To create a shared understanding have a session with the domain experts and talk while documenting ideas. Using cards or sticky notes write down the ideas as you talk about them - this stops ideas from vaporizing.

  • Write your idea on a sticky pad or index card (do this immediately even if there is an ongoing discussion, it will help you externalize the idea and keep your focus on the discussion)
  • Explain your ideas to others
  • Place the card onto a shared workspace (like a kanban board)

This will create a visualization of the stories that all members of the dicussion group will have a shared understanding of, later referring to the few words scribbled on the index cards will recall the points discussed about the idea.

Frame the idea

Ask the following questions about the product

  • What is it?
  • Why build it?
  • Who is it for?
  • How will it benefit them?
  • How will it benefit you?

Focus on the now and later, how will the product make things better?

In the context of gengeni.com this is what we came up with;

  • What is it?
    • It is an online grocery shopping service with home delivery
  • Why build it?
    • Helps users to so save the hassle (time, fuel costs) of going to the market
    • Provide home delivery of fresh and carefully selected food stuff to users
    • Offer convenience of shopping and delivery at home users
    • Users are opening up to online shopping in the target market right now (Tanzania)
  • Who is it for? (and how will they benefit from it?)
    • Professionals
      • Save time and fuel for food shopping
      • They will get the convenience of shopping and get food delivered at home
      • They will avoid losing money from dishonest helpers/servants
      • They will get fresh and carefully selected food delivered to home
      • They can save shopping list (favourite items)
    • People who are abroad with parents or relatives in Tanzania
      • They can do shopping for their relatives at home and pay by card
      • They can be closer to the reality of food costs back home
      • Fast and reliable way of shopping for food (compared to sending money and wait for it to reach)
      • The convenience of the parents/relatives to get food delivered at home
      • They can save shopping list (favourite items)
      • They will avoid losing money from dishonest relatives
      • They will get fresh and carefully selected food delivered to their parents at home
    • The elderly
      • Save time and fuel for food shopping
      • They will get the convenience of shopping and get food delivered at home
      • They will avoid kulanguliwa na wafanyakazi
      • They will get fresh and carefully selected food delivered to home
      • They can save shopping list (favourite items)
    • Students
      • Save time and fuel for food shopping
      • They will get the convenience of shopping and get food delivered at home
      • They will get fresh and carefully selected food delivered to home
      • They can save shopping list (favourite items)
    • Farmers
      • They will get business for their stock
  • How will it benefit you?
    • Profit
    • Build our brand and establish ourselves in the market
    • To create employment in Tanzania
    • To create opportunities for small-time traders (like farmers, fishermen, livestock keepers etc)
    • Help people who are abroad to take care of their families back in Tanzania

Note: There is a lot of repetition on listing the benefits for the users, perhaps an indication that all these users can be essentially represented by a single user type?

Describe the users

  • List the different type of users
  • Describe the benefits they will get
  • Describe how they would use the product
  • What is in it for them?

The more benefits there are for certain users, the more important those users become. We can never be able to build it all so use this process to identify the important users and focus on their stories.

To minimize the amount of software we build we may choose to focus on only one user who is the most important (stands to benefit the most from the product)

In the context of gengeni.com most of the tasks to describe the users mentioned above have already been done and misted above, except for how they would use the product. And that is listed below;

  • Professionals/Elderly/Students
    • Log on gengeni.com
    • Add items to basket
    • Checkout and choose delivery date
    • Gengeni prepares the order
    • Gengeni calls the customer and confirms delivery location
    • Gengeni delivers the order
    • Customer pays through mobile payments after delivery
  • People who are abroad
    • Log on gengeni.com
    • Add items to basket
    • Checkout and choose delivery date and location
    • Make payment by card
    • Gengeni prepares the order
    • Gengeni calls the recipient of the order
    • Gengeni delivers the order

The fact that we could bundle the three user types into one and still describe how they will use it accurately further confirms that there should raelly be only two user types - Professionals and People Abroad

After going through details of the users and how they will use and benefit from the product we decided the user who will benefit the most from it is People Abroad, and so we proceeded with only this user in mind.

Tell the user stories

Imagining the product is live talk about a day in the life of the user of the product and start to tell their story - in cards that flow in one direction. This way it is easy to make changes to the sotry by simply moving the cards around.

The positions of the cards help to indicate their sequence in the story and also their importance (if a card is moved higher on the board it automatically indicates higher priority). Talking through the story also helps identify holes in them, incompleteness or incorrectness.

When telling the stories focus on the breadth of the story before diving into the depth, get to the end of the story before getting lost in the details.

Explore the details and options

Once the breadth of the story map is in place, expand the cards and break them down, in each step of the story ask the following questions;

  • What are the specific things they will do here?
  • What are the alternative things they could do?
  • What about when things go wrong?

This will create more detail into the story map.

wall

This is what our wall looked like at the end of the mapping session. I decided to experiment using Trello to map the stories as well just to have a digital representation of them, which maybe useful to integrate with other tools (like Gitlab etc). Below is a screenshot of the cards from the wall entered into a Trello board.

trello

 
comments powered by Disqus