The current is just below the surface!

Where do user stories come from and where do they go?  Agile or not, the requirements, needs, and nuances of users and customers need to be collected, written down, prioritized, and groomed.  Even though this process sounds linear it usually happens over and over again during the cycle of value delivery.  The of techniques for gathering requirements and translating those requirements into products, features, epics and user stories are varied, and we will explore them. However, first, we need to define the typical path.   We will pick the journey up after strategic definition/vision (described in our article on hierarchy)  has been identified just as or before product definition.  Here is the basic flow:

Functional, non-functional and technical user stories need to be recognized and captured.   There are are sorts of techniques to get people to part with their ideas and needs.  These include discussion, prototyping, and storytelling.  Some techniques can be quite formal, such as joint application design (JAD); others can be quite informal, such as discussion.  In any scenario, the user needs must be stated (in some form or another) and then captured (identifying user needs and documenting those needs are inter-related) Many of the techniques for eliciting requirements/user stories can be used as validation techniques.  Techniques to consider include paper prototyping or the lean change canvas.

User stories (or requirements) need to be written down.  One of the most common formats for user stories and epics is persona/goal/benefit.  Formats for documenting features are extremely varied.  The core information that needs to be addressed for a feature is a simple description and who the feature is indented for.  Features, epics and user stories are captured as part of a product backlog.   The backlog can be used to generate a story map (walking skeleton, for example) and to identify the minimum viable product (MVP). Backlog visualization requires that the team captures user needs and that the backlog is organized.  Documentation is a useful tool for validation.  

Just capturing user stories, whether you write them on 3×5 inch card or meticulously key them in into a tool like Jira, is not the end of the user story life cycle.  Features need to be broken down into epics and epics into stories (and possibly stories into smaller stories).  As teams work with the backlog, they groom the work. Grooming includes making sure the story is stated correctly, that the team understands the item, and that it is decomposed and prioritized (remember the product owner is part of the team).

Items on a backlog do not represent a commitment for the team to act until they accept the work and pull it into the sprint or active queue.  Accepting work into the sprint (Scrum) or active queue (kanban or scrumban) represents the teams accepting the user story to be converted from words into software or some other deliverable.  The term ‘construction’ includes all of the tasks needed to generate a potentially shippable product. Using software as an example, tasks might include code, configuration, documentation, testing, and user acceptance.

Each step in the process happens in all but the most ad hoc processes. But they rarely happen in a purely linear fashion at a macro level.  It is easy to see the interrelationships and feedback loops between each and see an ad-hoc process. At a finite level, individual stories tend to follow a more linear path to delivery.  Stories are often voiced, captured and validated throughout the process. Teams plan capture needs and do the work needed to deliver value concurrently.  I consider the evolution of user needs to a shippable product to be like a river; there is a central channel with a current, but with lots of eddies that swirl away only to rejoin the current later on slowly influencing the path of the river.  Rivers combine complex (unpredictable) with complicated (predictable) processes, user stories follow a similar path.


Next:  The flow of user stories based on state.