Top Banner
Gathering Requirements John Jannotti /course/cs0320/www/lectures/ Feb 22, 2018 John Jannotti (cs32) Gathering Requirements Feb 22, 2018 1/1
21

Gathering Requirements - Brown Universitycs.brown.edu/courses/cs032/lectures/requirements.pdf · Requirements Gathering ... Aim for questions with simple, ... John Jannotti (cs32)

Jul 31, 2018

Download

Documents

voliem
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Gathering Requirements - Brown Universitycs.brown.edu/courses/cs032/lectures/requirements.pdf · Requirements Gathering ... Aim for questions with simple, ... John Jannotti (cs32)

Gathering Requirements

John Jannotti

/course/cs0320/www/lectures/

Feb 22, 2018

John Jannotti (cs32) Gathering Requirements Feb 22, 2018 1 / 1

Page 2: Gathering Requirements - Brown Universitycs.brown.edu/courses/cs032/lectures/requirements.pdf · Requirements Gathering ... Aim for questions with simple, ... John Jannotti (cs32)

Forming groups

If you are already in a 4 person group, sit in the middle.

If you have a 2 person group sit to your right: =⇒If you are 1 or 3 people, sit to your left: ⇐=

John Jannotti (cs32) Gathering Requirements Feb 22, 2018 2 / 1

Page 3: Gathering Requirements - Brown Universitycs.brown.edu/courses/cs032/lectures/requirements.pdf · Requirements Gathering ... Aim for questions with simple, ... John Jannotti (cs32)

Course Announcements

Autocorrect is due tomorrow.

It’s time to think harder about groups.

The Piazza thread is not read-only!

Reminder: Maps partner cannot be in your project group.

John Jannotti (cs32) Gathering Requirements Feb 22, 2018 3 / 1

Page 4: Gathering Requirements - Brown Universitycs.brown.edu/courses/cs032/lectures/requirements.pdf · Requirements Gathering ... Aim for questions with simple, ... John Jannotti (cs32)

Project ideas

What sort of project would you like to build?

Software for a “business” need. (reservation/appt system, employeescheduler, data analysis, tax preparation).

Software for individual productivity. (learning tool, stock tracking,contact management)

A game (Settlers of Catan, poker, chess, Scrabble, your own take)

Social software (match buyers/sellers, group event planning,book/movie recomendations)

Something else

John Jannotti (cs32) Gathering Requirements Feb 22, 2018 4 / 1

Page 5: Gathering Requirements - Brown Universitycs.brown.edu/courses/cs032/lectures/requirements.pdf · Requirements Gathering ... Aim for questions with simple, ... John Jannotti (cs32)

Software Lifecyle

Requirements GatheringI What does the user want to accomplish? Prioritize.

SpecificationI Describe the software so that someone else could implement it.

Software DesignI Choose algorithms, data structures, architectures to divide the work

allow clean implementation.

Coding

Testing

MaintenanceI Often by another team. Don’t make them hate you.I But it’s often you, revisiting code you wrote a “long” time ago.

John Jannotti (cs32) Gathering Requirements Feb 22, 2018 5 / 1

Page 6: Gathering Requirements - Brown Universitycs.brown.edu/courses/cs032/lectures/requirements.pdf · Requirements Gathering ... Aim for questions with simple, ... John Jannotti (cs32)

Waterfall, Feedback, Agile. . .

A purely linear “lifecycle” has serious drawbacks.I The customers’ needs are unclear and may change.I It’s unclear what is difficult/easy to do.I The best design may evolve once coding begins.

“Agile” developmentI Iterates continuously. Weekly “releases.”I Keeps the user involved in the process.I We’ll demand many checkpoints, you’ll have to involve users.

John Jannotti (cs32) Gathering Requirements Feb 22, 2018 6 / 1

Page 7: Gathering Requirements - Brown Universitycs.brown.edu/courses/cs032/lectures/requirements.pdf · Requirements Gathering ... Aim for questions with simple, ... John Jannotti (cs32)

Requirements

Hopefully, you have a project idea.I What is the next step?

You can’t start programming, or even designing yet.I First, you need to know what to build.I You need to understand your problem domain deeply.I You need to know what the users want.

John Jannotti (cs32) Gathering Requirements Feb 22, 2018 7 / 1

Page 8: Gathering Requirements - Brown Universitycs.brown.edu/courses/cs032/lectures/requirements.pdf · Requirements Gathering ... Aim for questions with simple, ... John Jannotti (cs32)

Importance of Requirements

Poor requirements cause project failuresI 13% fail due to incomplete requirements.I 12% fail due to lack of user involvement.I 10% fail due to unrealistic expectations.I 9% fail due to changing requirements.I 7% fail because the system is no longer needed.

(Source lost to sands of time.)

John Jannotti (cs32) Gathering Requirements Feb 22, 2018 8 / 1

Page 9: Gathering Requirements - Brown Universitycs.brown.edu/courses/cs032/lectures/requirements.pdf · Requirements Gathering ... Aim for questions with simple, ... John Jannotti (cs32)

An on-going process

Take your first approximation seriously.I It will influence your basic spec/design.I Hardest to change.

It will change for bad reasonsI Can’t anticipate all the questions.I Users are fickle (or maybe you didn’t ask properly).

And good reasons: Building the system creates opportunities.I Build a prototype fast, get it in front of users.I If you prototype fast, you can throw it away.I Learn what matters most. Get better ideas.

Iterate!

John Jannotti (cs32) Gathering Requirements Feb 22, 2018 9 / 1

Page 10: Gathering Requirements - Brown Universitycs.brown.edu/courses/cs032/lectures/requirements.pdf · Requirements Gathering ... Aim for questions with simple, ... John Jannotti (cs32)

Purpose of Requirements

Provide an understanding of users’ needs.

How the system will be used.

What the system has to do for users.

Here is where a customer decides if they “got what they paid for.”

Acceptance criteria (grades, too).

John Jannotti (cs32) Gathering Requirements Feb 22, 2018 10 / 1

Page 11: Gathering Requirements - Brown Universitycs.brown.edu/courses/cs032/lectures/requirements.pdf · Requirements Gathering ... Aim for questions with simple, ... John Jannotti (cs32)

Gathering Requirements

Identify StakeholdersI Multiple kinds of users. (manager, host, cook, waiter)I Entities affected, other than users. (payroll, employees)I Entities with a say (regulation, TAs).

Observe and InterviewI Observation of existing workflowI Competitive analysisI Interviews >> Surveys >> Role playing >> NothingI User studies (on prototypes)

John Jannotti (cs32) Gathering Requirements Feb 22, 2018 11 / 1

Page 12: Gathering Requirements - Brown Universitycs.brown.edu/courses/cs032/lectures/requirements.pdf · Requirements Gathering ... Aim for questions with simple, ... John Jannotti (cs32)

Documenting

Describe ScenariosI Single use of the system.I Single feature or complete run.

Illustrate with Story boardsI Sequence of sketches of systems in action.I May include the UI, may include real-world actions.

John Jannotti (cs32) Gathering Requirements Feb 22, 2018 12 / 1

Page 13: Gathering Requirements - Brown Universitycs.brown.edu/courses/cs032/lectures/requirements.pdf · Requirements Gathering ... Aim for questions with simple, ... John Jannotti (cs32)

Goals

Define the problem from the viewpoint of users.

Determine outline of the “best” solution.

Determine what is required & optional.I Set priorities on features

Determine limitations on resourcesI Team, target architecture, interacting systems. . .

Determine acceptance criteriaI Requirements should be testable (not the automated kind).I Requirements should be precise.

Do not worry much about implementation.

John Jannotti (cs32) Gathering Requirements Feb 22, 2018 13 / 1

Page 14: Gathering Requirements - Brown Universitycs.brown.edu/courses/cs032/lectures/requirements.pdf · Requirements Gathering ... Aim for questions with simple, ... John Jannotti (cs32)

Interview stakeholders

Requires considerable preparationI Determine what information is needed.I Find out about interviewees – consider target demographics.I Decide on questions and organization.I An outline of talking points is insufficient. Think Repeatable.

ProcessI Move from general to specific questionsI Then end with very general questionsI Process

F Record Audio, VideoF Prefer Notes! Revisiting audio/video is tedious.F Summarize: Stories, Use cases, Scenarios, MisconceptionsF Follow-up: Keep contact info. You will be iterating.

John Jannotti (cs32) Gathering Requirements Feb 22, 2018 14 / 1

Page 15: Gathering Requirements - Brown Universitycs.brown.edu/courses/cs032/lectures/requirements.pdf · Requirements Gathering ... Aim for questions with simple, ... John Jannotti (cs32)

Questionnaires

Where there is a large set of users

These are hard to develop as wellI Opinion polling is big business, and yet polls disagree.I Try not to “lead the witness”.I But you want specific answers.

Aim for questions with simple, but informative answers.I Not: Do you get book recomendations from friends? (uninformative)I Better: How do you find interesting books? (complex)I Best: How did you come to read your last book?

Try to avoid bias, or “easy answers”I Would you like feature X? (The answer is always “Yes.”)I Better: Would you prefer X or Y?I Best(?): How would you like this to work?

Wrap up with open-ended questions.

John Jannotti (cs32) Gathering Requirements Feb 22, 2018 15 / 1

Page 16: Gathering Requirements - Brown Universitycs.brown.edu/courses/cs032/lectures/requirements.pdf · Requirements Gathering ... Aim for questions with simple, ... John Jannotti (cs32)

Observation

Critical if you are automating an existing process.

Competitive analysis is a form of this.

Be unobtrusive.

Avoid questioning early.

Interview or Questionnaire later.

A user study is a special (contrived by you) case.

John Jannotti (cs32) Gathering Requirements Feb 22, 2018 16 / 1

Page 17: Gathering Requirements - Brown Universitycs.brown.edu/courses/cs032/lectures/requirements.pdf · Requirements Gathering ... Aim for questions with simple, ... John Jannotti (cs32)

User Studies

Ask users to conduct specific tasks.I Proceed as an observer (unobtrusive, avoid early questions)I Ask only for their running commentary. Keep them talking.

You need (at least) a prototype.I Prototype could be (very) primitive.I Paper mockups can work.I Fake data (static screens)I Missing functionality (does the user even notice?)I “Wireframes” (keep discussion focused)

Role playing as a degenerate case — pretend to be a user.

Repeat as system matures.

Humbling, and yet so useful.I You will think your users are dumb.I Then you will realize that you are.

John Jannotti (cs32) Gathering Requirements Feb 22, 2018 17 / 1

Page 18: Gathering Requirements - Brown Universitycs.brown.edu/courses/cs032/lectures/requirements.pdf · Requirements Gathering ... Aim for questions with simple, ... John Jannotti (cs32)

Continuous Requirements

Requirements analysis is an ongoing processI Initially you get a set of use cases

F These will not fully cover requirements.F These are not even internally complete.F They will probably be inconsistent.F View these as a starting point

Keep the user involvedI Agile requirementsI A/B Testing

John Jannotti (cs32) Gathering Requirements Feb 22, 2018 18 / 1

Page 19: Gathering Requirements - Brown Universitycs.brown.edu/courses/cs032/lectures/requirements.pdf · Requirements Gathering ... Aim for questions with simple, ... John Jannotti (cs32)

Term Project Requirements

Who are your Stakeholders?I You must have a real consumer, or many standins.I Depends on target audience, but not just your group!I Document your process. We should be able to repeat it.

Describe the system as the user sees itI Scenarios describing functionalityI Survey/interview to get user input

Acceptance criteriaI What do you think constitutues passing? A-level work?

One to four pages

This will also help us match you to a TA.

John Jannotti (cs32) Gathering Requirements Feb 22, 2018 19 / 1

Page 20: Gathering Requirements - Brown Universitycs.brown.edu/courses/cs032/lectures/requirements.pdf · Requirements Gathering ... Aim for questions with simple, ... John Jannotti (cs32)

Anecdote time!

SightPath: SneakyBoot, Automatic topology formation

Foodler: Red and Pretty, Best Bets

A Few Billion Lines of Code LaterI Nice account of engineers selling to “engineers” (and still having

trouble nailing the requirements).I http://tinyurl.com/yb4rpc9

John Jannotti (cs32) Gathering Requirements Feb 22, 2018 20 / 1

Page 21: Gathering Requirements - Brown Universitycs.brown.edu/courses/cs032/lectures/requirements.pdf · Requirements Gathering ... Aim for questions with simple, ... John Jannotti (cs32)

Your turn.

Volunteers to describe their project, identify stakeholders, talk about howyou might gather requirements?

John Jannotti (cs32) Gathering Requirements Feb 22, 2018 21 / 1