user driven software architecture

Post on 27-Jan-2015

110 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

A presentation that shares a framework for thinking about user experience as part of software architecture and development.

TRANSCRIPT

User Driven Software ArchitectureSimon GuestSenior DirectorPlatform Architecture TeamMicrosoft Corporation

“What is Architecture?”

“Architecture is the balance between art and

engineering”

But does this apply toSoftware Architecture?

Engineering Concerns

SOA

ESB

Web Services

Transactions

ORM

Replication

etc.

What is the art in Software Architecture?

User ExperienceOften Comes Last

User ExperienceOften Comes Last

Source: www.userinterfacehallofshame.com

User ExperienceOften Comes Last

Source: www.userinterfacehallofshame.com

User ExperienceOften Comes Last

Source: www.userinterfacehallofshame.com

Why is this the case?

Well understood environment…

…with bright people…

…and stable business model

Why is this the case?

…and we’d never get funding

I’m not very good at UI stuff…

…our users are smart enough…

Why is this the case?

“What did I do wrong?”

New Perspective

New Perspective

As architects and developers, we are in a position to affect user

experience

“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

Personas Purpose Prototype

Ideas

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

“Should I have read the manual?”

“The performance of this application sucks!”

Personas

Performance

Productivity

Purpose Prototype

Platform

Interface

Ideas

Personas

Performance

Productivity

Purpose Prototype

Platform

Interface

Ideas

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

“I don’t think it installed properly…”

“Excuse me! I have a suggestion…”

Personas

Performance

Productivity

Purpose Prototype

Proactive

Platform

Proven People

Interface

Ideas

Internals

Performance

Productivity

Purpose Prototype

Proactive

Platform

Proven People

Interface

Ideas

Internals

Personas

Ideas > Personas

Ideas > Personas

Know Thy UserFor He Is Not Thee

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

Ideas > Personas

Definition of a “user”

Ideas > Personas

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

understand how to use this.”

Ideas > Personas

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

Ideas > Personas

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

means danger.”

Ideas > Personas

Think instead using Personas

Ideas > Personas

Sally (Sales Professional)• 38, Married• 2 Children• 5 years of computer experience• Windows, Office, PowerPoint• Has between 10 and 20 SME clients• Uses Sony Vaio and Samsung Blackjack

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

Ideas > Personas

Derek (Call Center Operator)• 25, Single• 9 years of computer experience• 3 years of which in a call center• PDA/gadget junkie – “lifehacker”• Relies on call center application• Gets bonus if exceeds monthly quota

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

Ideas > Personas

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”

Ideas > Personas

“For Sally, a Web Interface may make sense. But Derek has a lot of

keyboard shortcuts we need to implement.”

Ideas > Personas

“Jim will have access to a printer via his admin, but Sally works on

the road, so may need another option”

Ideas > Personas

“For Jim, a red button may mean danger, but we should check for

Derek in our offshore call center”

Ideas > Personas

Takeaways

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)

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

Source: Persona Lifecycle [Pruitt, Adlin] Morgan Kaufmann

Performance

Productivity

Purpose Prototype

Proactive

Platform

Proven People

Interface

Ideas

Internals

Personas

Ideas > Purpose

Ideas > Purpose

Create new document

Create new document

Type textType text

Format the textFormat the text

Email to editorEmail to editor

Ideas > Purpose

Create new document

Create new document

Type textType text

Format the textFormat the text

Email to editorEmail to editor

Task

Task

Task

Task

Goal

Ideas > Purpose

Ideas > Purpose

Create new document

Type text

Format the text

Email to editor

Task

Task

Task

Task

Filter

Ideas > Purpose

Create new document

Type text

Format the text

Email to editor

Task

Task

Task

Task

GuesstheGoal

Ideas > Purpose

Ideas > Purpose

Create new document

Type text

Format the text

Email to editor

Task

Task

Task

Task

ApplyConte

xt

ApplyConte

xt

ApplyConte

xt

Ideas > Purpose

Ideas > Purpose

Ideas > Purpose

Ideas > Purpose

Source: www.devcomponents.com

Ideas > Purpose

TakeawaysIn use cases, how do you deal with tasks and goals?(Focus on the difference between the two)How do you use context in your applications?(Use context to help guide the experience)Could the Office UI be suitablefor your application?(Refer to the list of ISVs supporting controls)

Performance

Productivity

Purpose Prototype

Proactive

Platform

Proven People

Interface

Ideas

Internals

Personas

Ideas > Prototype

Ideas > Prototype

You want to build a house…

You hire a building architect…

You discuss requirements…

Ideas > Prototype

A prototype is created

Ideas > Prototype

12 months later…

Ideas > Prototype

You want to build a house…

You hire a software architect…

You discuss requirements…

Ideas > Prototype

Yeah, sorry, I don’t have much to show you right now…

Ideas > Prototype

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

Ideas > Prototype

But trust me – it’s going to be great!

Ideas > Prototype

12 months later…

Ideas > Prototype

In Software Architecture we don’t do enough prototyping

Ideas > Prototype

Static, one-way presentations(shown only to management)

Few re-usable design assets

Often different to what gets delivered

Ideas > Prototype

Great for Management!

• Looks almost done

• But… Users won’t give you much feedback…

• High Fidelity

• “Just sign here…”

Ideas > Prototype

Great for Users!

• Great for user feedback

• But… You wouldn’t take it into the board room…

• Low fidelity

• “Sure, we can move it…”

Image: Paper Prototyping / Nielsen Norman Group

Ideas > Prototype

The same set of controls

Inherit High Fidelity StyleInherit High Fidelity Style Inherit Low Fidelity StyleInherit Low Fidelity Style

Ideas > Prototype

How about if we could switch styles?

Ideas > Prototype

Takeaways

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)

Performance

Productivity

Purpose Prototype

Proactive

Platform

Proven People

Interface

Ideas

Internals

Personas

Performance

Productivity

Purpose Prototype

Proactive

Platform

Proven People

Interface

Ideas

Internals

Personas

Interface > Platform

Interface > Platform

Too many choices…

Interface > Platform

No one wants to choose the wrong thing…

Interface > Platform

Pick something based on Competition

Pick something based on Experience

Pick something based on Politics

Simon Guest
Insert politics

Interface > Platform

Technically savvy, but not optimal

Trapped in a process

It’s just the way that things work here

Interface > Platform

But there’s plenty of guidance, right?

Interface > Platform

No!

Interface > Platform

Microsoft is Guilty!

Interface > Platform

Study of permutationsto deliver a user interface

Interface > PlatformWindows Presentation Foundation Client

Smart Client with ClickOnce Deployment

Windows Presentation Foundation XBAP

Microsoft Office SharePoint 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 Live Messenger 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 Tablet Application

Windows Forms via Terminal Services

Internet Explorer Add In Microsoft Office VBA Windows Mobile 5.0 Application

System Tray Applet Silverlight Microsoft Office VSTO Add In

Windows Mobile 5.0 Smartphone Application

32(We actually think it’s nearer to 50, but we ran out of time)

Interface > Platform

What vectors can we use?

Interface > Platform

Application

Connectivity

Graphics

Look and Feel

Interaction

Environment

Installation

Integration

Hardware

Developer IQ

Persona

Location

Mobility

Training

Personalization

Interface > Platform

Interface > Platform

Takeaways

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?)

Performance

Productivity

Purpose Prototype

Proactive

Platform

Proven People

Interface

Ideas

Internals

Personas

Interface > Productivity

Interface > ProductivityP

rod

ucti

vit

y

Time

Interface > ProductivityP

rod

ucti

vit

y

Time

1. Discovery

2. Learning

3. Mastery

Interface > ProductivityP

rod

ucti

vit

y

Time

Reduced byFamiliarity

Interface > Productivity

Interface > Productivity

Interface > Productivity

Interface > Productivity

Siebel Client Siebel CRM

Interface > Productivity

Web Browser Siebel CRM

Web Services

ASP.NET

Interface > Productivity

Web Browser Siebel CRM

Web Services

ASP.NET

Outlook

Interface > Productivity

Interface > Productivity

Web Browser Siebel CRM

Web Services

ASP.NET

Outlook

Interface > Productivity

Web Browser Siebel CRM

Web Services

ASP.NET

Outlook

Interface > Productivity

Interface > ProductivityP

rod

ucti

vit

y

Time

DL

M

Persona - Sally

Interface > ProductivityP

rod

ucti

vit

y

Time

Persona - Derek

D L

M

Interface > ProductivityP

rod

ucti

vit

y

Time

Persona - Jim

DL

M

Interface > ProductivityP

rod

ucti

vit

y

Time

D L

M

Interface > Productivity

Takeaways

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)

Performance

Productivity

Purpose Prototype

Proactive

Platform

Proven People

Interface

Ideas

Internals

Personas

Interface > Performance

Performance conversations are often engineering

conversations

Interface > Performance

Performance vs. Expectations

Interface > Performance

Specific Expectations

Interface > Performance

Why is this taking so long?!

Interface > Performance

Few Expectations

Interface > Performance

I wonder how long this will take?

Interface > Performance

Asynchronous Javascript And XML

Interface > Performance

Interface > Performance

Takeaways

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)

Performance

Productivity

Purpose Prototype

Proactive

Platform

Proven People

Interface

Ideas

Internals

Personas

Performance

Productivity

Purpose Prototype

Proactive

Platform

Proven People

Interface

Ideas

Internals

Personas

Internals > Proven

Internals > Proven

The biggest hurdle for building trust in your application is time

Internals > Proven

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

Internals > Proven

InstallationVisualization• Annoying Flash/animations• Too many options• Unpacking the installation

Pre-Requisites• Do you really need a restart?• What permissions required?• What apps need quitting?

Source: http://simonguest.com/blogs/smguest/archive/2006/11/21/Ten-Ways-for-Good-Installation-Karma.aspx

Internals > Proven

Installation

Handling Exceptions

Internals > Proven

Installation

Handling Exceptions

Enable Undo’s

Internals > ProvenTypical User Testing

Willing users

Internals > Proven

Internals > Proven

Willing user

Etc.

RITE Rapid Iterative Testing and Evaluation

Internals > Proven

Source: http://download.microsoft.com/download/5/c/c/5cc406a0-0f87-4b94-bf80-dbc707db4fe1/mgsut_MWTRF02.doc.doc

RITE Rapid Iterative Testing and Evaluation

Internals > Proven

Takeaways

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)

Performance

Productivity

Purpose Prototype

Proactive

Platform

Proven People

Interface

Ideas

Internals

Personas

Internals > People

Internals > People

It’s all about the SDLC…

Internals > PeopleProject Starts!

Project Complete

Use cases created IT + User / BA

Prototyping IT

Developmentof Services

IT

UI is created IT

User Testing User / BA

Internals > People

I know what we’ll do…

Internals > PeopleProject Starts!

Use cases created

Prototyping

Developmentof Services

UI is created

IT + User / BA

IT

IT

IT

User Testing

Project Complete

User / BA

Internals > People

A more successful methodology for promoting UX

Internals > People

Project Starts!

Project Complete

Use cases created IT + User / BA

Prototyping

Developmentof Services

IT

User Testing User / BA

Internals > People

Are all designers the same?

Internals > People

Project Starts!

Project Complete

Use cases created IT + User / BA

Prototyping

Developmentof Services

IT

UI and ServicesIntegrated

User Testing User / BA

Developmentof UX

Internals > People

Graphic Designer

Interaction Designer

Interaction Designer

Internals > People

Internals > People

Project Starts!

Project Complete

Use cases created IT + User / BA

Prototyping

Developmentof Services

IT

UI and ServicesIntegrated

User Testing User / BA

Developmentof UX

Internals > People

Project Starts!

Project Complete

Use cases created IT + User / BA

Prototyping IT + Designer + User / BA

Developmentof Services

IT

IT + Designer

User Testing User / BA

Developmentof UX

Designer + User / BA

Internals > People

XAML

DeveloperDesigner

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?

Internals > People

Takeaways

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)

Performance

Productivity

Purpose Prototype

Proactive

Platform

Proven People

Interface

Ideas

Internals

Personas

Internals > Proactive

Internals > Proactive

Hey team, v2.0 was a hit!

8 7 7 9 8

Internals > Proactive…it’s been out for a month and we haven’t heard a thing back from our

users!

? ? ? ? ?

Internals > Proactive

Reactive feedback is all too common

2 1 3 1 1

Internals > Proactive

Internals > Proactive

Rating scale in the application

Internals > Proactive

Rating scale in the application

Remote troubleshooting

Internals > Proactive

Rating scale in the application

Remote troubleshooting

Effective status updates

Internals > Proactive

2 1 3 1 1

Takeaways

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)

Performance

Productivity

Purpose Prototype

Proactive

Platform

Proven People

Interface

Ideas

Internals

Personas

Performance

Productivity

Purpose Prototype

Proactive

Platform

Proven People

Interface

Ideas

Internals

Personas

Define the Interface and think about how the platform choice, productivity, and performance will affect you

Remember the Internals that enable proven, proactive applications designed by a team that understands user experience

Overall Takeaways

Realize Ideas by defining personas, purpose and prototyping

© 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.

simon.guest@microsoft.com

http://www.simonguest.com

top related