user driven software architecture - microsoft · user experience ux is a term used to describe the...

20
4/18/2008 1 User Driven Software Architecture Or How to put the User back into your Software Design Christof Sprenger Architect Evangelist Microsoft Corporation [email protected] Agenda User Experience, what is that? Why should we care? What can we do? User Experience UX is a term used to describe the overall experience and satisfaction a user has when using a product or system. [wikipedia] UX tenets: useful, usable, and desirable ≈ $10.99 ≈ $22.95 User Experience: the a Process 1. User experience scenarios 2. Task flow storyboard 5. User experience scorecard 3. Task flow model 4. Low-fidelity prototype WHAT IS ARCHITECTURE?

Upload: others

Post on 27-May-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: User Driven Software Architecture - Microsoft · User Experience UX is a term used to describe the overall experience and satisfaction a user has when using a product or system. [wikipedia]

4/18/2008

1

User Driven Software ArchitectureOr How to put the User back into your Software Design

Christof SprengerArchitect Evangelist

Microsoft Corporation

[email protected]

Agenda

• User Experience, what is that?

• Why should we care?

• What can we do?

User Experience

UX is a term used to describe the overall experience and satisfaction a user has when using a product or system. [wikipedia]

UX tenets: useful, usable, and desirable

≈ $10.99 ≈ $22.95

User Experience: the a Process

1. User experience scenarios

2. Task flow storyboard

5. User experience scorecard

3. Task flow model

4. Low-fidelity prototype

WHAT IS ARCHITECTURE?

Page 2: User Driven Software Architecture - Microsoft · User Experience UX is a term used to describe the overall experience and satisfaction a user has when using a product or system. [wikipedia]

4/18/2008

2

“Architecture is the balance between art and engineering”

How does that apply to Software Architecture?

User Centered Software Architecture

• A Framework

• promote the role of UX to developers and architects

• shared vocabulary, practical, non intrusive

3 I’s and 9 P’s

Ideas

• “Was this application really designed for me?”

• “Why doesn’t this application help me get my work done?”

• “If it wasn’t for this application, I’d do stuff differently”

Personas Purpose Prototype

Ideas

IDEAS / PERSONA

Page 3: User Driven Software Architecture - Microsoft · User Experience UX is a term used to describe the overall experience and satisfaction a user has when using a product or system. [wikipedia]

4/18/2008

3

Short survey (1)

• What percentage of today’s attendees are male?

• Overall population is 51% female (Source: GeoHive Report, May 2007)

Short survey (2)

• What percentage of today’s attendees do have a college degree?

• Roughly 72% of US adults do not(Source: 2000 Census)

Short survey (3)

• What percentage of today’s attendees drive a car with a manual transmission?

• Roughly 12-14% of all vehicles in the US are sold with a manual transmission

Know Thy UserFor He Is Not Thee

Questions and Quote: Why Software Sucks [2006], David Platt

What often happens

• “This would be quicker to develop as a Web Application. Users will understand how to use this.”

• “Yeah, most users will have access to a printer from their desk…”

• “Of course this button should be red. Users will know that this means danger.”

The Problem

• We tend to put a lot of personal preferences into “user”

• “The User” is an amorphous term, a statistical mean, a person that you will not find anywhere

• Beware of “one size fits all”

Page 4: User Driven Software Architecture - Microsoft · User Experience UX is a term used to describe the overall experience and satisfaction a user has when using a product or system. [wikipedia]

4/18/2008

4

Sally (Sales Professional)

• 38, Married

• 2 Children

• 5 years of computer experience

• Windows, Office, PowerPoint

• Has between 10 and 20 SME clients

• Uses a Sony Laptop and Samsung Phone

• “Keep me connected to the top issues that customers are calling in with”

Derek (Call Center Operator)

• 25, Single

• 9 years of computer experience

• 3 years of which in a call center

• PDA/gadget junkie

• Relies on call center application

• Gets bonus if exceeds monthly quota

• “I want the application to decrease my time spent per call”

Jim (Call Center Executive)

• 57, Married• 4 Children, all left home• Very limited computer experience• Brenda (his admin) used to print all

his Email until very recently• Shows off his PDA on the golf

course

• “I want the high level, abstract view of my customers”

A different way to communicate

• “For Sally, a Web Interface may make sense. But Derek has a lot of keyboard shortcuts we need to implement.”

• “Jim will have access to a printer via his admin, but Sally works on the road, so may need another option”

• “For Jim, a red button may mean danger, but we should check for Derek's colleagues in the offshore call center”

“This would be quicker to develop as a Web Application. Users will understand how to use

this.”

“Yeah, most users will have access to a printer from their desk…”

“Of course this button should be red. Users will know that this means danger.”

Personas

Do you use personas today? If so, how many?(3 – 7 personas per application is recommended)

How do you use the word “user”?(Think about personas to help define who you are writing the application for)

Source: Persona Lifecycle [Pruitt, Adlin] Morgan Kaufmann

Do you know how Microsoft uses personas?(Use “Persona Lifecycle” for VSTS related personas)

IDEAS / PURPOSE

Page 5: User Driven Software Architecture - Microsoft · User Experience UX is a term used to describe the overall experience and satisfaction a user has when using a product or system. [wikipedia]

4/18/2008

5

Create new document

Type text

Format the text

Email to editor

Task

Task

Task

Task

Goal

Use cases, tasks and goals

Create new document

Type text

Format the text

Email to editor

Task

Task

Task

Task

Filter

Create new document

Type text

Format the text

Email to editor

Task

Task

Task

Task

Guessthe

Goal

Create new document

Type text

Format the text

Email to editor

Task

Task

Task

Task

ApplyContext

ApplyContext

ApplyContext

Page 6: User Driven Software Architecture - Microsoft · User Experience UX is a term used to describe the overall experience and satisfaction a user has when using a product or system. [wikipedia]

4/18/2008

6

orcas outlook ribbon designer

Source: www.devcomponents.com

3rd Party components Ideas / Purpose

How do you use context in your applications?

In use cases, how do you deal with tasks and goals?

Could your application benefit from the Ribbon ?

Page 7: User Driven Software Architecture - Microsoft · User Experience UX is a term used to describe the overall experience and satisfaction a user has when using a product or system. [wikipedia]

4/18/2008

7

IDEAS / PROTOTYPE

“Prototyping” in (Building) Architecture

You want to build a house…

You hire a building architect…

You discuss requirements…

“Prototyping” in (Building) Architecture

You see plans, a model, …

You see the building site

12 month later …

Prototyping in IT

• You want to build a …

• You hire a software architect…

• You discuss requirements…

• “Yeah, sorry, I don’t have much to show you right now…” - “But we are on track …”

• “I can show you some diagrams, but you won’t understand them.”

Our Claim

In Software Architecture we don’t do enough prototyping

Prototyping

• Often static, one-way presentations with the goal to “sell”

• Few re-usable design assets

• Often different to what gets delivered

Page 8: User Driven Software Architecture - Microsoft · User Experience UX is a term used to describe the overall experience and satisfaction a user has when using a product or system. [wikipedia]

4/18/2008

8

Prototyping (high-fidelity)

• High Fidelity

• Looks almost done

• “Just sign here…”

• No “room” for feedback and creativity

Pen and Paper / “Sketching”

• Great for Users

• Low fidelity

• Great to foster feedback

• “Sure, we can move that”

• But: you wouldn’t show that to the “decision maker”

Essentially the same

same set of controls

“higher” fidelity low fidelity

Reuse in Prototyping

Reuse ?

• What if we could switch styles, and create re-usable assets in XAML?

• ProtoXAMLhttp://www.codeplex.com/protoxaml

Ideas / Prototyping

Are you able to re-use any assets?(A prototype in XAML allows many design assets to be reused)

What prototyping do you do?(Software Architects don’t do enough)

What fidelity do you use?(A mix of high and low fidelity prototypes can be used for different feedback loops)

Page 9: User Driven Software Architecture - Microsoft · User Experience UX is a term used to describe the overall experience and satisfaction a user has when using a product or system. [wikipedia]

4/18/2008

9

Interface

• “I use a similar application at home, and that works”

• “Should I have read the manual?”

• “The performance of this application sucks!”

PerformanceProductivityPlatform

Interface

INTERFACE / PLATFORM

How do you decide which technology you use

for your User Interface?

Pick something based on Technology

Pick something based on Competition

Pick something based on Experience

Technically savvy, but not optimal for the Business

Trapped in a process

It’s just the way that things work here

Page 10: User Driven Software Architecture - Microsoft · User Experience UX is a term used to describe the overall experience and satisfaction a user has when using a product or system. [wikipedia]

4/18/2008

10

But there’s plenty of guidance, right? Study of permutationsto deliver a user interface

Windows PresentationFoundation Client

Smart Client with ClickOnce Deployment

Windows PresentationFoundation XBAP

Microsoft OfficeSharePoint Web Part

Windows Vista Gadget PowerShell CmdLet InfoPath Media Center Add In

Windows Live Messenger Add In

Command Line Application

Microsoft Office Add In Media Player Add in

Windows LiveMessenger Activity Window

ASP.NET Microsoft Office COM Add In

XBOX/XNA Application

Windows Forms Application

ASP.NET Mobile Microsoft Office Business Application

Windows Mobile Pocket Outlook Application

Windows Desktop Search Add In

ASP.NET AJAX Microsoft Office Smart Docs

Ink Enabled TabletApplication

Windows Forms viaTerminal Services

Internet Explorer Add In Microsoft Office VBA Windows Mobile 5.0 Application

System Tray Applet Silverlight Microsoft Office VSTOAdd In

Windows Mobile 5.0 Smartphone Application

32(some think it’s nearer to 50, but …)

What should we baseour decisions on?

Our Criteria: UI Quality Attributes

Application

Connectivity

Graphics

Look and Feel

Interaction

Environment

Installation

Integration

Hardware

Developer IQ

Persona

Location

Mobility

Training

Personalization

A tool to help with the decision

Page 11: User Driven Software Architecture - Microsoft · User Experience UX is a term used to describe the overall experience and satisfaction a user has when using a product or system. [wikipedia]

4/18/2008

11

What can Microsoft do to help?(We need to create more guidance for helping abstract technology selection decisions)

How do you select technology?(Gut feel may result in short term gain, but often long term pain)

Would a tool like this be useful?(And if so, do you have any other ideas for visualization?)

Interface / Platform

INTERFACE / PRODUCTIVITY

Pro

du

ctiv

ity

Time

1. Discovery

2. Learning

3. Mastery

Pro

du

ctiv

ity

Time

Reduced byFamiliarity

Example: Navigation

Page 12: User Driven Software Architecture - Microsoft · User Experience UX is a term used to describe the overall experience and satisfaction a user has when using a product or system. [wikipedia]

4/18/2008

12

CRM Client CRM System Web Browser CRM System

Web Services

ASP.NET

Web Browser CRM System

Web Services

ASP.NET

Outlook

Web Browser

CRM System

Web Services

ASP.NET

Outlook

Web Browser

CRM System

Web Services

ASP.NET

Outlook

Page 13: User Driven Software Architecture - Microsoft · User Experience UX is a term used to describe the overall experience and satisfaction a user has when using a product or system. [wikipedia]

4/18/2008

13

Pro

du

ctiv

ity

Time

DL

M

Persona - Sally

Pro

du

ctiv

ity

Time

DL

M

Persona - DerekP

rod

uct

ivit

y

Time

DL

M

Persona - Jim

Is productivity important for different roles in your organization?(Map personas to the productivity curve)

How do you measure productivity?(Often the most productive applications are not the best looking)

Can existing experiences be extended?(Often extending an experience results in greater productivity)

Platform / Productivity

INTERFACE / PERFORMANCE

Page 14: User Driven Software Architecture - Microsoft · User Experience UX is a term used to describe the overall experience and satisfaction a user has when using a product or system. [wikipedia]

4/18/2008

14

Performance?

• Performance conversations are often engineering conversations

• Absolute time in milliseconds

• Latency

Performance vs. Expectations

• Specific Expectations

• Why is this taking so long?!

• Few Expectations

• I wonder how long this will take?

Asynchronous Javascript And XML

Performance Expectations

Have user’s expectations been met?(Sitting with users before a new system is deployed can help set expectations)

How do you plan for performance?(Conversations around milliseconds tend to be engineering focused)

What technology do you use?(AJAX can help address specific expectations that the user may have)

Internals / Performance

Page 15: User Driven Software Architecture - Microsoft · User Experience UX is a term used to describe the overall experience and satisfaction a user has when using a product or system. [wikipedia]

4/18/2008

15

Internals

• “I don’t think it installed properly…”

• “Err.. How long did you guys spend developing this?”

• “Excuse me! I have a suggestion…”

ProactiveProven People

Internals

INTERNALS / PROVEN

“Special Situations”

• Installation

• Exception Handling

• Undo’s

Trust

The biggest hurdle for building trust in your application is time

Once that trust is lost, it’s very difficult to recover

Test Test TestTest

Modify [1]

Feedback

Typical User Testing Game development

Page 16: User Driven Software Architecture - Microsoft · User Experience UX is a term used to describe the overall experience and satisfaction a user has when using a product or system. [wikipedia]

4/18/2008

16

RITE Rapid Iterative Testing and Evaluation

Modify

Feedback

Test

Test

Feedback

Modify

Test

Feedback

Modify

Modify

Feedback

Test

.doc.doc02/mgsut_MWTRF1fe4db707dbc-80bf-94b4-87f0-0a406cc5/c/c/5http://download.microsoft.com/download/Source:

RITE Rapid Iterative Testing and Evaluation

How do you deal with installation, exception handling, and undos?(They are all part of the experience)

What is your quality bar?(Trust takes time)

What is your user testing strategy?(The RITE methodology can help finderrors that would go otherwise undiscovered)

Internals / Proven

INTERNALS / PEOPLE

Project Starts!

Use cases created Dev + User / BA

Prototyping Dev

Developmentof Services

Dev

UI is created Dev

Project Complete

User Testing User / BA

It’s all about the SDLC…

Project Starts!

Use cases created

Prototyping

Developmentof Services

UI is created

Dev + User / BA

Dev

Dev

Dev

User Testing

Project Complete

User / BAUI Polished UI Designer

Adding a good UI

Page 17: User Driven Software Architecture - Microsoft · User Experience UX is a term used to describe the overall experience and satisfaction a user has when using a product or system. [wikipedia]

4/18/2008

17

Project Starts!

Project Complete

Use cases created Dev + User / BA

Prototyping Dev + Designer + User / BA

Developmentof Services

Dev

UI and ServicesIntegrated

Dev + Designer

User Testing User / BA

Developmentof UX

Designer + User / BA

promoting great UX

Project Starts!

Project Complete

Use cases created Dev + User / BA

Prototyping Dev + Designer + User / BA

Developmentof Services

Dev

UI and ServicesIntegrated

Dev + Designer

User Testing User / BA

Developmentof UX

Designer + User / BA

Are all designers the same?

Graphic Designer

Interaction Designer

Interaction Designer

Project Starts!

Project Complete

Use cases created Dev + User / BA

Prototyping Dev + Designer + User / BA

Developmentof Services

Dev

UI and ServicesIntegrated

Dev + Designer

User Testing User / BA

Developmentof UX

Designer + User / BA

Project Starts!

Project Complete

Use cases created Dev + User / BA

Prototyping Dev + Designer + User / BA

Developmentof Services

Dev

UI and ServicesIntegrated

Dev + Designer

User Testing User / BA

Developmentof UX

Designer + User / BA

Page 18: User Driven Software Architecture - Microsoft · User Experience UX is a term used to describe the overall experience and satisfaction a user has when using a product or system. [wikipedia]

4/18/2008

18

XAML

DeveloperDesigner

D/D Workflow ?

• What we need to learn:• How much code level understanding will

designers require?• Who owns check-in of XAML artifacts?• Will we require an “interface stub” for

communication?

What types of designers do you need?(Recognize the different designer roles and how they can work within the SDLC)

Does UX factor in to your SDLC?(Incorporating UX into the SDLC can help create a better output)

Do your developers and designers talk to each other?(We need to support this)

Internals / People

INTERNALS / PROACTIVE

Feedback

• Hey team, v2.0 was a hit!

• …it’s been out for a month and we haven’t heard a thing back from our users!

• Reactive feedback is all too common

Rating scale in the application

Proactive Feedback Vista feedback “agent”

Page 19: User Driven Software Architecture - Microsoft · User Experience UX is a term used to describe the overall experience and satisfaction a user has when using a product or system. [wikipedia]

4/18/2008

19

Rating scale in the application

Remote troubleshooting

Effective status updates

Feedback

What happens when things go wrong?(How does the architecture of an application handle exceptions?)

How do your users provide feedback?(Proactive feedback can be very powerful input for

the SDLC)

Do you provide status?(Good and bad status reports can help users better understand failure)

Internals / Proactive

Define the Interface and think about how the platform choice, productivity, and

performance will affect customers

Remember the Internals that enable proven, proactive applications designed by

a team that understands user experience

Help customers and the team to realizeIdeas by defining personas, purpose and

prototyping

Overall Takeaways

“Architecture is the balance between art and engineering”

Page 20: User Driven Software Architecture - Microsoft · User Experience UX is a term used to describe the overall experience and satisfaction a user has when using a product or system. [wikipedia]

4/18/2008

20

© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.

The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided

after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

© 2007 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only.MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.