Title: Agile Methods and User-Centered Design
1Agile Methods and User-Centered Design Recent
Work
2Overview (In Case I Get Lost)
- Intro to agile
- Problems
- Intro to User Centered Design
- Where is it?
- A question of design
- Can they be combined?
- Various attempts
- Summary
3What is Agile
- 4 values 12 principles
- Existing types, and custom builds
- Incremental development, iterations, flexibility
- Communication
- Emerging development (YAGNI), no (BDUF) or
framework development - Emphasis on testing
- Generalists
- Project vision???
- About code and development (inward focus)
- Tacit knowledge sharing
4Misconceptions
- Agility isnt about speed
- Less of a process and more of a set of heuristics
5Problems
- Agile might not scale
- Inward focused (Code Centric)
- Separating design from engineering
- The customer is the expert
- User stories written by customers, not users
6Thinking Like an Engineer
- Draw a table named person. The table should have
4 columns named - NAME
- AGE
- HEIGHT
- WEIGHT
Answer
7UCD from IBMhttp//www-306.ibm.com/ibm/easy/eou_e
xt.nsf/publish/2
- Norman and Draper 1986
- User-Centered Design is a method for designing
ease of use into the total user experience with
products. It enables organizations to
consistently develop engaging products that are
easy to buy, easy to set up, easy to learn, easy
to use, and easy to upgrade. It calls for a
multidisciplinary team to design everything the
user sees and touches and to gather user input
and feedback during each stage of the development
process.
8IBM Messages for Promoting UCD
- Is your technology showing?
- Nobody buys ease of use, but nobody buys products
without it either - Ease of use may be invisible, but its absence
sure isnt - Want to make the most of the e-business
opportunity? - Do you know who your users are?
- Engineering the killer app isnt exactly childs
play. But using it better be (difficult to use
systems fail)
9Others?
10Where is it ?
11Design for Developers
- Consistent interface
- Clear vision for product
- Reasonable expectations of technology
- Others?
12Design for Users
- Gulfs of understanding
- Consistency
- Simplicity
- Memory issues
- Status indicators
- HCI and design
13You dont need to understand how this works to
tell the time.
lt-Back
14http//pages.cpsc.ucalgary.ca/tamj/481/
15Can we Combine Them?
- User input early in the process (human-centric)
- Prototyping
- Evolutionary design
- Iterations
- Light documentation
- Rates of change
16Can we Combine Them?Boem and Turner
- 6 Observations
- Neither agile nor plan-driven methods provide a
silver bullet - Agile and plan driven have a home ground
- Future trends are toward hybrids
- Balanced methods emerging
- Better to build up than to tailor down.
- Methods are important, but silver bullets are
more likely to be found dealing with people,
values, communications and expectations
management
17User Centered Design (Light)?
- Usage Centered Design http//www.foruse.com/
Constantine and Lockwood - Discount Usability Engineering, Jakob Nielson,
www.useit.com - Alan Coopers Interaction Design ???
- Rapid Contextual Design http//www.incent.com/cd/c
dhow.html - Code Science http//www.stsc.hill.af.mil/crosstalk
/2002/10/manzo.html - Jeff Patton incorporating Usage Centered Design
into an agile software development environment.
18Usage Centered Design
- Model driven approach
- Role model
- Task model
- Content model
- Essential model
19UCD Model Driven Approach
20Use Case VS Task Case
21Key Differences Between UCD and UCD
22Discount Usability Engineering
- Method for evaluation interfaces
- Scenarios
- Simplified thinking aloud
- Heuristic evaluation
- Validating discount usability engineering
23Scenarios
- Horizontal prototype
- Vertical prototype
- Paper mockups
lt-Back
24Simplified Thinking Aloud
lt-Back
25Heuristic Evaluationhttp//www.useit.com/papers/h
euristic/heuristic_list.html
- Visibility of system status
- The system should always keep users informed
about what is going on, through appropriate
feedback within reasonable time. - Match between system and the real world
- The system should speak the users' language, with
words, phrases and concepts familiar to the user,
rather than system-oriented terms. Follow
real-world conventions, making information appear
in a natural and logical order. - User control and freedom
- Users often choose system functions by mistake
and will need a clearly marked "emergency exit"
to leave the unwanted state without having to go
through an extended dialogue. Support undo and
redo. - Consistency and standards
- Users should not have to wonder whether different
words, situations, or actions mean the same
thing. Follow platform conventions. - Error prevention
- Even better than good error messages is a careful
design which prevents a problem from occurring in
the first place. - Recognition rather than recall
- Make objects, actions, and options visible. The
user should not have to remember information from
one part of the dialogue to another. Instructions
for use of the system should be visible or easily
retrievable whenever appropriate. - Flexibility and efficiency of use
- Accelerators -- unseen by the novice user -- may
often speed up the interaction for the expert
user such that the system can cater to both
inexperienced and experienced users. Allow users
to tailor frequent actions. - Aesthetic and minimalist design
- Dialogues should not contain information which is
irrelevant or rarely needed. Every extra unit of
information in a dialogue competes with the
relevant units of information and diminishes
their relative visibility. - Help users recognize, diagnose, and recover from
errors - Error messages should be expressed in plain
language (no codes), precisely indicate the
problem, and constructively suggest a solution. - Help and documentation
lt-Back
26Contextual Design
27Rapid Contextual Design (Defining the New
Process)
- Set focus
- Do contextual inquiries
- Build an affinity
- Introduce the larger team to customer roles and
data - The full team
- Build user stories
- Run a release planning process
- Prioritize and eliminate
- Design detailed user interfaces
- Test UIs
- Provide the user stories to development
- During iteration 1, UI team works on iteration 2
- Iterate as with agile methods, keeping the UI
team 1 iteration ahead of development.
Beyer, Holtzblatt (8)
28Code Science
- Based on XP
- Business process analysis
- Componentized architecture
- Automated contract and regression testing
- Story actors
- Wall Gantts
- Automatic document generation
- - 40 hour work week
- - Metaphor
- Code Science is registered in the U.S. Patent and
Trademark Office.
29Adding UCD to Agile (Patton)
30UCD Techniques Are Threaded Into An Agile
Development Cycle
Role-centric acceptance testing
Feature List
Role and Task information determine bug
criticality
Role Information Informs Priority
Role and Task information indicate scope cutting
opportunities
Reconcile Roles Goals With Tasks Features
Feature List
Context Modeling
Feature List
- Collaborative Requirements Worksession
- Role modeling, task modeling, context modeling,
span planning
31Customer Centered Response
- UCD big design up front
- Agile Let the design grow organically over
the course of the project - Can they co-exist?
- Living artifacts?
- Compromise between the two methods
- Picture of the overlap between the two circles
32Summary
- Integrating User-Centered Design into agile
methods attempts to solve the perceived problem
that current agile methodologies are not
adequately addressing user interface design
issues.
33References
- Agile Alliance, (2001) The Agile Manifesto,
http//www.agilemanifesto.org/ - Cooper, Alan. The inmates are running the Asylum,
SAMS, 1999 - Garrett, Jesse James. The elements of User
Experience, New York New Riders, 2003. - Constantine, Larry. Process Agility and Software
Usability Toward Lightweight Usage-Centered
Design 110 2002 http//www.foruse.com/articles/a
giledesign.htm - Constantine, Larry. Usage-Centered Engineering
for Web Applications 117 2002
http//www.foruse.com/articles/webapplications.htm
- Boehm, Barry and Turner, Richard. Observations on
Balancing Discipline and Agility
http//www.agiledevelopmentconference.com/2003/fil
es/P4Paper.pdf. - Brooks, Frederick. The Mythical Man-Month
Addison Wesley Longman Inc. 1995. - Patton, Jeff. Improving on Agility Adding
Usage-Centered Design to a Typical Agile Software
Development Environment http//www.abstractics.co
m/papers/AddingU-CDToAgileDevelopment.pdf
34References Continued
- Cockburn, Alistair. Crystal Clear,
Addison-Wesley, 2004. - Norman, Donald. The Design of Everyday Things,
Doubleday/Currency, 1988. - Manzo, John, AgileTek L.L.C. Odyssey and Other
Code Science Success Stories, http//www.stsc.hill
.af.mil/crosstalk/2002/10/manzo.html - Holtzblatt, Karen / Beyer, Hugh / Baker, Lisa. An
Agile User-Centered Method Rapid Contextual
Design, http//www.incent.com/ - Nielsen, Jakob. Guerrilla HCI Using Discount
Usability Engineering to Penetrate the
Intimidation Barrier. 1994. http//www.useit.com/p
apers/guerrilla_hci.html - Patton, Jeff. Improving on Agility Adding
Usage-Centered Design to a Typical Agile Software
Development Environment. 2003. http//www.abstract
ics.com/papers/AddingU-CDToAgileDevelopment.pdf
35New Concepts I learned
- User Experience Architecture
- User Interaction
- Affinity Clusters tasks that are likely to be
performed by the same role. - This is not yet finished, nor is it really part
of the presentation.
36My PERSON Table
lt-Back