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
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.
http://www.simonguest.com
Top Related