Upload
megan-hines
View
217
Download
0
Tags:
Embed Size (px)
Citation preview
CSCD 487/587Human Computer Interface
Winter 2013
Lecture 18Software Design Models with Users
Overview
Models of software development– Waterfall, Spiral, Agile, Scrum
Don't necessarily focus on users as the driver
Show how User Centered design can fit within the most common process today, Agile
Software Development Process Models
Waterfall modelV modelPhased development: increments and iterationSpiral modelAgile methods
Waterfall Model
• One of the first process development models proposed
• Works for well understood problems with minimal or no changes in the requirements
• Simple and easy to explain to customers• It presents
– a very high-level view of the development process
– sequence of process activities
• Each major phase is marked by milestones and deliverables (artifacts)
2.2 Software Process ModelsWaterfall Model (continued)
Drawbacks of The Waterfall Model
Provides no guidance how to handle changes to products and activities during development (assumes requirements can be frozen)
Views software development as manufacturing process rather than as creative process
There are no iterative activities that lead to creating final product
Long wait before final product Above comments came from a paper by
Parnas and Clements David Lorge Parnas and Paul C. Clements, "A Rational Design
Process: How and Why to fake It", IEEE Transactions on Software Engineering, Vol. SE-12, No. 2, February 1986.
V ModelIs an Evolutionary Process
A variation of Waterfall Model Uses unit testing to verify procedural design Uses integration testing to verify architectural (system) design Uses acceptance testing to validate requirements If problems are found during verification and validation, left side of V can be re-executed before testing on right side is re-enacted
V Model (continued)
Spiral Model Spiral model was further improvement on evolutionary
model It integrates project objectives, risk management,
prototyping and project cost In spiral model development is done in "cycles" of a
spiral Each cycle starts with determination of objectives,
alternatives and constraints for the cycle With good project overview, objectives of a cycle can be
decided Then, next step in cycle is to evaluate alternatives and
identify and resolve risks To manage risks in a cycle, prototyping, simulation,
benchmarking, etc. are done
Spiral Model
Suggested by Barry Boehm (1988) The model's iterations are represented by a circuit around four major activities PlanDetermine goals, alternatives and
constraintsEvaluate alternatives and risksDevelop and test
2.2 Software Process ModelsSpiral Model (continued)
The Origins of Agile Development Spring From Early Discussions on Adaptive Incremental Development
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
Borland’s 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)
Agile Methods
Agile Software Process Model takes the idea that says many software development activities happen at the same time throughout the development process. Main ideas are:
1. At all times during life cycle, keep in mind final product2. As it is humanly not possible to define requirements accurately, process model should be efficient at handling changes in requirements during entire life cycle3. Software is developed for customer's requirements customer satisfaction is most important4. For success, level of motivation of software developers is very important, and5. Communication, cooperation, teamwork, should be keywords
Agile Methods
Emphasis on flexibility in producing softwarequickly and capablyAgile manifesto Value individuals and interactions over process/ tools Invest time in producing working software rather than comprehensive documentation Focus on customer collabo ration rather than contract negotiation Concentrate on responding to change rather than on creating a plan and then following it
Agile Methods: Examples of Agile Process
Extreme programming (XP)Crystal – Collection of approaches based on idea
that every project needs unique set of policies and conventions
Scrum– 30-day iterations; multiple self-organizing
teams; daily “scrum” coordination
Agile Methods: Extreme Programming
Can distill Agile into four charateristicsCommunication: Continual interchange between customers and developersSimplicity: Select the simplest design or implementationCourage: Commitment to delivering functionality early and oftenFeedback: Loops built into the various activitites during the development process
Agile Development Usually Follows a Predictable Lifecycle
Product/Project
IncrementalRelease
Evaluate
Iteration
Feature
Design
Develop
Evaluate
Test
Evaluate
Iteration Plan
Plan
Release Plan
Plan
Product/Project Charter Plan
Feature or User Story• Expressed from business or user perspective• Business value• EstimableFeature List: prioritized features (AKA Product Backlog)
Iteration• 1-4 week timebox
Incremental Release• 1-6 Iterations• Released internally or
externally to end users
Product or Project• Perpetually released
Common Theme in Models
Models do not specifically focus on User or Human Centered needs
Especially the first few, Spiral, Waterfall, and variations
Agile claims that the user is important … but still seems to emphasize business or product needs
In fact, due to the rapid iterations, it may even cut out the traditional user testing or cut it short
Meetings with only the manager who pays the bills is not necessarily “user-centered”
User-Centered Design
A. Focuses on who will use a system from very beginning
B. Checks in with users each step along the way
User Research
Analysis
Design
Prototyping & Testing
Development
Iterative Design
A
B
Discovering User Needs Through Direct Research
ObservationalStudies
User Needs
User Interviews
User Surveys
Agile Development and User Centered Design
+
Agile Tips For Ux Practitioners
1. Understand models as tests, or validation for subsequent decisions
Models we build based on our research and assumptions act as tests just as developer’s unit tests act as tests
2. Align user goals with business goals
This user’s goals are important to us because…?
3. Emphasize user goals and tasks – not features
Leverage good user story format to do so
4. Defer feature design: to the latest responsible moment
The Agile Concept of “Test First” Isn’t About Testing, It’s About Designing
Test First Development refers to practice developers engage in where they automate unit tests before writing code that allows those tests to pass Writing these tests first forces developers to think about how the code will be used and what it must do prior to writing it Agile developers often say: “How do I know I’ve written the correct code if I don’t have a running test to prove it?”
Models built by user centered design practitioners perform the same role as developer tests Business goals help validate our choices of user constituencies to support User models help validate the work practice we choose to support Work practice models help validate the features we choose to design and implement How could we know we’ve chosen the correct features without business goals, user models, and work practice models?
Model Users Using A Technique Appropriate For Your Product, Team, And Available Information
Understand users will depend on product being designed / different approaches offer different advantages
Build a user model to function as a design target for task support and user interface decisions
Examples of user models include
Actor, Goal List
User Roles and Role Model
User Profiles
User Personas
The profiled actor
The personified role
User models illustrate the tension that exists between user goals and business goals
products for internal users, enterprise products
consumer products
better design targets
Where Does User Research Happen?
Finding time for thorough user research is problematic in all software development environments.
Agile Development fixes nothing here !!!User research happens during initial project inception and planningPerform enough user research to construct preliminary or provisional user modelsContinue research throughout design and development of the product and alter user models, and resulting design choices as necessary
Agile User Story
Software Product
Identify And Plan Using User Tasks Now, Defer Specific Feature Choices Till Later
Understand Business AND User Goals
Understand user’s tasks, and/or the business process that supports goals
Select tasks to support with software
Defer decisions for and designs of specific features till later
The often used phrase "latest responsible moment" comes from Lean Software Development:
“Put off decisions as long as you can: to the latest responsible moment. But it's the latest responsible moment, not the "last possible" moment. That wouldn't be responsible.”
An Agile-style user story could refer to a feature, or a user task, and goal.
Favor the latter.
Goals
Tasks
ToolsFeatures
A Task Workflow Model Organizes Tasks to Represent Workflow
To build a simple task workflow model:
Draw a left to right axis representing time, a top to bottom axis labeled necessity
Identify high level activities performed by users of the system and place them above the time axis in the order that seems reasonable
Within each activity, organize tasks in the order they’re most likely completed
Move tasks up and down depending on how likely they are to be performed in a typical instance of use
Task 1 Task 2 Task 3 Task 4 Task 5
Task 6 Task 7
time
necessity
Activity 1
Exercise: Build a Simple Task Model
Task 1 Task 2 Task 3 Task 4 Task 5
Task 6 Task 7
time
necessity
Activity 1
Activity: Using pre-printed activity and task cards, build a simple task workflow model
Feature Design & Development
Continue User Research As Needed
Defining Interaction Contexts & Navigation
User Scenario Writing
UI Storyboarding
Low Fidelity UI Prototyping
Lightweight Usability Testing
Detailed Visual Design
UI Guideline Creation & Ongoing Maintenance
Heuristic Evaluation
Collaborative User Interface Inspection
Low Fidelity UI PrototypingLow Fidelity UI Prototyping
Lightweight Usability TestingLightweight Usability Testing
The Shape of a Typical Agile Iteration
Iteration Design & Planning Sufficient feature design and analysis completed to allow development time estimation
Iteration kickoff meeting: 1 hour to ½ day
• High level goals for the iteration: “at the end of this iteration the software will…”
• User story or feature introduction & estimation
Feature Design & DevelopmentFeatures may or may not have most of their functional and user interface design completed before iteration planning
• Remainder is completed inside the iterationConstant collaboration occurs between development and those in an Agile Customer role
Near end of iteration is good time for testing how well features work together – collaborative UI inspection is common at this time
design & plan
evaluate
build
The Shape of a Typical Agile Iteration
End of Iteration EvaluationDemonstrate and evaluate product as it is today to stakeholders
This is good time for usability testing – adjust planned product scope in responseEvaluate progress on features against a release plan – adjust plan as necessary
Reflect on process used over past iteration – should process change to improve quality of product and/or pace?
design & plan
evaluate
build
Run Your Usability TestFacilitator introduces the team.
Facilitator introduces tasks to perform and goals, then invites test participants to “think out loud” and begin.
Facilitator plays sports-caster; keeps subject talking, narrating when necessary.
Observers record data – use post-it notes to make downstream analysis move faster.
When the test is complete observers may ask test participants questions.
Thank test participants.
Consolidate data.
How many issues did you detect? Consider issues as items you’d change.
Agile Tips For Ux Practitioners
1.Plan useful releases: consider the resulting workpractice of the release’s target users for each release
2.Scale features when planning product releases: can the scale of features be reasonably reduced in order to release sooner and still effectively support target user workpractice
3.Validate usability before development: use paper prototyping and light weight usability testing to validate features before development
4.Validate usability after development: as iterations of features finish development, perform usability testing on the finished features – they’ll change during development
Part 4 Agile Tips For Ux Practitioners
5. Use reflective process improvement: to alter your process after reviewing your product quality and progress relative to your plan
6. Increase the frequency and timing of end user involvement: build a ready supply of users and user surrogates inside and outside of your organization to leverage continuously
7. Avoid pipelining by working in the past, present, and future: keep collaboration, feedback, and product adaptation high between all team members
8. Build a holistic process: that includes business analysis, interaction design and usability, development, and testing as one team rather than silo-ed disciplines
Summary
Software models have evolved towards iterative, agile development
Yet, Agile doesn't magically mean User Centered Customer centered but can still put features and
Business Processes at the forefront instead of User Processes
Professional software designer/engineers are trying to merge the concepts of User focused with Agile
One set of ideas presented today !!! There are others
References
Nice Summary of Models http://www.softprayog.in/software-engineering/
agile-concurrent-software-process
Jeff Patton's Agile Developmenthttp://www.agileproductdesign.com/
User Centered Design as a Block to Agile Development
http://www.uxmatters.com/mt/archives/2012/09/why-is-uxd-the-blocker-in-your-agile-ucd-environment.php
37
End
Dick Steele is coming on Friday !!!3/1/13