Deprecated: Assigning the return value of new by reference is deprecated in /homepages/21/d192906962/htdocs/agileux/wp-settings.php on line 512

Deprecated: Assigning the return value of new by reference is deprecated in /homepages/21/d192906962/htdocs/agileux/wp-settings.php on line 527

Deprecated: Assigning the return value of new by reference is deprecated in /homepages/21/d192906962/htdocs/agileux/wp-settings.php on line 534

Deprecated: Assigning the return value of new by reference is deprecated in /homepages/21/d192906962/htdocs/agileux/wp-settings.php on line 570

Strict Standards: Declaration of Walker_Page::start_lvl() should be compatible with Walker::start_lvl(&$output) in /homepages/21/d192906962/htdocs/agileux/wp-includes/classes.php on line 1199

Strict Standards: Declaration of Walker_Page::end_lvl() should be compatible with Walker::end_lvl(&$output) in /homepages/21/d192906962/htdocs/agileux/wp-includes/classes.php on line 1199

Strict Standards: Declaration of Walker_Page::start_el() should be compatible with Walker::start_el(&$output) in /homepages/21/d192906962/htdocs/agileux/wp-includes/classes.php on line 1199

Strict Standards: Declaration of Walker_Page::end_el() should be compatible with Walker::end_el(&$output) in /homepages/21/d192906962/htdocs/agileux/wp-includes/classes.php on line 1199

Strict Standards: Declaration of Walker_PageDropdown::start_el() should be compatible with Walker::start_el(&$output) in /homepages/21/d192906962/htdocs/agileux/wp-includes/classes.php on line 1244

Strict Standards: Declaration of Walker_Category::start_lvl() should be compatible with Walker::start_lvl(&$output) in /homepages/21/d192906962/htdocs/agileux/wp-includes/classes.php on line 1391

Strict Standards: Declaration of Walker_Category::end_lvl() should be compatible with Walker::end_lvl(&$output) in /homepages/21/d192906962/htdocs/agileux/wp-includes/classes.php on line 1391

Strict Standards: Declaration of Walker_Category::start_el() should be compatible with Walker::start_el(&$output) in /homepages/21/d192906962/htdocs/agileux/wp-includes/classes.php on line 1391

Strict Standards: Declaration of Walker_Category::end_el() should be compatible with Walker::end_el(&$output) in /homepages/21/d192906962/htdocs/agileux/wp-includes/classes.php on line 1391

Strict Standards: Declaration of Walker_CategoryDropdown::start_el() should be compatible with Walker::start_el(&$output) in /homepages/21/d192906962/htdocs/agileux/wp-includes/classes.php on line 1442

Strict Standards: Redefining already defined constructor for class wpdb in /homepages/21/d192906962/htdocs/agileux/wp-includes/wp-db.php on line 306

Deprecated: Assigning the return value of new by reference is deprecated in /homepages/21/d192906962/htdocs/agileux/wp-includes/cache.php on line 103

Strict Standards: Redefining already defined constructor for class WP_Object_Cache in /homepages/21/d192906962/htdocs/agileux/wp-includes/cache.php on line 431

Deprecated: Assigning the return value of new by reference is deprecated in /homepages/21/d192906962/htdocs/agileux/wp-includes/query.php on line 61

Deprecated: Assigning the return value of new by reference is deprecated in /homepages/21/d192906962/htdocs/agileux/wp-includes/theme.php on line 1109

Strict Standards: Declaration of Walker_Comment::start_lvl() should be compatible with Walker::start_lvl(&$output) in /homepages/21/d192906962/htdocs/agileux/wp-includes/comment-template.php on line 1266

Strict Standards: Declaration of Walker_Comment::end_lvl() should be compatible with Walker::end_lvl(&$output) in /homepages/21/d192906962/htdocs/agileux/wp-includes/comment-template.php on line 1266

Strict Standards: Declaration of Walker_Comment::start_el() should be compatible with Walker::start_el(&$output) in /homepages/21/d192906962/htdocs/agileux/wp-includes/comment-template.php on line 1266

Strict Standards: Declaration of Walker_Comment::end_el() should be compatible with Walker::end_el(&$output) in /homepages/21/d192906962/htdocs/agileux/wp-includes/comment-template.php on line 1266

Strict Standards: Redefining already defined constructor for class WP_Dependencies in /homepages/21/d192906962/htdocs/agileux/wp-includes/class.wp-dependencies.php on line 31

Strict Standards: Redefining already defined constructor for class WP_Http in /homepages/21/d192906962/htdocs/agileux/wp-includes/http.php on line 61

Strict Standards: call_user_func_array() expects parameter 1 to be a valid callback, non-static method GoogleSitemapGeneratorLoader::Enable() should not be called statically in /homepages/21/d192906962/htdocs/agileux/wp-includes/plugin.php on line 339

Strict Standards: strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Berlin' for 'CEST/2.0/DST' instead in /homepages/21/d192906962/htdocs/agileux/wp-includes/comment.php on line 1590
10 strategies to split large user stories | Agile UX
Strict Standards: call_user_func_array() expects parameter 1 to be a valid callback, non-static method GA_Filter::spool_analytics() should not be called statically in /homepages/21/d192906962/htdocs/agileux/wp-includes/plugin.php on line 339


Strict Standards: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Berlin' for 'CEST/2.0/DST' instead in /homepages/21/d192906962/htdocs/agileux/wp-content/themes/bible-scholar/header.php on line 50
Monday, April 23, 2018

Subscribe to the RSS Feed


Strict Standards: mktime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Berlin' for 'CEST/2.0/DST' instead in /homepages/21/d192906962/htdocs/agileux/wp-includes/functions.php on line 41

Strict Standards: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Berlin' for 'CEST/2.0/DST' instead in /homepages/21/d192906962/htdocs/agileux/wp-includes/functions.php on line 50

Strict Standards: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Berlin' for 'CEST/2.0/DST' instead in /homepages/21/d192906962/htdocs/agileux/wp-includes/functions.php on line 52

Strict Standards: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Berlin' for 'CEST/2.0/DST' instead in /homepages/21/d192906962/htdocs/agileux/wp-includes/functions.php on line 54

Strict Standards: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Berlin' for 'CEST/2.0/DST' instead in /homepages/21/d192906962/htdocs/agileux/wp-includes/functions.php on line 55

Strict Standards: mktime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Berlin' for 'CEST/2.0/DST' instead in /homepages/21/d192906962/htdocs/agileux/wp-includes/functions.php on line 41

Strict Standards: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Berlin' for 'CEST/2.0/DST' instead in /homepages/21/d192906962/htdocs/agileux/wp-includes/functions.php on line 50

Strict Standards: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Berlin' for 'CEST/2.0/DST' instead in /homepages/21/d192906962/htdocs/agileux/wp-includes/functions.php on line 52

Strict Standards: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Berlin' for 'CEST/2.0/DST' instead in /homepages/21/d192906962/htdocs/agileux/wp-includes/functions.php on line 54

Strict Standards: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Berlin' for 'CEST/2.0/DST' instead in /homepages/21/d192906962/htdocs/agileux/wp-includes/functions.php on line 55

10 strategies to split large user stories

Posted by jc-Qualitystreet on
Strict Standards: mktime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Berlin' for 'CEST/2.0/DST' instead in /homepages/21/d192906962/htdocs/agileux/wp-includes/functions.php on line 41

Strict Standards: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Berlin' for 'CEST/2.0/DST' instead in /homepages/21/d192906962/htdocs/agileux/wp-includes/functions.php on line 50

Strict Standards: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Berlin' for 'CEST/2.0/DST' instead in /homepages/21/d192906962/htdocs/agileux/wp-includes/functions.php on line 52

Strict Standards: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Berlin' for 'CEST/2.0/DST' instead in /homepages/21/d192906962/htdocs/agileux/wp-includes/functions.php on line 54

Strict Standards: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Berlin' for 'CEST/2.0/DST' instead in /homepages/21/d192906962/htdocs/agileux/wp-includes/functions.php on line 55
2011/04/19


Strict Standards: call_user_func_array() expects parameter 1 to be a valid callback, non-static method GA_Filter::the_content() should not be called statically in /homepages/21/d192906962/htdocs/agileux/wp-includes/plugin.php on line 166

Strict Standards: Non-static method GA_Filter::ga_parse_article_link() should not be called statically in /homepages/21/d192906962/htdocs/agileux/wp-content/plugins/google-analytics-for-wordpress/googleanalytics.php on line 440

Strict Standards: Non-static method GA_Filter::ga_parse_article_link() should not be called statically in /homepages/21/d192906962/htdocs/agileux/wp-content/plugins/google-analytics-for-wordpress/googleanalytics.php on line 440

Strict Standards: Non-static method GA_Filter::ga_parse_link() should not be called statically in /homepages/21/d192906962/htdocs/agileux/wp-content/plugins/google-analytics-for-wordpress/googleanalytics.php on line 430

Strict Standards: Non-static method GA_Filter::ga_get_domain() should not be called statically in /homepages/21/d192906962/htdocs/agileux/wp-content/plugins/google-analytics-for-wordpress/googleanalytics.php on line 410

Deprecated: Function split() is deprecated in /homepages/21/d192906962/htdocs/agileux/wp-content/plugins/google-analytics-for-wordpress/googleanalytics.php on line 413

Strict Standards: Non-static method GA_Filter::ga_parse_article_link() should not be called statically in /homepages/21/d192906962/htdocs/agileux/wp-content/plugins/google-analytics-for-wordpress/googleanalytics.php on line 440

Strict Standards: Non-static method GA_Filter::ga_parse_link() should not be called statically in /homepages/21/d192906962/htdocs/agileux/wp-content/plugins/google-analytics-for-wordpress/googleanalytics.php on line 430

Strict Standards: Non-static method GA_Filter::ga_get_domain() should not be called statically in /homepages/21/d192906962/htdocs/agileux/wp-content/plugins/google-analytics-for-wordpress/googleanalytics.php on line 410

Deprecated: Function split() is deprecated in /homepages/21/d192906962/htdocs/agileux/wp-content/plugins/google-analytics-for-wordpress/googleanalytics.php on line 413

A user story is a requirement of the system to be developed, a brief description of a feature as viewed by the user (Role → Goal), very popular on Agile projects.

“As a customer, I want to book a train ticket to go to Paris”

User Stories are usually associated to the 3C rule, quality criteria (INVEST) and the “User Voice” format

As a <User Role>
I can <Goal>
So That <Business Value>

user stories INVESTEd... goal oriented and customer-centric

user stories INVESTEd... goal oriented and customer-centric

Each user story must be estimated (by the team) and prioritized, but also SMALL ENOUGH to be delivered in a sprint (usually smallest teams take at least 3 stories per sprint). This is a necessity if you want to observe real benefits in terms of value delivery, visibility, flexibility, feedback and continuous improvement.

During my agile coaching activities, I am regularly asked to help the team and Product Owner to split user stories into smaller ones.

Here are the 10 strategies I use to effectively split large user stories:

1 Steps of a workflow

The user performs a task according to a well-established workflow. The large user story is split according to these steps in order to be developed incrementally. Each step has its own user story.

2 Scenario

By splitting a user story by scenario, you get a User Story for the main success scenario and other user stories for any errors or alternative paths:
when x happens, then…
when…, then

3 Sequence in a scenario

The case is more precise, you divide the story according to a specific sequence in a scenario.

4 Operations

Splitting a user story by operations is often the most obvious way to decompose. A CRUD (Create, Retrieve, Update, Delete) feature is a good example. Separate the CRUD or group two operations in a user story may be appropriate … to create an account, to view it, edit it and delete it.

5 Size or type of data

Pretty obvious too. You divide large user stories according to the type of object (e.g. various account types, messages in English, French, Spanish…)

6 Type of input, output or configuration

Variations in terms of material or not, on configurations but also in terms of input means or User Interface can lead to new and smaller user stories.

7 Persona or role

This time, you choose to break down the user stories based on the role or the persona who will use the product. This is a very good option easy if you use the user voice format or the Persona approach. The story mapping activity is a good way to visualize it.

8 Level of knowledge

The level of knowledge acquired on a feature is a good criterion of decomposition… You can get a specific story for what is known, another one for the unknown (leading to a spike and exploration activity)

9 Level of complexity

For example a user story can describe a feature in the simplest way of implementation, others will follow by a greater level of complexity or detail.

10 Level of quality expected

Performance, Security, Usability … these non-functional requirements are usually described in the elements of conversation, of a specific user story. There are conditions of satisfaction, but they can also help distinguish between these user stories (eg display it in less than 60 seconds, less than 30 sec; data in real time or not …)

Illustrations will be added progressively. If you want to participate, please submit your comments with your example and strategy number…


  • Strict Standards: call_user_func_array() expects parameter 1 to be a valid callback, non-static method GA_Filter::comment_author_link() should not be called statically in /homepages/21/d192906962/htdocs/agileux/wp-includes/plugin.php on line 166

    Strict Standards: Non-static method GA_Filter::ga_get_domain() should not be called statically in /homepages/21/d192906962/htdocs/agileux/wp-content/plugins/google-analytics-for-wordpress/googleanalytics.php on line 457

    Strict Standards: Non-static method GA_Filter::ga_get_domain() should not be called statically in /homepages/21/d192906962/htdocs/agileux/wp-content/plugins/google-analytics-for-wordpress/googleanalytics.php on line 459
    Vin D'Amico
    said,


    Strict Standards: call_user_func_array() expects parameter 1 to be a valid callback, non-static method GA_Filter::comment_text() should not be called statically in /homepages/21/d192906962/htdocs/agileux/wp-includes/plugin.php on line 166

    Strict Standards: Non-static method GA_Filter::ga_parse_comment_link() should not be called statically in /homepages/21/d192906962/htdocs/agileux/wp-content/plugins/google-analytics-for-wordpress/googleanalytics.php on line 446

    Excellent suggestions! Creating small stories is a huge problem for many agile developers. There is a tendency to generalize the stories but you can’t test generalities.

    Stories need to be specific and measurable. Your ideas represent excellent approaches to cutting stories down to size and making them actionable.


  • Strict Standards: call_user_func_array() expects parameter 1 to be a valid callback, non-static method GA_Filter::comment_author_link() should not be called statically in /homepages/21/d192906962/htdocs/agileux/wp-includes/plugin.php on line 166

    Strict Standards: Non-static method GA_Filter::ga_get_domain() should not be called statically in /homepages/21/d192906962/htdocs/agileux/wp-content/plugins/google-analytics-for-wordpress/googleanalytics.php on line 457

    Strict Standards: Non-static method GA_Filter::ga_get_domain() should not be called statically in /homepages/21/d192906962/htdocs/agileux/wp-content/plugins/google-analytics-for-wordpress/googleanalytics.php on line 459
    Pierre FAUVEL
    said,


    Strict Standards: call_user_func_array() expects parameter 1 to be a valid callback, non-static method GA_Filter::comment_text() should not be called statically in /homepages/21/d192906962/htdocs/agileux/wp-includes/plugin.php on line 166

    Strict Standards: Non-static method GA_Filter::ga_parse_comment_link() should not be called statically in /homepages/21/d192906962/htdocs/agileux/wp-content/plugins/google-analytics-for-wordpress/googleanalytics.php on line 446

    Hi, Jean Claude,
    I would add “level of priority”.
    Sometimes a user story can be split in two, one being of very high business value, one of less value. The fact that one is not very sure of the priority of a user story is a hint that it should be split.


  • Strict Standards: call_user_func_array() expects parameter 1 to be a valid callback, non-static method GA_Filter::comment_author_link() should not be called statically in /homepages/21/d192906962/htdocs/agileux/wp-includes/plugin.php on line 166

    Strict Standards: Non-static method GA_Filter::ga_get_domain() should not be called statically in /homepages/21/d192906962/htdocs/agileux/wp-content/plugins/google-analytics-for-wordpress/googleanalytics.php on line 457

    Strict Standards: Non-static method GA_Filter::ga_get_domain() should not be called statically in /homepages/21/d192906962/htdocs/agileux/wp-content/plugins/google-analytics-for-wordpress/googleanalytics.php on line 459
    Agile Scout
    said,


    Strict Standards: call_user_func_array() expects parameter 1 to be a valid callback, non-static method GA_Filter::comment_text() should not be called statically in /homepages/21/d192906962/htdocs/agileux/wp-includes/plugin.php on line 166

    Strict Standards: Non-static method GA_Filter::ga_parse_comment_link() should not be called statically in /homepages/21/d192906962/htdocs/agileux/wp-content/plugins/google-analytics-for-wordpress/googleanalytics.php on line 446

    Great tips on this! Thanks a bunch for posting this up!

home | top