Skip to main content

Author: Robert Galen

User Stories – Large Misconceptions. Part 1.

One of the larger misconceptions associated with user stories is that they are static; defined once and then never touched again. Another misconception is that they stand-alone as a requirement artifact. Another is that only a customer surrogate or product owner can write them. And finally, many miss the power of the acceptance tests as a clarifying vehicle for the story.

Over my next two posts, I want to address each of these in turn. Not only should these approaches help your user story writing, but your general requirements definition clarity and understanding should improve as well. And these misconceptions also assist distributed, non-local teams in eliciting stories that are more meaningful where they struggle to maintain active face-to-face communication.

User Stories are Organic!

If you study Scrum and product backlogs at all, you’ll realize that the backlog list of user stories evolves quite dynamically over time. Usually stories are created in a Story Writing Workshop at the beginning of a project effort. In this case the stories are often ill-defined and quite large-epics or even larger.

Coming out of the workshop, there is a tremendous amount of work to do on refining the stories, but certainly not all at once. The metaphor to keep in the back of your mind is – Tip of the Iceberg! You only need to refine the stories that are 1-2-3 or so iterations (Sprints) away from actual execution.

As you move forward, delivering those pre-defined stories, you actively groom the stories moving up on the backlog-getting them prepared for execution. Typically teams groom their product backlogs weekly. The process serves to refine the clarity surrounding each story. Often it will lead to other stories-breaking them into more meaningful units and discussing dependencies. Themes or packages of stories will emerge as well, as the product owner and team think about how best to couple stories into meaningful chunks for delivery.

The last and probably most important part of the dynamic is that the team factors in ongoing progress (execution velocity) and learning into their grooming.

While working with remote or distributed agile teams, it’s important to participate in these grooming sessions as a team. In this way, everyone is involved in the real-time conversations that are naturally part of backlog evolution.

User Stories are not a Catch-All Artifact!

The key driver for the content of requirements within agile team is the team itself. Let’s say a team member encounters a user story in a backlog grooming session that is simply too ill-defined to understand or estimate. However, they do understand the story well enough to suggest that-if they had a use case with it, one that was designed like one they’ve used/encountered before, they would have sufficient clarity to proceed.

In this case, they’re suggesting supplementing the Story with a known additional artifact form.

This is great!

Instead of trying to embellish the story as-is, simply link it to the newly created use case. In fact, it’s perfectly acceptable to link stories to all sorts of well known or used artifacts in your organization – traditional requirement (SRS) specifications, forms or templates, traditional use cases, agile use cases, wireframes, etc. All can effectively come into play to enhance and supplement your understanding of individual stories.

The caveat is that you don’t want to do this for every story. Let the individual cases or needs emerge from the team! Don’t create them too far in advance and certainly don’t create all user stories with the same level of detail. These extensions must come as requests from the team, i.e., they’re pulled as needed-preferably right before the implementation in the next iteration (sprint). Thus maintaining the just-enough and just-in-time nature of your story evolution.

One of the benefits of this approach is within distributed teams. These situations typically need richer documentation density with their requirements and this approach certainly provides it, while still maintaining an agile requirements approach.

As a final note, Alistair Cockburn has spent some time establishing the notion of Agile Use Cases. More information can be gleaned here on that topic – http://alistair.cockburn.us/Agile+Use+Cases

Next post, well finish with the other two misconceptions

Don’t forget to leave your comments below


Robert Bob’ Galen is the President and Principal Consultant of RGCG, L.L.C. Bob has held director, manager and contributor level positions in both software development and quality assurance organizations. He has over 25 years of experience working across a wide variety of software technology and product domains. Bob can be reached at [email protected].

Less than 10% Information Density!

I left off my last post alluding to the need for conversation as part of the requirement process-continuous, reflective, emergent, and ongoing communication. The conversations in this case are face-to-face discussion amongst the constituents who are tasked with implementing a specific feature or component.

Even more importantly, those conversations need to be skewed towards doing the work-not simply talking about doing the work. They occur while developers are writing and testing their code, reviewing snippets of working design. They occur while testers are testing snippets, small slices of working code, and seeing what works and what doesn’t-providing that feedback to the developers. They occur while the team shows the customer snippets of working code, checking if it meets expectations and providing real-time feedback. And they occur when the functionality is considered complete and checked off as done.

In a 1967 study, Mehrabian and Wiener analyzed the effectiveness and coverage of human communication. In that study, they found that written communication (documentation, email, instant messaging, etc.) only makes up about 7% of the overall information density potential of communication potential. The breakdown follows.

  • 7% of the communication bandwidth / potential was in the language
  • 38% …was in the Inflexion
  • 55% …was in the body language

Now there has been quite heated debate surrounding that study and how it may be applied. That it wasn’t focused on technology information exchange, but rather more emotionally charged communications. However, while I agree that it may be skewed, I also think there’s an important message embedded within it for our technical information exchange.

It’s that written documentation is probably the most error prone and least rich way for humans to communicate. Diagrams, pictures, and models certainly help-raising the bandwidth of the communication. However, the richest type of communication is when we interact face-to-face as teams. Where we can see each other and interact in that richer and higher capacity medium.

From a design perspective, some of my most successful projects were architected or designed collaboratively at the whiteboard and not at a computer. A small group gathered around the board and hashed out the design. We drew alternatives and discussed them-face-to-face. We explored strengths and weaknesses and reacted to what each others’ suggestions or critical points. When we looked back at the project, the entire team felt it was these critical moments of collaborative communication that were an important part of our critical success criteria.

In my last post I als spoke about the nature of the agile requirement artifact – the User Story. Stories are small, terse artifacts, which are left intentionally incomplete.

When an agile team plans a Story, they don’t invest too much time in it up front. Oh, they discuss it to understand the high level implications, but they defer much of the detail to later. They estimate it at a high level, while also deferring implementation details.

When they’re planning the Story for their very next iteration, they ask more questions, but again, not exhaustively. They also break the Story down into tasks for execution, and that helps drive additional conversation. Still, though, they have only explored 30, 40 or 50% of the clarity surrounding the guts of the Story.

It’s when they actually start to work on it that they flesh out the remaining details, usually in small groups. It’s this wonderful strategy of iteratively defining (and refining) your requirements that’s at the heart of agile methods. It’s allowing yourself to not fill in all of the blanks until you learn more…as you go, in a Just Enough and Just in Time fashion.

Now this is all fine, you might say, for small, co-located teams that can actually have face-to-face communication. What happens when you have real-world larger scale teams that are in distributed locations? Can these approaches still work? If there’s enough interest shown via comments that might be where I go next…

More information on the Mehrabian and Wiener study can be found here at http://en.wikipedia.org/wiki/Albert_Mehrabian

Don’t forget to leave your comments below


Robert Bob’ Galen is the President and Principal Consultant of RGCG, L.L.C. Bob has held director, manager and contributor level positions in both software development and quality assurance organizations. He has over 25 years of experience working across a wide variety of software technology and product domains. Bob can be reached at [email protected]

Intentionally Incomplete

This is my initial blog for BA Times and I’m certainly happy to be joining the community. So, a little about me-

My name is Bob Galen and I’m from Cary, North Carolina. I’ve spent the greater part of 25 years in software development-in roles such as developer, manager, director, project manager, tester, and project manager.

For the past 10 years, I’ve been moving my thinking and practices towards those espoused to the Agile Methodologies. I’ve found them to be the most congruent, humane, and effective approaches for delivering software and I try to share my insights with everyone I meet.

Perspectives – you’ll see a strong skew in my blog posts related to the following topic areas:

  • Implications of software testing for the BA
  • Implications of agility for the BA
  • And leadership and soft skills topics for the BA

So that gives you a feeling for coming attractions. But, enough of that…

A key requirement artifact in the agile community is the User Story. Mike Cohn does a nice job of covering them in his User Stories Explained book. I may go into more definition later on the topic, but I wanted to explore one critical characteristic of the user story now. That characteristic is this –

The user story is intentionally incomplete. Yes, you heard me right. It’s ambiguous. It’s got glaring holes. It fosters questions…lots of them. Those questions come from different perspectives too. The developers will have a different set than the testers. Or the BA. Or the architects. Or even the ‘customer’.

What’s the point of having a requirement that is ill-defined? I’ll tell you. It’s to drive conversation surrounding each requirement from the host of different perspectives needed for their implementation. You see the questions are expected…in fact, demanded in agile teams. There’s the agile manifesto notion of “People and Collaboration over Process and Tools” and the user story is an initiator of this collaboration.

I think of it not as two-way collaboration, but multi-way collaboration. Minimally, when a team member picks up the user story for implementation, they gather in a triad of three primary roles-the development-centric, testing-centric, and business/customer-centric views. They discuss the details of the story from each of their perspectives and refine it.

Not only refine it, but leverage all of the knowledge gleaned so far from previous story development and project execution. That’s a key here. You defer specific definition realizing you’ll gain richer information with each Sprint or Iteration that you execute. So this “working software” knowledge is also spun into the evolution of each user story. Another driver for this is Lean’s Just-in-Time and Just Enough thinking when it comes to software development. It turns out that we’re often quite presumptuous in our software development efforts. We assume that we can predict the future in requirements or design of software or even our planning without first writing some of the software.

That approach perhaps works for simple or by-rote things, but not for complex applications or those that are new, novel, and competitive solutions to our customers’ problems.

For those of you struggling with this conversation-based requirement approach, I’ll leave you with a final thought. Have you ever seen a written requirement drive development and testing work that, when you pulled the two together, the code didn’t match the tests? Of course you have. I’ve seen this occur way too often. So while writing requirements is good and necessary, the user story is perhaps touching on an important but missing element in our requirement elaboration.

To be continued…


Robert ‘Bob’ Galen is the President and Principal Consultant of RGCG, L.L.C. Bob has held director, manager and contributor level positions in both software development and quality assurance organizations. He has over 25 years of experience working across a wide variety of software technology and product domains. Bob can be reached at [email protected]