User Driven Software Architecture

5,005 views

Published on

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

Published in: Technology

User Driven Software Architecture

  1. 1. User Driven Software Architecture Simon Guest Senior Director Platform Architecture Team Microsoft Corporation
  2. 2. “ What is Architecture?”
  3. 3. “ Architecture is the balance between art and engineering”
  4. 4. But does this apply to Software Architecture?
  5. 5. Engineering Concerns SOA ESB Web Services Transactions ORM Replication etc.
  6. 6. What is the art in Software Architecture?
  7. 7. User Experience Often Comes Last
  8. 8. User Experience Often Comes Last Source: www.userinterfacehallofshame.com
  9. 9. User Experience Often Comes Last Source: www.userinterfacehallofshame.com
  10. 10. User Experience Often Comes Last Source: www.userinterfacehallofshame.com
  11. 11. Well understood environment… … with bright people… … and stable business model
  12. 12. … and we’d never get funding I’m not very good at UI stuff… … our users are smart enough…
  13. 13. “ What did I do wrong?”
  14. 14. New Perspective
  15. 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”
  17. 18. Personas Purpose Prototype Ideas
  18. 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!”
  19. 20. Personas Performance Productivity Purpose Prototype Platform Interface Ideas
  20. 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…”
  21. 22. Personas Performance Productivity Purpose Prototype Proactive Platform Proven People Interface Ideas Internals
  22. 25. Know Thy User For He Is Not Thee Questions and Quote, Source: Why Software Sucks [2006], David Platt
  23. 26. Definition of a “user”
  24. 27. “ This would be quicker to develop as a Web Application. Users will understand how to use this.”
  25. 28. “ Yeah, most users will have access to a printer from their desk…”
  26. 29. “ Of course this button should be red. Users will know that this means danger.”
  27. 30. Think instead using Personas
  28. 31. <ul><li>Sally (Sales Professional) </li></ul><ul><li>38, Married </li></ul><ul><li>2 Children </li></ul><ul><li>5 years of computer experience </li></ul><ul><li>Windows, Office, PowerPoint </li></ul><ul><li>Has between 10 and 20 SME clients </li></ul><ul><li>Uses Sony Vaio and Samsung Blackjack </li></ul><ul><li>“ Keep me connected to the top issues that customers are calling in with” </li></ul>
  29. 32. <ul><li>Derek (Call Center Operator) </li></ul><ul><li>25, Single </li></ul><ul><li>9 years of computer experience </li></ul><ul><li>3 years of which in a call center </li></ul><ul><li>PDA/gadget junkie – “lifehacker” </li></ul><ul><li>Relies on call center application </li></ul><ul><li>Gets bonus if exceeds monthly quota </li></ul><ul><li>“ I want the application to decrease my time spent per call” </li></ul>
  30. 33. <ul><li>Jim (Call Center Executive) </li></ul><ul><li>57, Married </li></ul><ul><li>4 Children, all left home </li></ul><ul><li>Very limited computer experience </li></ul><ul><li>Brenda (his admin) used to print all his Email until very recently </li></ul><ul><li>Shows off his PDA on the golf course </li></ul><ul><li>“ I want the high level, abstract view of my customers” </li></ul>
  31. 34. “ For Sally , a Web Interface may make sense. But Derek has a lot of keyboard shortcuts we need to implement.”
  32. 35. “ Jim will have access to a printer via his admin, but Sally works on the road, so may need another option”
  33. 36. “ For Jim , a red button may mean danger, but we should check for Derek in our offshore call center”
  34. 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)
  35. 40. Create new document Type text Format the text Email to editor
  36. 41. Create new document Type text Format the text Email to editor Task Task Task Task Goal
  37. 43. Create new document Type text Format the text Email to editor Task Task Task Task Filter
  38. 44. Create new document Type text Format the text Email to editor Task Task Task Task Guess the Goal
  39. 46. Create new document Type text Format the text Email to editor Task Task Task Task Apply Context Apply Context Apply Context
  40. 50. Source: www.devcomponents.com
  41. 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)
  42. 54. You want to build a house… You hire a building architect… You discuss requirements…
  43. 55. A prototype is created
  44. 56. 12 months later…
  45. 57. You want to build a house… You hire a software architect… You discuss requirements…
  46. 58. Yeah, sorry, I don’t have much to show you right now…
  47. 59. I can show you some diagrams, but you won’t understand them.
  48. 60. But trust me – it’s going to be great!
  49. 61. 12 months later…
  50. 62. In Software Architecture we don’t do enough prototyping
  51. 63. Static, one-way presentations (shown only to management) Few re-usable design assets Often different to what gets delivered
  52. 64. Great for Management! <ul><li>Looks almost done </li></ul><ul><li>But… </li></ul><ul><li>Users won’t give you much feedback… </li></ul><ul><li>High Fidelity </li></ul><ul><li>“ Just sign here…” </li></ul>
  53. 65. Great for Users! <ul><li>Great for user feedback </li></ul><ul><li>But… </li></ul><ul><li>You wouldn’t take it into the board room… </li></ul><ul><li>Low fidelity </li></ul><ul><li>“ Sure, we can move it…” </li></ul>Image: Paper Prototyping / Nielsen Norman Group
  54. 66. The same set of controls Inherit High Fidelity Style Inherit Low Fidelity Style
  55. 67. How about if we could switch styles?
  56. 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)
  57. 72. Too many choices…
  58. 73. No one wants to choose the wrong thing…
  59. 74. Pick something based on Competition Pick something based on Experience Pick something based on Politics
  60. 75. Technically savvy, but not optimal Trapped in a process It’s just the way that things work here
  61. 76. But there’s plenty of guidance, right?
  62. 77. No!
  63. 78. Microsoft is Guilty!
  64. 79. Study of permutations to deliver a user interface
  65. 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
  66. 81. What vectors can we use?
  67. 82. Application Connectivity Graphics Look and Feel Interaction Environment Installation Integration Hardware Developer IQ Persona Location Mobility Training Personalization
  68. 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?)
  69. 87. Productivity Time
  70. 88. 1. Discovery 2. Learning 3. Mastery Productivity Time
  71. 89. Reduced by Familiarity Productivity Time
  72. 93. Siebel Client Siebel CRM
  73. 94. Web Browser Siebel CRM Web Services ASP.NET
  74. 95. Web Browser Siebel CRM Web Services ASP.NET Outlook
  75. 97. Web Browser Siebel CRM Web Services ASP.NET Outlook
  76. 98. Web Browser Siebel CRM Web Services ASP.NET Outlook
  77. 100. Productivity Time D L M Persona - Sally
  78. 101. Productivity Time Persona - Derek D L M
  79. 102. Productivity Time Persona - Jim D L M
  80. 103. Productivity Time D L M
  81. 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)
  82. 106. Performance conversations are often engineering conversations
  83. 107. Performance vs. Expectations
  84. 108. Specific Expectations
  85. 109. Why is this taking so long?!
  86. 110. Few Expectations
  87. 111. I wonder how long this will take?
  88. 112. Asynchronous Javascript And XML
  89. 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)
  90. 116. Performance Productivity Purpose Prototype Proactive Platform Proven People Interface Ideas Internals Personas
  91. 118. The biggest hurdle for building trust in your application is time
  92. 119. Once that trust is lost, it’s very difficult to recover
  93. 120. Installation <ul><li>Visualization </li></ul><ul><li>Annoying Flash/animations </li></ul><ul><li>Too many options </li></ul><ul><li>Unpacking the installation </li></ul><ul><li>Pre-Requisites </li></ul><ul><li>Do you really need a restart? </li></ul><ul><li>What permissions required? </li></ul><ul><li>What apps need quitting? </li></ul>Source: http://simonguest.com/blogs/smguest/archive/2006/11/21/Ten-Ways-for-Good-Installation-Karma.aspx
  94. 121. Installation Handling Exceptions
  95. 122. Installation Handling Exceptions Enable Undo’s
  96. 123. Typical User Testing Willing users
  97. 125. Etc. RITE Rapid Iterative Testing and Evaluation Willing user
  98. 126. Source: http://download.microsoft.com/download/5/c/c/5cc406a0-0f87-4b94-bf80-dbc707db4fe1/mgsut_MWTRF02.doc.doc RITE Rapid Iterative Testing and Evaluation
  99. 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)
  100. 130. It’s all about the SDLC…
  101. 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
  102. 132. I know what we’ll do…
  103. 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
  104. 134. A more successful methodology for promoting UX
  105. 135. Project Starts! Project Complete Use cases created IT + User / BA Prototyping Development of Services IT User Testing User / BA
  106. 136. Are all designers the same?
  107. 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
  108. 138. Graphic Designer Interaction Designer Interaction Designer
  109. 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
  110. 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
  111. 142. What we need to learn: <ul><li>How much code level understanding will designers require? </li></ul><ul><li>Who owns check-in of XAML artifacts? </li></ul><ul><li>Will we require an “interface stub” for communication? </li></ul>XAML Developer Designer
  112. 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)
  113. 146. Hey team, v2.0 was a hit! 8 7 7 9 8
  114. 147. … it’s been out for a month and we haven’t heard a thing back from our users! ? ? ? ? ?
  115. 148. Reactive feedback is all too common 2 1 3 1 1
  116. 150. Rating scale in the application
  117. 151. Remote troubleshooting Rating scale in the application
  118. 152. Remote troubleshooting Effective status updates Rating scale in the application
  119. 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)
  120. 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
  121. 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

×