How to re-write your Legacy Application using Story Mapping

People often mistake User Story Mapping as a tool to start projects, but it is entirely suitable for building up an old project or design.

When looking at your application it is easy to first create  User Story Map based on the products functions.

Establish the tasks, the goals and flesh out the map. Sometimes you may taken things for granted and forget certain tools of the application are actually tasks so it’s a good idea to bring in people from other teams to help identify all the functions of your project.

Build the map, identifiying all the functions.

We once took an old tool and needed to update the codebase, as well as introduce new features and improvements.

A few options may be available to you, depending on the code. Are you able to update the tool in sections? Are you able to approach the update in sprints/versions? Do you need to rebuild the entire program from scratch?

We first built the map of our tool, you can see below our “Moviebuddy” example.

The Moviebuddy Current Version

We then worked through identifying which sections were redundant. We identified these and added them to a new column to the side. Essentially removing them from view.

We then talked out and identified which parts of the code would be updated and what we could do first. We labelled this as version 1 and aimed to get the core functions updated.

Identifying what we should upgrade first in Version 1

We were able to identify one function which we were able to upgrade. We also added new cards which reminded us to update our code standards and highlighted them green to ensure they were completed.

We then moved along to the next version which allowed us to introduce our new payment gateway to the application. A function that had alluded us due to the old codebase.

Adding a new Codebase column and moving to version 1.5

This allowed us to deploy more frequently and provide value sooner as we updated sections of the site. We still had a lot of ‘old legacy code’ but as we added new features we moved the legacy code functions inline with our updates.

As you can see using User Story Mapping can be brand new projects, or old existing projects.

Moviebuddy is all fictional for the purpose of training.

 

User Story Mapping : From Idea to MVP

When we look at User Story Mapping, you may think of the backlog of user stories, or how it can be a great methodolgy to reduce and refine your current project or product flow. But User Story Mapping doesn’t just need to be a tool applied to a backlog heavy project. It can be used to refine an idea to a product.

Refine the Idea

Take the product and ask yourself and your team these questions:

  1. What is the overall idea?
  2. Who are the customers?
  3. Who are the end users?
  4. Why would they want it?
  5. Why are we building it?

Find out what the project and product is for, validate your reasoning, search for problems, take the steps now to refine your idea.

Build to Learn

With the initial idea fleshed out, first build your product with the aim to learn. A less than MVP (Minimum Viable Product), a product that covers the simple basis for your users.

With this stage you do not want to market, push or give out the product as “The product” but to a small group of users. Ideally users you spoke to initally that may have sparked the idea of the product.

As part of this step you need to harvest the feedback, and constantly refine your idea. Build wants but be care ful to actually listen to what the user wants.

At this stage metrics will help as it is common people will fall into a loose three categories:

  1. The Polite Enabler. — The user who says everything is great, but doesnt use the product.
  2. The Complainer. — The user who sends in lists of feedback and demands, but actually uses the product.
  3. The Mute. — The user who uses the product and says nothing.

The polite user is probably the worst for building to learn, with the complainer being your favourite user. However be careful the complainer is not just demanding features that detract or do nothing.

The Mute you’ll need to reach out, engage and ask for feedback with offered incentives. The mute can be valuable.

Applying to Story Mapped Backlog

You now have your project released, some feedback and ideas of how to take it from big idea to big success.

We recommend organising a horizontal strip of User Actitives. You will have this from the first step, and the questions. This will form the backbone and be the foundation of your map.

Below in vertical strips arrange into three tiers:

  • Current Relase
  • Next Release(s)
  • Future Ideas

Each card will have indepth details about the feature.

Example Layout in FeatureMap.co

Then when organised, take the highest priority stories or layers and move into the current sprint.

This is one great way to take Idea to MVP.

Common Pitfalls

I might write a piece entirely about the pitfalls I see new projects and products fall to when designing their story map and MVP.

  1. Perfection — When designing a product do not focus and lose yourself to the “Just one more feature” which adds time and bloat to inital ideas.
  2. Make a skateboard first — When making a car, first design a skateboard that allows the user to at least get somewhere. Do not fall into the trap of building car parts with no method to go.

To illustrate this Henrik Kniberg wrote an article talking about how he prefers “Earliest Testable/Usable/Lovable” over MVP.

Validate your MVP

When designing your product, each sprint sent to product should be reviewed, measured and with feedback and data — learn.

With that learn knowledge refine your idea.

With that refined idea, revamp your MVP and build.

  • Build — MVP
  • Measure — Get feedback and data
  • Refine — Improve with better ideas
  • Repeat — Back to Build.

With User Story Mapping this is easy, especially when using a tool like FeatureMap.co as the ease and flow of a team all working, moving and adjusting cards on the fly makes it invaluable.

Story Mapping Can Help Your Team Understand

When working with a large organisation it is not uncommon for everyone to picture the product in different ways.

When you have multiple smaller teams come together to create a product, each team can have different requirements. This can clog up development and in some instances waste time, building the same features in multiple different ways.

A few years ago I was assisting in the development of a now-popular mobile app. The team of designers all had different ideas on the end goal and it wasn’t until we mapped the entire user story that this was realised.

Confused Team Mapping Out Individual Requirements

The managers wanted to see a CRM in the backend that would allow them to see the flow of products and users and to manage the support workers and content creators.

The content creators wanted to have a CRM in the backend that allowed them to edit, create and update articles and products.

The sales team wanted to have a map system that would allow users to find a product based on location.

Shared Understanding with a Shared Vision

When we put all three together we could see an overlap of two different CRM systems and a product completely overlooked by the other teams.

Mapping your story helps you find holes in your thinking.

When we set out and built an entire wall, it was clear that each team had a different idea. Once they were able to list each card across the map, teams merged ideas, worked on the initial idea and framed the entire product.

Once the ideas had been merged, expanded and realised, the team was able to expand their understanding to a shared understanding.

Shared MVP Achieved With Understanding

The team were then able to split up their design into a minimum viable product that successfully achieved the desired outcome.

Sadly, it was realised that months had been wasted on planning features of a project with no compatiblity with the rest of the team.

Fortunately, when creating their product on FeatureMap (even linking with remote team members across the world) they were able to hash out a new plan and deliever well within time.

Mapping your story helps with shared understanding.

Story Mapping: A Reliable Agile Tool

When it comes to backlogs it can be overwhelming, difficult to grasp where we should go, or what we should prioritise. At times projects are entirely sidetracked by mismanagement of priorities.

To solve these situations a Story Map can be utilised to reduce the backlog, refocus the project and remind the entire team of the end goal.

When designing a Story Map you must look at the bigger picture. It is often sensible to set aside a period of time (hours or days) to effectively cover the vision.

You will need to set out the goals of the entire product, the ideals, the dreams, think big. To best utilise Story Mapping is the big picture, not just a sprint. Do not fall into the trap of a niche narrow sprint at this stage.

First write out the user stories by setting out functions.

Step 1 — Functions and user stories set out in a grid.

Horizontally, set out the title and set the user story under each function.
Vertically, set out the main stories or issues related to each other.

At this stage you can then prioritise importance from left to right, and from up to down. This creates a format of the top left card, being the most important.

Slicing the list.

Once the stories are organised into groups and themes. You can start with slicing the list into sprints of what is the Minimum Viable Spec, or as Jeff Patton puts it — “The minimium viable product in the smallest product releaes that successfully achieves its desired outcomes”.

Step 2 — You can see the sprints have seperated, clearly, what functions are required in each layer.

You can set sprints into what you need to achieve. The trick of utilising story mapping is by setting out the entire dream product, then breaking your product/project into sections of achievable, working, and required sprints.

Next Steps.

Do remember, the story map is not a static beast, it can be adjusted, amended with feedback, changed and adapted to suit the needs of each sprint.

With multiple team members working on it, as a team you can start to see the end goal, the ideal product and when working as a group you will be able to clearly define what each of you need. Too often I see teams all have an idea in their head turn out to be all differing versions.

  • Set status of a card
  • You can set time estimations
  • Set importance of cards
  • Use colours to set a custom identifier, such as challenge or complexity.
  • Use extra columns and set sections

The use of a story map will grow with each iteration, and with each demand.

Step 3 — Expanded map with colours, rags, and time estimations.

One thing is to ensure you are always planning the entire project, clearing backlog and not focusing on individual sprints.

If you want to see the tool we used for the images, check out FeatureMap.co