Splitting Strategies – An Almost Comprehensive Guide
Splitting user stories is positive all the way around. We are always encouraged to build things around motivated teams. Also, motivation happens when people have purpose, autonomy, and mastery. Splitting strategies will lead to frequent delivery of a valuable product. It helps the Engineering Team feel a sense of accomplishment. Also, it strengthens confidence in the team’s ability to perform and deliver. It ensures a steady stream of feedback for the Product Owner. All these things will improve future quality and performance.
Strategy #1a: User Workflow steps
Most organizations want the user to reach a goal. Whether you are collecting emails or selling a product, there is always a user workflow. Mapping out this workflow is an excellent way to split your stories. Let’s think about a eCommerce website. The workflow options will be fairly standard once a customer is ready to checkout. The user may start out with something like this: “As an online shopper, I want to pay for my order so that my item will be shipped directly to me.” Take time to map out the workflow, and then split the user story by an expected set of outcomes:
- How or if the customer needs to login or create an account to place their order?
- How and where to ship the order? Ship only to the buyer, to other addresses, not to PO Boxes, to friends with a note or gift wrapping.
- How will payment be accepted?
- How is the order reviewed and confirmed? When can corrections be made before the payment is processed?
- How is the order confirmed once placed? What notifications will occur? What about order history?
- How is the order tracked after it is placed?
It is an easy example to consider, as most of us have placed many online orders. Whatever the story may be the team must take the time to innovate all the options. It is the best way to serve the target audience. If the team is at a loss, pull out the big guns. “What happens when the functionality gets used?” It is an excellent question to ask the Product Owner or Subject Matter Expert. They will then describe a sequence of events. Some parallel paths will emerge. Or which could happen in parallel, they still illustrate it sequentially. Even for things that occur non-deterministically. It’s just the way our brains and our language work. It will help the team to create a timeline from where a splitting strategies can be used. Once the story is split, the Product Owner will prioritize the stories in the workflow. As in the example above, there may not yet be a need for creating a user account until further down the road. Or maybe, only credit cards and PayPal will be accepted as payment, to begin with.
Strategy #1B: What To Do Next
Each story comes to an end, so what happens afterward. Is there a chance that further communication will be required? Or what if a change needs to be made after the fact? Careful consideration on what is next is essential. Let’s revisit the eCommerce website. “As an online shopper, I want to pay for my order so that my item will be shipped directly to me.” The team must consider all the things that will occur when payment is completed. It might include:
- A confirmation email that their online order was placed.
- An email letting them know when the order has shipped and arrived.
- Follow-up and feedback after the order is received.
- A process for canceling an order
- A process for exchanging or returning the order.
The options vary greatly depending on the story, so you must get into the mindset of the end user.
Strategy #1C: Workflow Deviations
Workflow deviations are one of several common splitting strategies. It is impossible to know all differences up front. Be prepared to learn. Let’s take our eCommerce website again. “As an online shopper, I want to pay for my order so that my item will be shipped directly to me.” Here are a couple of deviations to consider:
- How to ship an order to a different address.
- How to split the order between two addresses.
- The handful of products that can be shipped globally.
- The handful of global countries that can be shipped to.
- If shipping to Hawaii and Alaska includes free shipping.
- How to recover a forgotten account password.
- If there is a need to block login attempts after a designated number of failed attempts.
Again, not all deviations and split user stories will be a priority. Blocking a customer login after three attempts may not be a high priority. Or maybe the volume to Hawaii and Alaska is not yet large enough to worry about the free shipping.
Strategy #2: Happy Path Scenario And Exceptions
Have you ever heard of the concept of gold-plating? In software engineering, it refers to adding extra functionality beyond what is required. Some engineering teams will add extra functionality that will not pay off. These distractions can take away from the performance of the story. Also, future enhancements can be hampered. Users like features that are simple and easy to use. What if you were to think about the perfect transaction? A default scenario with no errors or exceptions. What would it look like? It is a happy path scenario. Typically, they are built through acceptance criteria focused on the happy path scenario. Let’s take a look at a different example: As a DIY genealogist, I want to find my ancestors by name, so I don’t have to browse digital records.
- Demo combination search of a first and last name
- Demo first name only search
- Demo last name only search
If you have ever done any research like this, you will find that names are never perfect. Sometimes names are recorded based on how they sound. Understanding that the literacy rate was lower than today in many cultures. A set of ideal conditions is impossible to find for research. Let’s take this example further. As a DIY genealogist, I want to find my ancestors by partial name, so I can resolve errors.
- Demo wildcard search first name only
- Demo wildcard search last name only
- Demo wildcard search for a combination of first and last name
- etc. – add as much acceptance criteria as you need
When complexities arise, take a step back and split out the happy path. Then split out your exceptions and error conditions that can occur. Allow the 80/20 rule to guide you in this because all exceptions are not equal.
Strategy #3a: User Roles
There are likely to be a variety of user roles within any project. Some users will require different features and functions. For example, an HR scheduling tool may have three primary users:
- Admins—who have full and unrestricted administrative access.
- Managers—who have semi-restricted administrative access. For example, they can only access their team members.
- Employees—who have restricted access and can only access the frontend.
With such a scenario, you might break users stories to:
- Allow the Admins or designated HR team to add, and edit the employee schedules.
- Allow employees to log in to view and print their schedule and submit time off requests.
- Allow managers to trade shifts or process time off requests.
Maybe submitting and processing time-off requests will be processed manually for now. Because having a mobile employee schedule is beneficial for everyone. Another typical example of user permissions is membership websites. You are familiar with various levels of membership – Free, Bronze, Silver and Gold. Even credit cards do it. Each member has vastly different access, support, features, and functions.
Strategy #3b: Who Else Does The Split Serving?
Some user stories serve a group of users. Every product has multiple users. Some users have specific needs and nuances within their requirements. For relevant stories, it can rapidly increase the number of user stories and splits. Sometimes by an alarming number of new stories. Let’s shift gears and change to a user story for a travel app. Let’s say the initial story sounds something like this: “As a family of four, we want a vacation destination that has something for everyone, so that we create lasting memories together and some solo fun too.” In this example, four users could have a variety of needs, means a variety of splits. For example:
- Activities for the toddlers.
- Activities for preteens
- Activities for teens.
- Activities for the entire family.
- A local babysitter so that the parents can have a romantic date night.
- Candlelit dinner for date night.
For the story example above, this is the tip of the iceberg. You could also consider specific excursions, such as water activities. Think about the activities – learning how to surf, scuba diving, snorkeling, going deep sea fishing, and more. These stories could be split further by skill. For example, are you already certified scuba diver or just a beginner?
Strategy #4: Segmentation
Understanding your users are a critical step for splitting strategies. It allows you to focus on what is in it for them. Which helps you align your solutions with their evolving needs. Segmentation hyper-focuses your marketing and creates efficiency around what they care about. If you are getting stuck on the user, think about ways you can segment your customer. Segmentation is dividing your customers into common characteristic groups. The most common categories are demographics, geographic, lifestyle, and behavioral. Here is a quick lesson with examples:
- Demographic – age, race, religion, gender, family size, ethnicity, income, and education.
- As a soccer mom, I want to advertise in the PTA newletter, so that parents will learn more about our soccer team.
- Geographic information – cities, countries, international regions, college, and community.
- As a rural college student, I want a theme-food night in the cafeteria, so that I can have more variety.
- Lifestyle (psychographics) – consumer attitudes, values, behaviors, emotions, perceptions, beliefs, and interests.
- As a breast cancer survivor, I want a natural remedies blog, so that I can support Susan G Komen Foundation.
- Behavioral data – how they act when making decisions, i.e., usage habits and brand loyalty.
- As a single mom, I want under 20-minute recipes, so that I can get my kids to bed on time.
Segmentation is a great option to generate ideas. Don’t go at it alone. Get a subject matter expert and people who understand the customer to work with you. A different segment can put a welcomed spin on user stories. You will learn a lot through this exercise.
Strategy #5: Personas
Sometimes, life is simply about not missing any requirements. It is impossible to know all the requirements upfront. Due diligence must be taken when curating any product backlog. False starts and quick starts can be an enemy lurking in the bush. Waiting to sabotage us when we have a release. We must be vigilant and allow feedback to helps us. Some people will use personas after a problem has occurred. The most effective teams create a cast of characters in the beginning. These characters will evolve as the product evolves. Let’s hop over to a healthcare company. There are implementing a single sign-on feature. Take a look at this story. As a user, I want to use my company login to log into internal services, so that I don’t have to re-enter my login and password each time I use one of these services.
- Demo credential check on initial login
- Demo other services require no action when logged in
- Demo credential check when logged out
Here’s a quick lesson. An emergency room nurse named Nancy, who has 20 years of experience. She is married with two children. Nancy loves the ability to think on her feet with the everyday challenges of the emergency room. She prides herself on saving lives and taking care of people like her granny, Madear. Nancy is frustrated by the fact the she has to log into a system to get a phone number when a patient’s life is on the line. Overall, Nancy loves her career. Let’s look at another story that was missed: As Nancy the Nurse, I need unobstructed access to the online directory, so I can handle emergencies. If you have not figured it out, Nancy is a fictitious person. She represents a reliable and realistic market segment. She is a persona. Each persona can help dive into the background, behaviors, and motivations of users. Real people can be odd and quirky. Nancy helps to focus our creation of stories and sometimes find the ones that are missing. Another story may serve a purpose by addressing a specific need. Regardless of your reason personas are a fantastic technique. Don’t forget this splitting strategy. It may save you a lot of time.
Strategy #6: Compliance And Business Rules
Every business has internal policy compliance, industry standards, and business rules. Each story must weave a path through practices and procedures of the organization. The entire team must understand the nuances of these things. Remember the eCommerce website scenario. “As an online shopper, I want to pay for my order so that my item will be shipped directly to me.” A few compliance and business rules might include::
- Free shipping on all orders over $25.
- The use of CCV code, billing address, and name to authorize and capture
- All orders must be at least $10 to remain profitable.
- Shipping may only be allowed within the US and Canada.
- Unpaid shopping carts may be automatically emptied after 24 hours, as to not tie up inventory.
These are examples of standard practices we are already familiar with. More insight and information may be required for complex stories or situations. For example, HIPPA law compliance is extremely important in healthcare. Or regulations related to utilities. Testing compliance with these rules and standards is essential. Yes, every story must be tested for function and accuracy. Heavy fines can be levied when non-compliance is shown. For example, security flaws with major tech companies are all over the news. In today’s world, the end user’s privacy and security are at stake. Organizations have lost money and market share to these issues.
Strategy #7: Operations
Some believe that operations are organization level. If this is your belief, please refer to splitting strategies by role or workflow. Operations are a splitting strategy focused at the story level. Does your story have multiple operations? Think about the old-school split – CRUD (Create, Read, Update or Delete.) Another way to think of it – Add, View, Update or Delete. It empowers the end user to perform their work and manage products and properties with ease. For example, a graphic designer using an online design tool could:
- Create and save new designs.
- Edit or update designs.
- Delete designs.
- Export, download, print, or share their designs.
If they could only create and save a design, the tool would not be useful. Always think:
- What if an action is not complete?
- What if an action is not done right the first time?
- What if an action needs to be changed for any reason after it is completed and saved?
This will help everyone get into the mindset of the end user. Also, learn to explore the growing range of product properties.
Strategy #8: Split By Technology
Technology is a significant driver of innovation via platform or channel. Specialization has become a factor in today’s world. Solutions are more complicated than ever. Input options and technology can create the need for splitting a user story. For example, you may need a split for viewing inventory or placing online orders for:
- Desktop (Mac or PC)
- Smartphone (iOS or Android
- Laptop and Notebook
Consider the industry and users that you serve. It can have an impact on how you prioritized the Product Backlog. Think about the impact of interconnected devices in every industry.
Strategy #9a: Specified Search Filters And Parameters
You will need to consider providing specified search filters and parameters. This goes beyond the standard “search” box, but there should be a search box. The goal of identifying the most useful filters and parameters is it makes easier for the user. This might include parameters such as:
- Searching clients by first name, last name or company.
- Searching product inventory by color, size, brand name, or price range.
- Searching invoices by invoice number, date range, or dollar amount.
- Analyzing reports by the line items, month, and revenue. I would personalize and visualize data in ways most meaningful to the end user.
- Searching a shoe website for men, women, kids. Then break it down even more, by business, casual, beach, brand, and more.
For a shoe website, a Product Owner may prioritize by splitting men, women, kids first. Or by shoe brand, due to business conditions changing. Other categories may become an option as their inventory increases.
Strategy #9b: Optimizers And Acceptance Criteria
Optimizers are similar to filters and parameters. Thinking in terms of optimizing can make the story easier to split. For example, a local mobile restaurant finder app may allow users to search by:
- Restaurant, coffee shop, casual, brunch, dinner, etc.
- Italian, Chinese, American, etc.
- Fast food, fine dining, health food, vegan, etc.
- What is closest to the user’s current GPS location.
- By distance, neighborhood, zip code, city, state, country, etc.
- Price range, ratings, reviews, etc.
Use acceptance criteria to empower the end users to limit or restrict their search. You may be familiar with the long list of acceptance options you can use to refine their search, i.e., AirBnB. The process starts with city/state/country or the date you need the reservations. Then you can narrow down into a list of options further by over 100 options, including:
- Price range.
- Guest bedroom, shared room, an entire home.
- The number of beds required.
- Shared or private bathroom.
- Amenities such as kitchen, Wi-Fi, washer dryer, coffee maker, etc.
- House rules such as if pets are allowed.
- Luxury or standard.
With the long list of acceptance criteria, end users don’t have to waste their time browsing the listings. Trying to find what they are looking for. It is nice to place the user exactly where they want to be. Or inform them that there is nothing available in that date range. While the company doesn’t make a sale, they also don’t waste their clients time.
Strategy #10: Cross-Cutting Concerns
The goal of a feature is to save time for the user. Yet, there is functionality that is needed or expected that only concerns the user if it impacts their time. Some of these features are nonfunctional requirements, while others have an architectural component. These things are called cross-cutting concerns, which cuts across multiple areas of functionality. Many stories can be impacted by this.
- Some examples are:
- Transaction management
- Error handling
This a small list of cross-cutting concerns that may impact you. Consider removing cross-cutting concerns and creating a separate story for it. The entire team will be able to focus on the work independently. This splitting strategy is a common one for you to use.
Strategy #11: Get Feedback – When nothing else works
So not a single strategy worked for you. You have racked your brain and done all the research you can do. These user stories are so complex that they cannot realistically be vertically split. Or, there is too much uncertainty behind the story to create a split. As an agile framework, this is not a problem. When a user story is too complicated, it can be spread out over multiple Sprints. For example, significant work is required to meet industry compliance. This should be infrequent. It is too challenging to calculate the time and resources required honestly. However, horizontal splits are sometimes unavoidable. Make sure the strategy is robust, and the updates are frequent. Your goal to get feedback in the shortest amount of time. If the user story is not yet fully realized, the team may determine that the best course of action is to create a spike. A spike is a time-blocked research task, with measurable goals. The team can revisit how to define, refine, and vertically split the user story afterward. If the spike is complicated, sometimes the best move is to continue with the research. Spikes are common when working with new technology or innovations. However, you must not rely on spikes when you lack confidence in your delivery. Spikes should decrease over time along with risk.
Wow! What About Stories That Can’t Be Split?
It’s true, not every user story needs to be split. Take a moment for caution here. As a team, ask yourself collectively if you need to innovatte. Also, teams must avoid the mistake of failing to consider if common scenarios need to be split. It is often the splitting of common user stories that provide a competitive edge. Make sure you are explore all your options. For example, if a restaurant wants to offer online ordering and delivery. You must consider the little things live patrons for. This might include:
- Seeing the daily specials.
- The ability to substitute items.
- Caloric info.
- Diabetic friendly, gluten-free, nut-free menu items.
- No wait for grab and go options.
Instead of just offering up a menu, these options make it easier for the customer and increase customer satisfaction and repeat business.
Won’t All These Splits Make Extend The Timeline?
The exact opposite is true! Pick any product, and user stories are a match made in heaven. When it comes to delivering value, we want to get it right the first time. Find ways to increase productivity and improve communication. If you are living and breathing Agile, you can pick any framework. It will help you simplify things and focus on the user when you add stories. This gives you a better chance of finding that 80/20 sweet spot. Remember constant evolution of technology will always lead to more functionality. Agile encourages breaking down functionality, reducing risk, increasing flow, and reducing costs. Yes, this can result in significantly more user stories. Yet, it is an accurate representation of the product and gives a greater opportunity to satisfy the customer. This empowers cross-functional teams to innovate and share accountability. The result is a transparent team where everyone works to their full potential.Imagine a Product Backlog of simple user stories where each story can be ordered based on value. The team works on the high-value targets first. Whether your constraint is date or resources, you can still get the most value. This keeps users happy and coming back for more.
Learning how, why, and where to split user stories is not always intuitive. It becomes a healthy professional challenge to use splitting strategies. Please understand that practice makes you not so perfect. Think of it as an art where the canvas is your user story. Everyone will paint different ideas and use a multitude of approaches. The more practice you have splitting stories, the more proficient you will become. In a perfect world, take a never-ending iterative approach and enjoy the journey.