user driven software architecture - microsoft · user experience ux is a term used to describe the...
TRANSCRIPT
4/18/2008
1
User Driven Software ArchitectureOr How to put the User back into your Software Design
Christof SprengerArchitect Evangelist
Microsoft Corporation
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?
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
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”
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
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
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 ?
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
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)
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
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
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
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
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
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
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
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
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
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”
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”
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.