2

As a user... I want to .., so that...
Here, we are collecting the requirement as a BA, and the user says the so that part while the BA understands and writes the As a user.. I want to.. part, some clarity on this would be nice.

I am not sure which parts of the user story are gathered from the interview and which parts the BA incorporates from their own thinking.

If the user story is totally a requirement from the user, should the BA ask the question so that the user says, "As a user, I want to... so that I can..." Is that correct? I am a bit confused cause would an user ever word it exactly as such.

6
  • I am not sure, which parts of the user story is gathered from the interview, and which parts the BA puts from their own thinking, that is why I asked to get it clarified
    – D Jay
    Commented Oct 23 at 20:37
  • I have trouble to understand what you mean by "totally a requirement from the user". A user story is a sentence which describes a requirement from the perspective of an end user. Who writes this sentence down is completely irrelevant. It is also irrelevant if the requirement is collected by an interview, if it is extracted from some formal spec or completely invented by some person
    – Doc Brown
    Commented Oct 23 at 20:38
  • So we have to ask the question so that the user says in the way As a user.. I want to.. so that I can.. is that correct?
    – D Jay
    Commented Oct 23 at 20:40
  • 1
    I think I understand the premise of the question now. There is a misunderstanding here. Commented Oct 23 at 20:41
  • 1
    No, it is not correct.
    – Doc Brown
    Commented Oct 23 at 20:42

4 Answers 4

7

If the user story is totally a requirement from the user, should the BA ask the question so that the user says, "As a user, I want to... so that I can..."

Don't take this too literally. They do not literally expect:

Business Analyst: What do you want us to build?

End User: I need an easy way to do XXX.

Business Analyst: I'm sorry, that's not a valid user story.

End User: Ok. As a user, I want to XXX so that YYY.

Users aren't robots. At best, you'll get requests like "Can you add a button that does ABC?" Then you need to ask the user why they need a button that does ABC about 19 times to finally understand their problem and their end goal. Once you have this end goal, anyone comfortable writing it in this format can do so, with a few caveats:

  • Some organizations assign this responsibility explicitly to a Business Analyst, Product Owner, or occasionally a Lead Developer. This is at the discretion of the organization rather than some industry best practice.

  • The person writing the user story should be familiar with the "As a user... I want to... so that..." format.

When in doubt, ask your team or your supervisor. Don't over-think this.

3
  • would you have some reference that would help me to ask some questions to extract requirements from the user, I am working to automate a current manual administrative process
    – D Jay
    Commented Oct 23 at 21:40
  • 2
    @DJay I wish there was one true way to get requirements from users. The closest I've found is to talk to your users. Know that software is about people first, solving problems second, and technology third (with security woven throughout all three). You might be interested in the Agile Manifesto and Human-Centered Design. Volumes of books have been written on the topic as well. Commented Oct 23 at 23:31
  • 1
    +1 for the "ask the User Why? ... 19 times". What they initially say they /want/ is all too often nothing like what they actually /need/!
    – Phill W.
    Commented Oct 24 at 8:21
6

The question exposes some fundamental misunderstandings in what a user story is.

The first misconception is about what a user story is.

Stories originate from Extreme Programming. A core practice of XP is to, as Kent Beck puts it in Extreme Programming Explained 2nd Edition, "plan using units of customer-visible functionality". User stories are those units of customer-visible functionality. He gives several examples in the book: "handle five times the traffic with the same response time" and "provide a two-click way for users to dial frequently used numbers".

The earliest XP teams wrote these stories on physical cards, often index cards. These cards would have a brief description or title and enough information to help the team create acceptance tests, design a solution, then implement and verify it using the acceptance tests. Any key constraints would also be added. In the end, though, it all fit onto an index card.

The "as an X, I want Y so that Z" structure is known as the Connextra format, named after the company where it was popularized. This format is designed to give some additional structure to the user story so the team can capture the critical information about the user(s) being served by implementing the story.

In today's world, with teams that are no longer colocated (and even widely geographically distributed), electronic tooling has replaced physical cards for many teams. Teams, embracing a fundamental tenant of Agile Software Development to "uncover better ways of developing software by doing it and helping others do it", have developed other structures for stories.

The second misconception is about collecting requirements.

The earliest XP team was building software for internal business use. Another principle of XP was that the customer is always available. This was realized by having the onsite customer embedded alongside the developers on the team. However, since the team was working on an internal business application, they had ready access to business sponsors or users by walking down the hall.

Although teams are using agile methods for building internal business applications, producing software for sale in the marketplace is also common. When producing commercially available software for various customers and users, the variations in their needs and expectations grow. Product managers, business analysts, and other people gathering requirements from stakeholders have to talk to many more people and often deal with a lot more conflicting demands.

Domain-driven design, especially the concepts of domains, bounded contexts, and ubiquitous language, has given developers practices to improve system modeling. However, human language is still messy. Even business users within a single company may not share a common language, and as the scope of prospective users and customers grows, the language expands. Trying to get a user to express an unstructured idea using a common language is a challenge, much less trying to force a structured answer that users will likely be unfamiliar with.

Customer research, user research, and competitive intelligence will drive the product vision, strategy, roadmap, and requirements. You most likely cannot walk away from one, or even several, interviews with requirements. You'll get ideas that need to fit into a much broader picture.

4

You seem to be stuck in the (IMHO weird) idea of a user story being always something which is created by a business analyst making an interview with a user.

Sorry, but this is just a thought model, a simplistic example of how a user story might be created, but definitely not the only or the only correct possibility (probably not even the most frequent one).

A user story is just a sentence or phrase which describes a requirement from the perspective of an end user .

  • Who writes this sentence down is completely irrelevant. It could be an analyst, users by themselves, a developer, or any other kind of stakeholder. The person just has to "wear a user's hat" (metaphorically).

  • If the requirement is found by an interview, or during some brain storming session, if it is extracted from some existing documents, by analysing some UI of a competing product or completely invented by some ingenious person does not matter. Typically, it is a mixture of all these techniques.

  • This applies also for the different parts of the sentence.

So do yourself a favor and don't overthink this.

2

You have a user who is very, very good at handling insurance claims and rubbish at software development and on writing down user requirements.

The user stories are your job as the software developer. Or better yet, your manager’s job who doesn’t care about technical difficulties but about what users need. In that case you should have an opinion about the cost that different options have and tell them - whoever sets user requirements shouldn’t be influenced by their likely wrong opinion of cost.

In other words, you might tell the manager “you have nine points in your user story. Eight of them are easy and can be done in a week each, but the ninth is very difficult and will take 8 weeks alone”. It’s then up to the manager if he wants eight points in eight weeks or nine points in 16 weeks. The manager should not guess what is how hard, because if he gets it wrong, easy tasks won’t be done.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.