Title: Threading User Experience Work Into an Agile Development Approach
1Threading User Experience Work Into an Agile
Development Approach
- Jeff Patton
- ThoughtWorks Inc.
- jpatton_at_thoughtworks.com
2Stop me if I deviate too far from making these
points
Agile Development is fundamentally an Iterative
Development, Incremental Release approach.
Ux Techniques are Threaded into Agile
Development and Adapted to an Agile context
Ux techniques are used for Sufficient Up-Front
Design
3The Waterfall Model remains the traditional
software development approach
- Traditional design development steps broken
into phases - Workproducts produced at each phase handed off
to the next - Risks
- Errors in each phase are passed to the next
- Time overruns usually come out of development and
test resulting in poor quality
Requirements
Design
Development
Testing Validation
Deployment Maintenance
4The Spiral Model Introduced Incremental
Development in the 80s
- Iterative elaboration from prototype to finished
release - Important addition of planning risk evaluation
- Risks
- Product remains prototype till final spiral
revolution
5Origins Of Agility An Agile Timeline
- The Psychology of Computer Programming Gerald
Weinberg, 1971 - The Mythical Man Month, Fred Brooks, 1986
- Scrum, Ken Schwaber, Mike Beedle, 1986
- PeopleWare, DeMarco Lister, 1987
- Borlands Software Craftsmanship, 1994
- Dynamic Systems Development Methodology, 1994
- Crystal Methodologies, Alistair Cockburn, 1997
- Feature Driven Development, Jeff DeLuca, 1998
- Adaptive Software Development, Jim Highsmith,
2000 - Extreme Programming, Kent Beck, 2000 (origins in
1996)
6The Agile Alliance
- XPs success acts as a catalyst
- Meeting of 17 at Snowbird, Utah, 2001
- All disagree on specifics
- All agree they have something in common
- 4 principles of the Agile Manifesto
- www.agilealliance.org
7Agility is a Value System
- The agile alliance is based on 4 core values
- Individuals and Interactions Over Processes and
Tools - Working Software Over Comprehensive Documentation
- Customer Collaboration Over Contract Negotiation
- Responding To Change Over Following a Plan
- 12 additional statements support the 4 basic
values emphasizing - Iterative development and delivery
- People both individuals and teams
- Collaboration
- Technical excellence
8No Rules
- No specific way to be or not be agile
- Agile is the approach to a method, not the method
itself - The Pornography Rule
- "I can't define pornography,
- but I know it when I see it."
- --Supreme Court Justice Potter Stewart, 1964
- Use the 4 principles to evaluate a methodologys
Agility
9Agile Development Approaches Follow a Predictable
Cycle
- Feature or Story
- Expressed from business/user perspective
- Business value
- Estimable
- Feature List prioritized features
- Iteration
- 1-4 week timeox
Iteration Plan
Release Plan
- Incremental Release
- 1-6 Iterations
- Released internally or externally
Product/Project Charter
- Product or Project
- Perpetually released
10Granularity of Planning Over Time
Project Charter
Release Plan
Iteration Plan
Feature Design
Feature Development
detail
course grain
fine grain
11Ux Approaches Bring Valuable New Techniques to
the Party
Usability
Context Modeling
12Ux 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
13Planning Designing
Evaluating
Products Projects Strategy
Organizational Profiles User Interviews Contextual
Observation User Role Modeling Persona
Development Stakeholder Users
Organizational Goal Metrics User Goal Metrics
User Task Modeling Interaction Context
Modeling Process Storyboarding Span Planning
Collaborative Release Inspection Contextual
Observation Lightweight Usability Testing User
Interface Guidelines Poster Automated Guidelines
Testing Component Enforced Guidelines
Incremental Releases Scope Structure
User Task Cases Scenario Writing UI
Wireframes Development Tasks
Collaborative UI Inspection User Centric
Acceptance Testing
Iterative Development Skeleton
User Interface Prototyping Task Storyboarding
User Centric Acceptance Testing
Feature Development Surface
14User Experience Techniques Are Adapted To An
Agile Context
- Practice techniques collaboratively
- Goal build tacit knowledge within the
development team - Make technique self-documenting
- Can the technique be practices in such a way that
the result is a usable artifact? - Goal reduce formal documentation
- Apply the technique quickly
- Adjust the technique to yield suitable detail
- Avoid techniques that yield more detail than is
necessary for a given point in our lifecycle
- Make the results of the technique consumable by
the entire team? - Can the results be posted as an information
radiator? - Can the results be captured in an acceptance
test? baked in? - Bind to another agile technique hybrid
techniques
15Use Ux Techniques And Requirements Work Sessions
To Arrive At Sufficient Design Up Front
- Usage-Centered Design based collaborative
requirements work sessions - User role modeling
- User task modeling
- Context modeling
- Incremental release planning
- Project estimation
- Envisioning
- User profiling
- Task modeling
- UI prototyping
- Project estimation
16There are Pros and Notable Cons In Incorporating
Ux Techniques
- Benefits to using Ux approaches
- Features are traceable back through models/Ux
artifacts - Helps avoid thrash rebuilding features
repeatedly or reversing requirements decisions - Helps avoid perception of scope creep
unanticipated features are more easily
anticipated using user centered thinking - Increased user empathy throughout the team
- Problems with using Ux approaches
- Whos the customer? Ux blurs boundaries between
agile customer role and design/development team - Who pays for change when it inevitably occurs?
- Ux approaches often conflict with analysts
approaches culture clash - Analysts gather requirements
- Ux designers invent requirements
- Ux requires less common, harder to find skills
- Benefits are intangible difficult to quantify
17References
- Agile Software Development http//www.agileallian
ce.org/home - Extreme Programming http//www.extremeprogramming
.org/ - Scrum http//www.controlchaos.com/
- Crystal http//alistair.cockburn.us/
- Feature Driven Development http//www.featuredriv
endevelopment.com/ - UXnet http//www.uxnet.org/
- Usability Professionals Assoc.
http//www.upassoc.org/ - Garretts Elements of User Experience
http//www.jjg.net/elements/ - Constantine Lockwoods Usage-Centered Design
http//www.foruse.com/ - Jeff Pattons work http//www.abstractics.com/pap
ers/
18Threading UCD Into an Agile Development Approach
- Jeff Patton
- ThoughtWorks Inc.
- jpatton_at_thoughtworks.com