User stories are split like wires.

User stories are split like wires.

Thinly slicing functionality by splitting user stories helps teams to focus their activity on quickly delivering work that is meaningful to the user. Another pattern useful for splitting user stories is the concept of the elementary process defined by the International Function Point User Group (IFPUG) as the “smallest unit of activity that is meaningful to the user”.

The process of splitting user stories into elementary processes can be paraphrased by three criteria that can be easily applied. The criteria are:

  1. Is the story meaningful to the user?
  2. Does the story represent a single, functionally useful element?
  3. Is the story self-contained (independent)?

Note:  As a Certified Function Point Specialist, I am aware that this is a simplification of the process used in IFPUG Function Point Counting to identify elementary processes.  The goal of using the elementary process logic is to provide a framework/pattern for breaking large user stories into more manageable chunks, not to preprocess the stories to make function point counting a rote process.

Leveraging the time accounting example I began in Splitting User Stories by Workflow, a large user story (also known as an epic) for logging and maintaining time accounting data could be written as:

As a time accounting user, I want to maintain my time so that I can account for the work I do.

Anyone that has ever had to use a time accounting system can relate to this story.  The word ‘maintained’ typically has special meaning to anyone that has counting function points. By general convention the word maintain(ed) means adding, changing, deleting and displaying.  These are four separate business functions.  Applying our elementary process criteria to the large story.

Untitled

Based on the application on the elementary process pattern this user story would need to be split.  If we break the story into four separate stories (after a conversation with the product owner) the new stories would be:

  1. As a time accounting user, I want to add my time to my time card so I can account for the work I do.
  2. As a time accounting user, I want to display the time I entered so I can ensure I entered my time correctly.
  3. As a time accounting user, I want to change the time I previously entered so I can fix my mistakes.
  4. As a time accounting user, I want to delete time I entered in case I enter the wrong week or day.

Applying the simplified elementary process criteria:


Untitled2

Splitting the large story based on the elementary process pattern generates more four granular stories. The elementary process pattern yields user stories that also fit INVEST criteria that has been found useful to judging user stories.

Advertisements