Requirements - or - You Want Me To Do What?: CSE 442/542 - Software Engineering
Requirements - or - You Want Me To Do What?: CSE 442/542 - Software Engineering
REQUIREMENTS –OR–
YOU WANT ME TO DO WHAT?
CSE 442/542 – Software Engineering
Change Happens
Bersoff’s “First Law”
Changes
Changesinin
business
businessrequirements
requirements
Changes
Changesinin
technical
technicalrequirements
requirements
Changes
Changesinin
user
userrequirements
requirements other
documents
Project
data
Plan
Test Cases
code
Record Changes To
Requirements
Specifications
Design Documents
Source code
Comments
Test plans
Test suites
User & maintenance manuals
Standards
What To Record For Change
Properly handling change requires information:
Track reason why change needed
What was changed should be detailed
For the changes, any side-effects important to note
Detail of actual change should be tracked
Anything useful when apportioning blame or praise
Function of Version Control
specific thing
your system
has to do
to work correctly”
What’s the Problem?
Often see moving target problem
Requirements change immediately after creation
Continue to change until project ends
Stationary target difficult enough when coding
Are all your programming assignments simple?
Changing requirements complicate this even more
What’s the Problem?
Often see moving target problem
Requirements change immediately after creation
Continue to change until project ends
Stationary target difficult enough when coding
Are all your programming assignments simple?
Changing requirements complicate this even more
vs.
Why Do They Change?
Requirement is contradictory or inaccurate
Why Do They Change?
Requirement is contradictory or inaccurate
“Want” v. “Need” conflated by clients at start
Why Do They Change?
Requirement is contradictory or inaccurate
“Want” v. “Need” conflated by clients at start
Problems communicating with designers & coders
Why Do They Change?
Requirement is contradictory or inaccurate
“Want” v. “Need” conflated by clients at start
Problems communicating with designers & coders
Client changes their mind later on in the process
All Are Same Problem!
Communication
All Are Same Problem!
Communication
Must ensure every detail is explicit
Keep dictionary of important terms
Result of each requirement clearly explained
All Are Same Problem!
Communication
Must ensure every detail is explicit
Keep dictionary of important terms
Result of each requirement clearly explained
“As a gambler,
I place my bet.”
User Story Basics
Short statement of customer values and wants
User’s view of feature described often in first person
For each feature, explains why user wants/needs it
Story should be testable: successful results shown
Provides enough detail to create further client dialog
Each story often a sentence, rarely more than two
“As a gambler,
I place my bet.”
User Story Basics
Short statement of customer values and wants
User’s view of feature described often in first person
For each feature, explains why user wants/needs it
Story should be testable: successful results shown
Provides enough detail to create further client dialog
Each story often a sentence, rarely more than two
“As a gambler,
I want to play blackjack
so I place my bet.”
User Story Basics
Short statement of customer values and wants
User’s view of feature described often in first person
For each feature, explains why user wants/needs it
Story should be testable: successful results shown
Provides enough detail to create further client dialog
Each story often a sentence, rarely more than two
“As a gambler,
I want to play blackjack
so I place my bet
and get dealt a hand.”
User Story Basics
Short statement of customer values and wants
User’s view of feature described often in first person
For each feature, explains why user wants/needs it
Story should be testable: successful results shown
Provides enough detail to create further client dialog
Each story often a sentence, rarely more than two
“As a gambler,
I want to play blackjack
so I place my bet
and get dealt a hand.”
Be Wary of Details
“As a gambler,
I want to play blackjack
so I place my bet
and get dealt a hand.”
How is a bet is placed?
Possibilities include credit cards, chips, implantable IDs
This may change, but does not affect the players desire
Each story is part of a dialog may not be fully formed
Negotiations on details occur when stories developed
Many ideas never get coded, this avoids losing time
User Story Outline
“As a <role>,
I want <goal>
so I <action with testable result>.”
Most common template used for user stories
But these are stories, so templates not required/used
Lots of roles exist among the users of a system
Customer representative (or clients) present most ideas
Others may exist: big betters expect special treatment
Team brainstorm roles and see if stories might change
Bring ideas back to conversation: client has final say
User Story Outline
As a <role>,
I want <goal>
so I <action with
testable result>.
Stories Are Writing
Storytelling & writing are skills like any other
Kids’ stories hard to follow and often have no point
With age & lots of practice they will improve
Be Social!
Sprint Grading Part 1
10 minutes: document ease of onboarding developer
Project cannot stop for job changes (which do happen)
Explain how repo allows newbie get up-to-speed quickly
Progress on user stories & tasks associate with each
Likely next steps based upon current state of tasks
Simplicity of classes & commit message helpfulness