Wintertainment 2020 - Day 9: Getting Requirements From Your Customers

Wintertainment-2020-day9-top.png

 

Getting requirements from customers is key! Let's talk about this topic today.

As usual, don't forget to answer the questions at the end of the article to get the chance to win prizes.

See participation rules and event schedule

 

Getting Requirements From Your Customers

 

Before the arrival of Agile methods, requirements were often gathered in a waterfall phase before development started. Sometimes before the development team had even been hired. This approach led to many cost overruns and project failures.  

 

In response, lightweight methodologies began to emerge, which, with the publishing of the Agile Manifesto in 2001, were given the collective name “Agile. 

 

User stories 

 

Several Agile methods use user stories to capture high-level functionality that users of the system might need, but defer detailed requirements analysis until the functionality described by the story is about to be developed. Hence, the early description of a user story as a “placeholder for a conversation. 

 

User stories should not be thought of as requirements. Instead, they should be treated as descriptions of pieces of functionality that can be prioritised for delivery, which act as reminders of which requirements need to be discussed in detail next.  

 

Many Agile teams treat a user story as immutable during these discussions, but it is far more likely that the story will need to be updated (in response to insights gathered during discussions), or split into several/many smaller stories (to facilitate incremental delivery of multiple stories within each iteration). 

 

Deliberate discovery 

 

The conversations that result in detailed requirements are best conducted by small cross-functional groups. Traditionally, each group should contain at least one representative for the customer, the development team, and the test team – this led to the meeting being called “The Three Amigos. 

 

A more accurate name is “deliberate discovery, because the goal is to deliberately explore the story to uncover any ignorance we may have and discover the detailed requirements. 

 

To ensure that the maximum amount of knowledge is discovered (and captured), a technique called Example Mapping has been developed. In short workshops, the group explores their understanding of the story by creating concrete examples of how the finished functionality should behave. The goal is to identify the rules (requirements) that govern the system’s behaviour, and associated examples that clarify any ambiguities and edge cases. 

 

Living documentation 

 

Some teams go further, formulating the concrete examples using business terminology, then automating them using tools like Cucumber or SpecFlow. The resulting business-readable specification enables all stakeholders to participate in the evolution of the product. Automation of the specification guides development, and contributes automated acceptance tests that deliver value for the lifetime of the product. Additionally, the automation effectively makes the specification self-validating, meaning that the team (and any future team) has trustworthy documentation describing the delivered functionality. 

 

Traceability 

 

To manage risk, organisations need to know what functionality has been requested, what functionality has been delivered, and whether it works as expected. Whether tracked through heavyweight=requirement management tools (such as DOORS), or on an ad-hoc basis using spreadsheets, this sort of traceability has always been necessary. 

 

User stories are neither necessary nor sufficient to deliver traceability. The living documentation comprising of rules (business requirements), automated examples (acceptance tests), and results give comprehensive traceability from requirement to successful delivery. Even better, this traceability is as accessible to the customer as it is to the compliance professional. 

 

Getting the true value from Agile 

 

Customers know the business outcomes that they want, but turning this into detailed requirements is a challenge.  

 

Waterfall approaches don’t work well in fast moving, innovative marketplaces, which has led to the prevalence of Agile methods. Many organisations, however, haven’t successfully integrated requirements analysis into their Agile approach – either by treating user stories as requirement surrogates, or by writing detailed requirements in isolation. 

 

We need customer involvement throughout the delivery process and, to do this, we have to work in a collaborative way using inclusive techniques. Deliberate discovery using example mapping is one such approach. By capturing the examples as business-readable specifications, the customer can remain involved.  

 

By automating the specifications, the customer can watch functionality get delivered – and can be confident that when the product needs enhancements there will be reliable documentation available. And there will be traceability from requirement to acceptance test result as a side effect. 

 

Further reading 

 

 

What do you think? Comment below! 

 

We'd love to hear about your experience of getting requirements from your customer: 

  1. Is your customer involved in conversations with the delivery team? Should they be? Do they want to be? 
  2. Do you use user stories as requirements? What challenges, if any, have you experienced? 
  3. What effort do you have to make to ensure compliance with internal quality processes or external regulators? Is traceability something that your team cares about? 
sebrose
Staff
2 Comments
Marsha_R
Community Hero

Best to use my last job as an example again

1) Only the product owner was involved in gathering customer requirements.  The team got to review them afterwards though and ask many questions.

2) User stories contained requirements but they were not the source of truth.

3) We used definition of done at the Feature level to double check the internal processes.  Sometimes the customers had quality requirements too and we would review those with them at the start of the project and the end.  We had an external auditor come to us on a set schedule and he had access to everything, so we had to keep up with the internal processes because you never knew what project he would start investigating.

ApplePen
Community Leader

1) No, we don't involved in gathering customer requirements directly. Just get customer requirements from the other team.

2) We used the info from customer requirements and processed for user stories. As cannot contact with customer, the user stories whether are meaning. 

3)Just input Agile into our project. This article is very helpful. We need change our process in gathering customer requirements later.

Users online (342)
New Here?
Join us and watch the welcome video: