37
CSCD 487/587 Human Computer Interface Winter 2013 Lecture 18 Software Design Models with Users

CSCD 487/587 Human Computer Interface Winter 2013 Lecture 18 Software Design Models with Users

Embed Size (px)

Citation preview

Page 1: CSCD 487/587 Human Computer Interface Winter 2013 Lecture 18 Software Design Models with Users

CSCD 487/587Human Computer Interface

Winter 2013

Lecture 18Software Design Models with Users

Page 2: CSCD 487/587 Human Computer Interface Winter 2013 Lecture 18 Software 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

Page 3: CSCD 487/587 Human Computer Interface Winter 2013 Lecture 18 Software Design Models with Users

Software Development Process Models

Waterfall modelV modelPhased development: increments and iterationSpiral modelAgile methods

Page 4: CSCD 487/587 Human Computer Interface Winter 2013 Lecture 18 Software Design Models with Users

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)

Page 5: CSCD 487/587 Human Computer Interface Winter 2013 Lecture 18 Software Design Models with Users

2.2 Software Process ModelsWaterfall Model (continued)

Page 6: CSCD 487/587 Human Computer Interface Winter 2013 Lecture 18 Software Design Models with Users

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.

Page 7: CSCD 487/587 Human Computer Interface Winter 2013 Lecture 18 Software Design Models with Users

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

Page 8: CSCD 487/587 Human Computer Interface Winter 2013 Lecture 18 Software Design Models with Users

V Model (continued)

Page 9: CSCD 487/587 Human Computer Interface Winter 2013 Lecture 18 Software Design Models with Users

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

Page 10: CSCD 487/587 Human Computer Interface Winter 2013 Lecture 18 Software Design Models with Users

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

Page 11: CSCD 487/587 Human Computer Interface Winter 2013 Lecture 18 Software Design Models with Users

2.2 Software Process ModelsSpiral Model (continued)

Page 12: CSCD 487/587 Human Computer Interface Winter 2013 Lecture 18 Software Design Models with Users

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)

Page 13: CSCD 487/587 Human Computer Interface Winter 2013 Lecture 18 Software Design Models with Users

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

Page 14: CSCD 487/587 Human Computer Interface Winter 2013 Lecture 18 Software Design Models with Users

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

Page 15: CSCD 487/587 Human Computer Interface Winter 2013 Lecture 18 Software Design Models with Users

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

Page 16: CSCD 487/587 Human Computer Interface Winter 2013 Lecture 18 Software Design Models with Users

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

Page 17: CSCD 487/587 Human Computer Interface Winter 2013 Lecture 18 Software Design Models with Users

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

Page 18: CSCD 487/587 Human Computer Interface Winter 2013 Lecture 18 Software Design Models with Users

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”

Page 19: CSCD 487/587 Human Computer Interface Winter 2013 Lecture 18 Software Design Models with Users

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

Page 20: CSCD 487/587 Human Computer Interface Winter 2013 Lecture 18 Software Design Models with Users

Discovering User Needs Through Direct Research

ObservationalStudies

User Needs

User Interviews

User Surveys

Page 21: CSCD 487/587 Human Computer Interface Winter 2013 Lecture 18 Software Design Models with Users

Agile Development and User Centered Design

+

Page 22: CSCD 487/587 Human Computer Interface Winter 2013 Lecture 18 Software Design Models with Users

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

Page 23: CSCD 487/587 Human Computer Interface Winter 2013 Lecture 18 Software Design Models with Users

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?

Page 24: CSCD 487/587 Human Computer Interface Winter 2013 Lecture 18 Software Design Models with Users

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

Page 25: CSCD 487/587 Human Computer Interface Winter 2013 Lecture 18 Software Design Models with Users

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

Page 26: CSCD 487/587 Human Computer Interface Winter 2013 Lecture 18 Software Design Models with Users

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

Page 27: CSCD 487/587 Human Computer Interface Winter 2013 Lecture 18 Software Design Models with Users

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

Page 28: CSCD 487/587 Human Computer Interface Winter 2013 Lecture 18 Software Design Models with Users

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

Page 29: CSCD 487/587 Human Computer Interface Winter 2013 Lecture 18 Software Design Models with Users

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

Page 30: CSCD 487/587 Human Computer Interface Winter 2013 Lecture 18 Software Design Models with Users

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

Page 31: CSCD 487/587 Human Computer Interface Winter 2013 Lecture 18 Software Design Models with Users

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

Page 32: CSCD 487/587 Human Computer Interface Winter 2013 Lecture 18 Software Design Models with Users

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.

Page 33: CSCD 487/587 Human Computer Interface Winter 2013 Lecture 18 Software Design Models with Users

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

Page 34: CSCD 487/587 Human Computer Interface Winter 2013 Lecture 18 Software Design Models with Users

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

Page 35: CSCD 487/587 Human Computer Interface Winter 2013 Lecture 18 Software Design Models with Users

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

Page 36: CSCD 487/587 Human Computer Interface Winter 2013 Lecture 18 Software Design Models with Users

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

Page 37: CSCD 487/587 Human Computer Interface Winter 2013 Lecture 18 Software Design Models with Users

37

End

Dick Steele is coming on Friday !!!3/1/13