User Driven Software Architecture

Simon Guest
Simon GuestDirector, IoT, Last Mile Technology at Amazon
User Driven Software Architecture Simon Guest Senior Director Platform Architecture Team Microsoft Corporation
“ What is Architecture?”
“ Architecture is the balance between art and engineering”
But does this apply to Software Architecture?
Engineering Concerns SOA ESB Web Services Transactions ORM Replication etc.
What is the  art  in Software Architecture?
User Experience Often Comes Last
User Experience Often Comes Last Source:  www.userinterfacehallofshame.com
User Experience Often Comes Last Source:  www.userinterfacehallofshame.com
User Experience Often Comes Last Source:  www.userinterfacehallofshame.com
Well understood environment… … with bright people… … and stable business model
… and we’d never get funding I’m not very good at UI stuff… … our users are smart enough…
“ 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
 
 
Know Thy User For He Is Not Thee Questions and Quote, Source:  Why Software Sucks [2006], David Platt
Definition of a “user”
“ 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.”
Think instead using Personas
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
“ 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  in our offshore call center”
Takeaways Source:  Persona Lifecycle [Pruitt, Adlin] Morgan Kaufmann 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)
 
 
Create new  document Type text Format the text Email to editor
Create new  document Type text Format the text Email to editor Task Task Task Task Goal
 
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 Guess the Goal
 
Create new  document Type text Format the text Email to editor Task Task Task Task Apply Context Apply Context Apply Context
 
 
 
Source:  www.devcomponents.com
Takeaways In 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 suitable for your application? (Refer to the list of ISVs supporting controls)
 
 
You want to build a house… You hire a  building  architect… You discuss requirements…
A  prototype  is created
12 months later…
You want to build a house… You hire a  software  architect… You discuss requirements…
Yeah, sorry, I don’t have much to show you right now…
I can show you some diagrams, but you won’t understand them.
But trust me – it’s going to be great!
12 months later…
In  Software Architecture  we don’t  do enough  prototyping
Static, one-way presentations (shown only to management) Few re-usable design assets Often different to what gets delivered
Great for Management! ,[object Object],[object Object],[object Object],[object Object],[object Object]
Great for Users! ,[object Object],[object Object],[object Object],[object Object],[object Object],Image:  Paper Prototyping / Nielsen Norman Group
The same set of controls Inherit High Fidelity Style Inherit Low Fidelity Style
How about if we could switch styles?
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)
 
 
 
Too many choices…
No one wants to choose the wrong thing…
Pick something based on  Competition Pick something based on  Experience Pick something based on  Politics
Technically savvy, but not optimal Trapped in a process It’s just the way that things work here
But there’s plenty of guidance, right?
No!
Microsoft is Guilty!
Study of permutations to deliver a user interface
32 (We actually think it’s nearer to 50, but we ran out of time) Windows 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
What vectors can we use?
Application Connectivity Graphics Look and Feel Interaction Environment Installation Integration Hardware Developer IQ Persona Location Mobility Training Personalization
 
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?)
 
 
Productivity Time
1.  Discovery 2.  Learning 3.  Mastery Productivity Time
Reduced by Familiarity Productivity Time
 
 
 
Siebel Client Siebel CRM
Web Browser Siebel CRM Web Services ASP.NET
Web Browser Siebel CRM Web Services ASP.NET Outlook
 
Web Browser Siebel CRM Web Services ASP.NET Outlook
Web Browser Siebel CRM Web Services ASP.NET Outlook
 
Productivity Time D L M Persona - Sally
Productivity Time Persona - Derek D L M
Productivity Time Persona - Jim D L M
Productivity Time D L M
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 conversations  are often engineering conversations
Performance vs. Expectations
Specific Expectations
Why is this taking so long?!
Few Expectations
I wonder how long this will take?
Asynchronous Javascript And XML
 
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
 
The biggest hurdle for building trust in your application is  time
Once that trust is lost, it’s very difficult to recover
Installation ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Source:  http://simonguest.com/blogs/smguest/archive/2006/11/21/Ten-Ways-for-Good-Installation-Karma.aspx
Installation Handling Exceptions
Installation Handling Exceptions Enable Undo’s
Typical User Testing Willing users
 
Etc. RITE  Rapid Iterative Testing and Evaluation Willing user
Source:  http://download.microsoft.com/download/5/c/c/5cc406a0-0f87-4b94-bf80-dbc707db4fe1/mgsut_MWTRF02.doc.doc   RITE  Rapid Iterative Testing and Evaluation
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 find errors that would go otherwise undiscovered)
 
 
It’s all about the SDLC…
Project Starts! Project Complete Use cases created IT + User / BA Prototyping IT Development of Services IT UI is created IT User Testing User / BA
I know what we’ll do…
Project Starts! Use cases created Prototyping Development of Services UI is created IT + User / BA IT IT IT User Testing Project Complete User / BA
A more successful methodology for promoting UX
Project Starts! Project Complete Use cases created IT + User / BA Prototyping Development of Services IT User Testing User / BA
Are all designers the same?
Project Starts! Project Complete Use cases created IT + User / BA Prototyping Development of Services IT UI and Services Integrated User Testing User / BA Development of UX
Graphic Designer Interaction Designer Interaction Designer
 
Project Starts! Project Complete Use cases created IT + User / BA Prototyping Development of Services IT UI and Services Integrated User Testing User / BA Development of UX
Project Starts! Project Complete Use cases created IT + User / BA Prototyping IT + Designer + User / BA Development of Services IT IT + Designer User Testing User / BA Development of UX Designer + User / BA
What we need to learn: ,[object Object],[object Object],[object Object],XAML Developer Designer
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)
 
 
Hey team, v2.0 was a hit! 8 7 7 9 8
… it’s been out for a month and we haven’t heard a thing back from our users! ? ? ? ? ?
Reactive feedback is all too common 2 1 3 1 1
 
Rating scale in the application
Remote troubleshooting Rating scale in the application
Remote troubleshooting Effective status updates Rating scale in the application
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)
 
Overall Takeaways 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 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. [email_address] http://www.simonguest.com
1 of 156

More Related Content

What's hot(20)

Similar to User Driven Software Architecture(20)

User Driven Software Architecture

  • 1. User Driven Software Architecture Simon Guest Senior Director Platform Architecture Team Microsoft Corporation
  • 2. “ What is Architecture?”
  • 3. “ Architecture is the balance between art and engineering”
  • 4. But does this apply to Software Architecture?
  • 5. Engineering Concerns SOA ESB Web Services Transactions ORM Replication etc.
  • 6. What is the art in Software Architecture?
  • 8. User Experience Often Comes Last Source: www.userinterfacehallofshame.com
  • 9. User Experience Often Comes Last Source: www.userinterfacehallofshame.com
  • 10. User Experience Often Comes Last Source: www.userinterfacehallofshame.com
  • 11. Well understood environment… … with bright people… … and stable business model
  • 12. … and we’d never get funding I’m not very good at UI stuff… … our users are smart enough…
  • 13. “ What did I do wrong?”
  • 15. New Perspective As architects and developers, we are in a position to affect user experience
  • 16.  
  • 17. “ 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”
  • 19. 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!”
  • 20. Personas Performance Productivity Purpose Prototype Platform Interface Ideas
  • 21. 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…”
  • 22. Personas Performance Productivity Purpose Prototype Proactive Platform Proven People Interface Ideas Internals
  • 23.  
  • 24.  
  • 25. Know Thy User For He Is Not Thee Questions and Quote, Source: Why Software Sucks [2006], David Platt
  • 26. Definition of a “user”
  • 27. “ This would be quicker to develop as a Web Application. Users will understand how to use this.”
  • 28. “ Yeah, most users will have access to a printer from their desk…”
  • 29. “ Of course this button should be red. Users will know that this means danger.”
  • 31.
  • 32.
  • 33.
  • 34. “ For Sally , a Web Interface may make sense. But Derek has a lot of keyboard shortcuts we need to implement.”
  • 35. “ Jim will have access to a printer via his admin, but Sally works on the road, so may need another option”
  • 36. “ For Jim , a red button may mean danger, but we should check for Derek in our offshore call center”
  • 37. Takeaways Source: Persona Lifecycle [Pruitt, Adlin] Morgan Kaufmann 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)
  • 38.  
  • 39.  
  • 40. Create new document Type text Format the text Email to editor
  • 41. Create new document Type text Format the text Email to editor Task Task Task Task Goal
  • 42.  
  • 43. Create new document Type text Format the text Email to editor Task Task Task Task Filter
  • 44. Create new document Type text Format the text Email to editor Task Task Task Task Guess the Goal
  • 45.  
  • 46. Create new document Type text Format the text Email to editor Task Task Task Task Apply Context Apply Context Apply Context
  • 47.  
  • 48.  
  • 49.  
  • 51. Takeaways In 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 suitable for your application? (Refer to the list of ISVs supporting controls)
  • 52.  
  • 53.  
  • 54. You want to build a house… You hire a building architect… You discuss requirements…
  • 55. A prototype is created
  • 57. You want to build a house… You hire a software architect… You discuss requirements…
  • 58. Yeah, sorry, I don’t have much to show you right now…
  • 59. I can show you some diagrams, but you won’t understand them.
  • 60. But trust me – it’s going to be great!
  • 62. In Software Architecture we don’t do enough prototyping
  • 63. Static, one-way presentations (shown only to management) Few re-usable design assets Often different to what gets delivered
  • 64.
  • 65.
  • 66. The same set of controls Inherit High Fidelity Style Inherit Low Fidelity Style
  • 67. How about if we could switch styles?
  • 68. 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)
  • 69.  
  • 70.  
  • 71.  
  • 73. No one wants to choose the wrong thing…
  • 74. Pick something based on Competition Pick something based on Experience Pick something based on Politics
  • 75. Technically savvy, but not optimal Trapped in a process It’s just the way that things work here
  • 76. But there’s plenty of guidance, right?
  • 77. No!
  • 79. Study of permutations to deliver a user interface
  • 80. 32 (We actually think it’s nearer to 50, but we ran out of time) Windows 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
  • 81. What vectors can we use?
  • 82. Application Connectivity Graphics Look and Feel Interaction Environment Installation Integration Hardware Developer IQ Persona Location Mobility Training Personalization
  • 83.  
  • 84. 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?)
  • 85.  
  • 86.  
  • 88. 1. Discovery 2. Learning 3. Mastery Productivity Time
  • 89. Reduced by Familiarity Productivity Time
  • 90.  
  • 91.  
  • 92.  
  • 94. Web Browser Siebel CRM Web Services ASP.NET
  • 95. Web Browser Siebel CRM Web Services ASP.NET Outlook
  • 96.  
  • 97. Web Browser Siebel CRM Web Services ASP.NET Outlook
  • 98. Web Browser Siebel CRM Web Services ASP.NET Outlook
  • 99.  
  • 100. Productivity Time D L M Persona - Sally
  • 101. Productivity Time Persona - Derek D L M
  • 104. 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)
  • 105.  
  • 106. Performance conversations are often engineering conversations
  • 109. Why is this taking so long?!
  • 111. I wonder how long this will take?
  • 113.  
  • 114. 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)
  • 115.  
  • 116. Performance Productivity Purpose Prototype Proactive Platform Proven People Interface Ideas Internals Personas
  • 117.  
  • 118. The biggest hurdle for building trust in your application is time
  • 119. Once that trust is lost, it’s very difficult to recover
  • 120.
  • 123. Typical User Testing Willing users
  • 124.  
  • 125. Etc. RITE Rapid Iterative Testing and Evaluation Willing user
  • 127. 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 find errors that would go otherwise undiscovered)
  • 128.  
  • 129.  
  • 130. It’s all about the SDLC…
  • 131. Project Starts! Project Complete Use cases created IT + User / BA Prototyping IT Development of Services IT UI is created IT User Testing User / BA
  • 132. I know what we’ll do…
  • 133. Project Starts! Use cases created Prototyping Development of Services UI is created IT + User / BA IT IT IT User Testing Project Complete User / BA
  • 134. A more successful methodology for promoting UX
  • 135. Project Starts! Project Complete Use cases created IT + User / BA Prototyping Development of Services IT User Testing User / BA
  • 136. Are all designers the same?
  • 137. Project Starts! Project Complete Use cases created IT + User / BA Prototyping Development of Services IT UI and Services Integrated User Testing User / BA Development of UX
  • 138. Graphic Designer Interaction Designer Interaction Designer
  • 139.  
  • 140. Project Starts! Project Complete Use cases created IT + User / BA Prototyping Development of Services IT UI and Services Integrated User Testing User / BA Development of UX
  • 141. Project Starts! Project Complete Use cases created IT + User / BA Prototyping IT + Designer + User / BA Development of Services IT IT + Designer User Testing User / BA Development of UX Designer + User / BA
  • 142.
  • 143. 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)
  • 144.  
  • 145.  
  • 146. Hey team, v2.0 was a hit! 8 7 7 9 8
  • 147. … it’s been out for a month and we haven’t heard a thing back from our users! ? ? ? ? ?
  • 148. Reactive feedback is all too common 2 1 3 1 1
  • 149.  
  • 150. Rating scale in the application
  • 151. Remote troubleshooting Rating scale in the application
  • 152. Remote troubleshooting Effective status updates Rating scale in the application
  • 153. 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)
  • 154.  
  • 155. Overall Takeaways 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 Realize Ideas by defining personas, purpose and prototyping
  • 156. © 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. [email_address] http://www.simonguest.com