Gallery
Student View
Share
Explore
Timeline

icon picker
R2

Requirements Realization

Why requirements are always not clear and constantly changing?
megaphone
Requirements are not collected but realized.

No One Knows Exactly What They Want

The real world is messy, conflicted, and unknown.
“People don't know what they want until you show it to them.” - Steve Jobs
Engineers spent countless hours solving problems that should not exist

Effective Programmers Help People Realize What They Really Want

Initial statement of need is just an invitation to explore
Requirements are Learned in a feedback loop
Feed back to clients the implications of what they say
mockups, prototypes
everything is mockup
asking “is this what you meant?”
in order to go from “that isn't what I meant” to “yeah, but more like this”
Work with a user to think like a user

Good requirements (document)

Why are things always in the last place you look for them? Because you stop looking when you find them! — CHILDREN’S RIDDLE
To plan the development, not for clients nor contracts
More details (but not too specific)
edge cases
implications
nuances
More abstract (but not vague)
can be configured to support small changes
can adapt to big changes
separation of concerns
More technical
incomprehensible or boring to the client
Eg. only coaches can access → only authorized users can read/edit
when policy change, no code need to be updated
contains details, technical terms, etc
Contains
statements of needs
simplest statements that accurately reflects the business needs
not architecture, not design, nor UI
user stories
what application should do from the perspective of a user of that functionality
glossary
avoid users and developers call the same thing by different names or different things by the same name

Don’t make me think

It doesn’t matter how many times I have to click, as long as each click is a mindless, unambiguous choice. —KRUG’S SECOND LAW OF USABILITY
How good software make us feel?
effortless: already knew how to use or very little learning
efficient: very little time to do what we need to do
Why?
We don’t read pages. We scan them.
We don’t make optimal choices. We satisfice.
We don’t figure out how things work. We muddle through.
How?
Design Billboard: use simple and less words, consistent visual cues, eg. clickable
no introduction
no instructions
Use Conventions: self-evident or self-explanatory
Make it obvious: sections, clickable, etc
Reduce noise
Search
Debate the right thing is more important than if that thing is right
Usability testing
you need fresh eyes
earlier is better
one user is better than none

Homework

Write a requirement document for student learning portal of an online university
The main purpose of the system is to help student learns throw all 3 methods of learning
Self experience, experiment and exploratory
Social learning with peers
Learn from professors, experts, etc
Only need to define features to support the end-users who are students
Don’t need to define features for staffs, teachers, etc
May include mock-ups, drawing, etc
It’s ok to use screenshots of others system as examples
Record a short videos to walk engineers through your vision of the system

References



Share
 
Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
CtrlP
) instead.