JavaScript required
We’re sorry, but Coda doesn’t work properly without JavaScript enabled.
Gallery
Student View
Share
Explore
Gallery
Student View
Timeline
Intro
L1: Pricing
L2: UI
Cloud
Customer
Feedback
Extra requirements
R2
Killer Feature
Ideas
Be a Teacher
The Edge
Gem
Timeline
R2
Requirements Realization
Why requirements are always not clear and constantly changing?
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
Don't Make Me Think, Revisited: A Common Sense Approach to Web Usability (3rd Edition) (Voices That Matter)
Made to Stick: Why Some Ideas Survive and Others Die
Gallery
Share
Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
Ctrl
P
) instead.