<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Testmundo : UX Design</title><link>http://blogs.msdn.com/nnaderi/archive/tags/UX+Design/default.aspx</link><description>Tags: UX Design</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>The Evolution of the UI Design of Test and Lab Manager</title><link>http://blogs.msdn.com/nnaderi/archive/2009/05/29/the-evolution-of-the-ui-design-of-test-and-lab-manager.aspx</link><pubDate>Fri, 29 May 2009 08:08:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9649331</guid><dc:creator>nnaderi</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/nnaderi/comments/9649331.aspx</comments><wfw:commentRss>http://blogs.msdn.com/nnaderi/commentrss.aspx?PostID=9649331</wfw:commentRss><description>&lt;P&gt;&lt;EM&gt;In the last post, I discussed how our team approaches designing user interfaces in an Agile manner. In this post, I will discuss how the design of Test and Lab Manager, aka codename Camano, has evolved as assumptions were tested and feedback was received. &lt;/EM&gt;&lt;/P&gt;
&lt;H2&gt;Starting out&lt;/H2&gt;
&lt;P&gt;After doing extensive research on the testing market, we were fairly certain that in the next release, we wanted to create a product targeting Generalist Testers (70% of the testing market) who are uncomfortable with the amount of options available to them in Visual Studio. We were however fairly uncertain on the exactly which features to include in the product all the scenarios which we would have time to handle. &lt;/P&gt;
&lt;P&gt;Being an Agile team who was open to change along the way, we decided to start designing and developing the product with the understanding that change would come along the way.&lt;/P&gt;
&lt;H2&gt;Iteration 1: Test Case Management inside Visual Studio&lt;/H2&gt;
&lt;P&gt;To get going on the project, while our other release (Visual Studio 2008) was winding down, we decided to create the basics of testing tools inside Visual Studio. Our thinking was that we wanted to get some tools around Test Case Management in the box so we could leverage the infrastructure which we had created in future sprints.&lt;/P&gt;
&lt;P&gt;Below are a couple of shots of how we envisioned doing Test Case Management inside Visual Studio.&amp;nbsp; The first shows managing configurations, the second shows authoring a test case (which is a work item). The mockups below were created by Moneta Ho.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/nnaderi/WindowsLiveWriter/TheevolutionofUserExperienceinCamano_E863/image_18.png" mce_href="http://blogs.msdn.com/blogfiles/nnaderi/WindowsLiveWriter/TheevolutionofUserExperienceinCamano_E863/image_18.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: block; FLOAT: none; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN-LEFT: auto; BORDER-LEFT-WIDTH: 0px; MARGIN-RIGHT: auto" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/nnaderi/WindowsLiveWriter/TheevolutionofUserExperienceinCamano_E863/image_thumb_8.png" width=644 height=467 mce_src="http://blogs.msdn.com/blogfiles/nnaderi/WindowsLiveWriter/TheevolutionofUserExperienceinCamano_E863/image_thumb_8.png"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/nnaderi/WindowsLiveWriter/TheevolutionofUserExperienceinCamano_E863/image_20.png" mce_href="http://blogs.msdn.com/blogfiles/nnaderi/WindowsLiveWriter/TheevolutionofUserExperienceinCamano_E863/image_20.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: block; FLOAT: none; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN-LEFT: auto; BORDER-LEFT-WIDTH: 0px; MARGIN-RIGHT: auto" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/nnaderi/WindowsLiveWriter/TheevolutionofUserExperienceinCamano_E863/image_thumb_9.png" width=644 height=467 mce_src="http://blogs.msdn.com/blogfiles/nnaderi/WindowsLiveWriter/TheevolutionofUserExperienceinCamano_E863/image_thumb_9.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;H2&gt;Iteration 2: Creating codename Camano&lt;/H2&gt;
&lt;P&gt;As more research studies became available and we learned more about our target market's likes and dislikes, the team decided to create a standalone environment for generalist testers and to scrap the abilities to do TCM in Visual Studio. Our studies had told us that our target audience was not extremely technical and was a little overwhelmed by Visual Studio.&amp;nbsp; We hoped that in doing so, testers would feel much more comfortable using our tools for their testing.&amp;nbsp; The sprint of work that we did inside Visual Studio was not throw away work since the majority of it was merged into Camano later on.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;UI Breakdown&lt;/STRONG&gt;: Although, we were unsure which actual features would end up in the product, we envisioned that the majority of the tasks would fall in to 5 broad categories: Dashboard Information, Planning, Testing, Triaging Bugs and Reporting. To accommodate these groups, we chunked the UI into 5 groups: Home, Planning, Testing, Defects and Reports, with the perl on the left reserved for items which didn't seem to fit into any group.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Workflows&lt;/STRONG&gt;: We wanted to make the product as simple to use as possible so we thought to guide the user through the workflow of various tasks. To this end, we modeled much of the UI after traditional tasked based UIs such as Microsoft Money, with the left portion the UI dedicated to guiding the user through various workflows via hyperlinks. Tasks which were specific to the activity displayed in the activity window would be displayed as "common activities," while tasks specific to whatever is selected in the page would appear under "selected activities."&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Multi-tasking&lt;/STRONG&gt;: As we felt that it would be quite common to work on multiple things in parallel, we introduced a work in progress area to the left hand pane. The area worked by like a stack in that when a user navigated away from an activity, the activity from which the user went was placed at the top of the stack.&lt;/P&gt;
&lt;P&gt;Below are a few mock ups, created by Moneta Ho, of the initial design of Camano.&amp;nbsp; The first shows the broad breakdown of the UI, the second shows the UI with a few artifacts.&lt;A href="http://blogs.msdn.com/blogfiles/nnaderi/WindowsLiveWriter/TheevolutionofUserExperienceinCamano_E863/image_6.png" mce_href="http://blogs.msdn.com/blogfiles/nnaderi/WindowsLiveWriter/TheevolutionofUserExperienceinCamano_E863/image_6.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: block; FLOAT: none; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN-LEFT: auto; BORDER-LEFT-WIDTH: 0px; MARGIN-RIGHT: auto" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/nnaderi/WindowsLiveWriter/TheevolutionofUserExperienceinCamano_E863/image_thumb_2.png" width=644 height=469 mce_src="http://blogs.msdn.com/blogfiles/nnaderi/WindowsLiveWriter/TheevolutionofUserExperienceinCamano_E863/image_thumb_2.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/nnaderi/WindowsLiveWriter/TheevolutionofUserExperienceinCamano_E863/image_28.png" mce_href="http://blogs.msdn.com/blogfiles/nnaderi/WindowsLiveWriter/TheevolutionofUserExperienceinCamano_E863/image_28.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: block; FLOAT: none; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN-LEFT: auto; BORDER-LEFT-WIDTH: 0px; MARGIN-RIGHT: auto" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/nnaderi/WindowsLiveWriter/TheevolutionofUserExperienceinCamano_E863/image_thumb_13.png" width=640 height=484 mce_src="http://blogs.msdn.com/blogfiles/nnaderi/WindowsLiveWriter/TheevolutionofUserExperienceinCamano_E863/image_thumb_13.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;H2&gt;Iteration 3: Simple Tweaks&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;Problems&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;We conducted a round of usability studies with local testers. We took away the following details from the study:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Many people did not understand where they were in the UI at any given point &lt;/LI&gt;
&lt;LI&gt;Many didn't understand why the contents of the left hand pane was changing all the time or find it useful &lt;/LI&gt;
&lt;LI&gt;Nobody used the work in progress area to switch between items, rather they preferred to just navigate to it directly &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;After observing users crying out in frustration in the usability study, we decided to make some tweaks to the Camano shell.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Solution&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Since most users did not correlate between selecting an item in the grid and then selecting an action to be performed on it far away, we moved all actions that could be performed on items in a grid to a toolbar directly above the item.&amp;nbsp; Further, we created a toolbar to contain items for the page displayed in the Activities pane.&amp;nbsp; Together, this allowed us to get rid of the selected item activities and paved the way to getting rid of the left hand pane entirely later on.&lt;/P&gt;
&lt;P&gt;As we iterated, we found that we really did not need the Perl in the top left hand corner in the UI. We therefore removed it from the product as well.&lt;/P&gt;
&lt;P&gt;Below is a screenshot of the tweaks that were made, one with a blue theme, one with a dark theme.&amp;nbsp; Both themes were in implemented in the the product at various times.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/nnaderi/WindowsLiveWriter/TheevolutionofUserExperienceinCamano_E863/image_10.png" mce_href="http://blogs.msdn.com/blogfiles/nnaderi/WindowsLiveWriter/TheevolutionofUserExperienceinCamano_E863/image_10.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: block; FLOAT: none; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN-LEFT: auto; BORDER-LEFT-WIDTH: 0px; MARGIN-RIGHT: auto" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/nnaderi/WindowsLiveWriter/TheevolutionofUserExperienceinCamano_E863/image_thumb_4.png" width=644 height=483 mce_src="http://blogs.msdn.com/blogfiles/nnaderi/WindowsLiveWriter/TheevolutionofUserExperienceinCamano_E863/image_thumb_4.png"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;H2&gt;&lt;A href="http://blogs.msdn.com/blogfiles/nnaderi/WindowsLiveWriter/TheevolutionofUserExperienceinCamano_E863/image_16.png" mce_href="http://blogs.msdn.com/blogfiles/nnaderi/WindowsLiveWriter/TheevolutionofUserExperienceinCamano_E863/image_16.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: block; FLOAT: none; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN-LEFT: auto; BORDER-LEFT-WIDTH: 0px; MARGIN-RIGHT: auto" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/nnaderi/WindowsLiveWriter/TheevolutionofUserExperienceinCamano_E863/image_thumb_7.png" width=644 height=484 mce_src="http://blogs.msdn.com/blogfiles/nnaderi/WindowsLiveWriter/TheevolutionofUserExperienceinCamano_E863/image_thumb_7.png"&gt;&lt;/A&gt;&lt;/H2&gt;
&lt;H2&gt;Iteration 4: Major Overhaul &lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;Problems&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;As more of Camano began to take shape and more users internally began to use it, we increasingly received feedback from almost all of our channels including TAP, MVPs, &lt;A href="http://blogs.msdn.com/controlpanel/blogs/www.ttsig.com" mce_href="www.ttsig.com"&gt;the SIG&lt;/A&gt; and internal users that the product was not easy to use.&amp;nbsp; In our effort to make something that would allow people to plan all the steps of their testing, we made something which exposed too many artifacts in the UI at one time, did not guide a user through any particular workflow and to some extent got in the way of a user doing their testing. Although we initially designed band aid solutions such as activities dedicated to streamlining the out of the box experience via a wizard,&amp;nbsp; filtering a tester’s view by various factors, and workflow diagrams built into the page, we felt we needed to do something more dramatic.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Further, it was felt that our current UI:&amp;nbsp; &lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Had too much space (around 40%) dedicated to navigation.&amp;nbsp; Much of the navigation was redundant with 2 or 3 areas dedicated to doing the same thing. &lt;/LI&gt;
&lt;LI&gt;Our history metaphor was not working.&amp;nbsp; Our work in progress area quickly filled with items which the user was not interested in navigating back to. &lt;/LI&gt;
&lt;LI&gt;Did not make it easy to perform simple tasks.&amp;nbsp; 2 or 3 steps were needed to just perform simple things without the tool guiding the user through the process. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;In a typical tester’s day, we began to understand that:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Most testers would work within the context of a Single Test Plan.&amp;nbsp; Examining items that span multiple plans would be a 20% scenario. &lt;/LI&gt;
&lt;LI&gt;The majority of their time would be spent in 3 types of activities: Authoring Tests, Running Tests, and Examining Bugs &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Solution&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;Object Model:&lt;/EM&gt; After much discussion, between both server and client teams, it was realized that the object model on which Camano was based could be dramatically simplified if we always forced the user to plan their test cases for execution at the plan level rather than as stand-alone suites which could be used from plan to plan.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Some of the initial sketches of this idea by Ed Glas and the server team were as follows: &lt;/P&gt;
&lt;P align=center&gt;&lt;A href="http://blogs.msdn.com/blogfiles/nnaderi/WindowsLiveWriter/TheevolutionofUserExperienceinCamano_E863/SuiteManagerInPAC_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/nnaderi/WindowsLiveWriter/TheevolutionofUserExperienceinCamano_E863/SuiteManagerInPAC_2.jpg"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=SuiteManagerInPAC border=0 alt=SuiteManagerInPAC src="http://blogs.msdn.com/blogfiles/nnaderi/WindowsLiveWriter/TheevolutionofUserExperienceinCamano_E863/SuiteManagerInPAC_thumb.jpg" width=644 height=484 mce_src="http://blogs.msdn.com/blogfiles/nnaderi/WindowsLiveWriter/TheevolutionofUserExperienceinCamano_E863/SuiteManagerInPAC_thumb.jpg"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P align=center&gt;&lt;A href="http://blogs.msdn.com/blogfiles/nnaderi/WindowsLiveWriter/TheevolutionofUserExperienceinCamano_E863/AssignTests_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/nnaderi/WindowsLiveWriter/TheevolutionofUserExperienceinCamano_E863/AssignTests_2.jpg"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=AssignTests border=0 alt=AssignTests src="http://blogs.msdn.com/blogfiles/nnaderi/WindowsLiveWriter/TheevolutionofUserExperienceinCamano_E863/AssignTests_thumb.jpg" width=644 height=484 mce_src="http://blogs.msdn.com/blogfiles/nnaderi/WindowsLiveWriter/TheevolutionofUserExperienceinCamano_E863/AssignTests_thumb.jpg"&gt;&lt;/A&gt;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&lt;EM&gt;User Interface:&lt;/EM&gt; To assist with the issues mentioned above, we decided to make several changes to the UI.&amp;nbsp; Specifically, we decided to optimize the UI on common workflows, make it easier to access the most common activities, eliminate the left hand pane, change the history metaphor, add back and forward buttons to the UI and to force the user to work within a single plan. &lt;/P&gt;
&lt;P&gt;By doing so, I think that we were able to naturally filter the perspective of the tester to the items they are interested in (their currently connected plan), and streamline workflows. With these changes made, workflows become much more natural since objects are always created in the context of a plan. &lt;/P&gt;
&lt;P&gt;Below is a mock up of design, by Nigel Wolters, that shows the changes, followed by a screenshot of what was actually implemented.&amp;nbsp; Note that the amount of space dedicated to navigation was minimized and that when the user is in the “Tester’s Center,” the user’s perspective is filtered to the Test Plan to which they are currently connected.&amp;nbsp; Further, access to the most common areas (to author or run tests or look at bugs), are just one or two clicks away at any given point.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/nnaderi/WindowsLiveWriter/TheevolutionofUserExperienceinCamano_E863/image_12.png" mce_href="http://blogs.msdn.com/blogfiles/nnaderi/WindowsLiveWriter/TheevolutionofUserExperienceinCamano_E863/image_12.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: block; FLOAT: none; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN-LEFT: auto; BORDER-LEFT-WIDTH: 0px; MARGIN-RIGHT: auto" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/nnaderi/WindowsLiveWriter/TheevolutionofUserExperienceinCamano_E863/image_thumb_5.png" width=642 height=484 mce_src="http://blogs.msdn.com/blogfiles/nnaderi/WindowsLiveWriter/TheevolutionofUserExperienceinCamano_E863/image_thumb_5.png"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;H2&gt;&lt;A href="http://blogs.msdn.com/blogfiles/nnaderi/WindowsLiveWriter/TheevolutionofUserExperienceinCamano_E863/image_26.png" mce_href="http://blogs.msdn.com/blogfiles/nnaderi/WindowsLiveWriter/TheevolutionofUserExperienceinCamano_E863/image_26.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: block; FLOAT: none; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN-LEFT: auto; BORDER-LEFT-WIDTH: 0px; MARGIN-RIGHT: auto" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/nnaderi/WindowsLiveWriter/TheevolutionofUserExperienceinCamano_E863/image_thumb_12.png" width=644 height=463 mce_src="http://blogs.msdn.com/blogfiles/nnaderi/WindowsLiveWriter/TheevolutionofUserExperienceinCamano_E863/image_thumb_12.png"&gt;&lt;/A&gt;&lt;/H2&gt;
&lt;H2&gt;Iteration 5: Simple Tweaks&lt;/H2&gt;
&lt;P&gt;After making the major overhaul to the object model and accompanying changes in the UI, we started to get raving reviews.&amp;nbsp; Folks were particularly happy to have the full horizontal screen for their activity content and that they were able to get testing quickly out of the box. All of our feedback channels started telling us that the product felt much more polished and easy to use.&lt;/P&gt;
&lt;P&gt;As folks in Visual Studio started to look at it, it was pointed out that the colors were not in sync with the new blue Visual Studio theme in VS2010.&amp;nbsp; We decided to do a simple update to make Camano blue in addition to making it a little sexier.&amp;nbsp; I’m quite happy with how it ended up.&lt;/P&gt;
&lt;P&gt;Below is a mockup created by David Culberton in conjunction with Nigel Wolters. It is very close to how the Beta 1 product looks and feels.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/nnaderi/WindowsLiveWriter/TheevolutionofUserExperienceinCamano_E863/image_24.png" mce_href="http://blogs.msdn.com/blogfiles/nnaderi/WindowsLiveWriter/TheevolutionofUserExperienceinCamano_E863/image_24.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: block; FLOAT: none; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN-LEFT: auto; BORDER-LEFT-WIDTH: 0px; MARGIN-RIGHT: auto" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/nnaderi/WindowsLiveWriter/TheevolutionofUserExperienceinCamano_E863/image_thumb_11.png" width=643 height=484 mce_src="http://blogs.msdn.com/blogfiles/nnaderi/WindowsLiveWriter/TheevolutionofUserExperienceinCamano_E863/image_thumb_11.png"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;H2&gt;Conclusion&lt;/H2&gt;
&lt;P&gt;As you can see, in the run up to the Beta 1 release of codename Camano, the product has been completely redesigned several times.&amp;nbsp;&amp;nbsp; My hat goes off to the Agile process and management which has allowed us to respond to various levels of feedback to make design changes when appropriate.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;I should note how much of a team effort designing Camano has been.&amp;nbsp; Each design decision has been thoroughly scrutinized to make sure that the right trade-offs are considered and the right optimizations are made.&amp;nbsp; Nigel Wolters, David Culbertson, Moneta Ho, Mark Mydland, David R. Williamson, &lt;A href="http://blogs.msdn.com/edglas/" mce_href="http://blogs.msdn.com/edglas/"&gt;Ed Glas&lt;/A&gt;, Michael Rigler, &lt;A href="http://blogs.msdn.com/dhopton/" mce_href="http://blogs.msdn.com/dhopton/"&gt;Dominic Hopton&lt;/A&gt;, &lt;A href="http://blogs.msdn.com/euanga/" mce_href="http://blogs.msdn.com/euanga/"&gt;Euan Garden&lt;/A&gt; and myself (&lt;A href="http://blogs.msdn.com/nnaderi/default.aspx" mce_href="http://blogs.msdn.com/nnaderi/default.aspx"&gt;Naysawn Naderi&lt;/A&gt;) have have all been thoroughly involved in making Camano as easy on the eye as we think it is easy to use. &lt;/P&gt;
&lt;P&gt;Along these lines, we are also incredibly indebted to our MVPs, &lt;A href="http://blogs.msdn.com/controlpanel/blogs/www.ttsig.com" mce_href="www.ttsig.com"&gt;SIG representatives&lt;/A&gt; and many other unsung feedback heros who have been invaluable in praising us when appropriate and holding us out on the ringer when we deserve to as well.&amp;nbsp; My thanks goes out to you for helping to shape the design of codename Camano.&amp;nbsp; &lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9649331" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/nnaderi/archive/tags/Rosario/default.aspx">Rosario</category><category domain="http://blogs.msdn.com/nnaderi/archive/tags/Camano/default.aspx">Camano</category><category domain="http://blogs.msdn.com/nnaderi/archive/tags/Generalist+Testers/default.aspx">Generalist Testers</category><category domain="http://blogs.msdn.com/nnaderi/archive/tags/UX+Design/default.aspx">UX Design</category><category domain="http://blogs.msdn.com/nnaderi/archive/tags/Agile/default.aspx">Agile</category></item><item><title>What Would Alan Cooper Do?</title><link>http://blogs.msdn.com/nnaderi/archive/2009/01/16/what-would-alan-cooper-do.aspx</link><pubDate>Fri, 16 Jan 2009 04:41:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9323051</guid><dc:creator>nnaderi</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/nnaderi/comments/9323051.aspx</comments><wfw:commentRss>http://blogs.msdn.com/nnaderi/commentrss.aspx?PostID=9323051</wfw:commentRss><description>&lt;P style="FONT-STYLE: italic; MARGIN: 0in; FONT-FAMILY: Calibri; FONT-SIZE: 11pt" mce_keep="true"&gt;I have been recently&amp;nbsp;thinking&amp;nbsp;about designing simple yet powerful UI.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;I recently sat down one weekend to take notes from Alan Cooper, one of the thought leaders in interface design, from his book About Face.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Below are some of the points from the book that I found particularly interesting that I have been trying to keep in mind as we have been designing the Camano and Manual Testing UIs.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;In future postings, I'll discuss how we have applied these design principles to recent versions of the Test product.&lt;/P&gt;
&lt;P style="MARGIN: 0in; FONT-FAMILY: Calibri; FONT-SIZE: 11pt" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0in; FONT-FAMILY: Calibri; FONT-SIZE: 14pt; FONT-WEIGHT: bold"&gt;Design for intermediates users&lt;/P&gt;
&lt;P style="MARGIN: 0in; FONT-FAMILY: Calibri; FONT-SIZE: 11pt" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0in; FONT-FAMILY: Calibri; FONT-SIZE: 11pt"&gt;Cooper argues that the vast majority of users of any software product can be categorized as intermediate users - users who basically know how to use the product and generally use it for doing the same thing all the time. He estimates that such users are around 80% of the users who use the product, with the remaining 20% equally distributed between advance and beginner users.&lt;/P&gt;
&lt;P style="MARGIN: 0in; FONT-FAMILY: Calibri; FONT-SIZE: 11pt" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0in; FONT-FAMILY: Calibri; FONT-SIZE: 11pt"&gt;However, he interestingly points out that although they are the majority of the users of the product, often their needs are often neglected in the design.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;He states that management tend to advocate most for the needs of beginners since beginners are the users that they tend to most interact with, while developers are by definition expert users of the product and tend to think of end users as experts too.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Cooper feels that intermediates tend to get lost in the mix, even though they are the majority of the users.&lt;/P&gt;
&lt;P style="MARGIN: 0in; FONT-FAMILY: Calibri; FONT-SIZE: 11pt" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0in; FONT-FAMILY: Calibri; FONT-SIZE: 11pt"&gt;He explains that the needs of the 3 types of users differ due to their familiarity with product.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;While experts want quick ways to do things and the ability to customize the app, beginners are most concerned with overviewing the basics of the tool. Intermediates tend to want to do the same things with the tool repeatedly and do not want to have their work processes obstructed.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in; FONT-FAMILY: Calibri; FONT-SIZE: 14pt" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0in; FONT-FAMILY: Calibri; FONT-SIZE: 14pt; FONT-WEIGHT: bold"&gt;Use tools that help beginners to become intermediates&lt;/P&gt;
&lt;P style="MARGIN: 0in; FONT-FAMILY: Calibri; FONT-SIZE: 11pt" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0in; FONT-FAMILY: Calibri; FONT-SIZE: 11pt"&gt;While only 10% of users at any point in the project are beginners, all users of the product must pass through the state of being a beginner user.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Special attention should therefore be paid to designing the interface to help new users to learn the basics of the application.&lt;/P&gt;
&lt;P style="MARGIN: 0in; FONT-FAMILY: Calibri; FONT-SIZE: 11pt" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0in; FONT-FAMILY: Calibri; FONT-SIZE: 11pt"&gt;Although migrating users to intermediates is a goal of the UI design, Cooper is quick to note that once a user has moved from being a beginner user to an intermediate user, the UI that helped them to achieve this task will be of little use to the user.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;In fact, it will likely obstruct the user's flow.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in; FONT-FAMILY: Calibri; FONT-SIZE: 11pt" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0in; FONT-FAMILY: Calibri; FONT-SIZE: 11pt"&gt;There are numerous products that try to educate beginner users but at the same time&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;really annoy intermediate users of the product.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;In VS2008 for example, we inserted comments into generated unit tests help beginner users to understand the various components of a unit test. While they serve to help users understand the components of the unit test, once they understand the components, they get in the user's way.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in; FONT-FAMILY: Calibri; FONT-SIZE: 11pt" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0in; FONT-FAMILY: Calibri; FONT-SIZE: 11pt"&gt;To help users become intermediates, he suggests adding something to the UI that provides overview information to the user on the use of the product.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;He suggests that it should be possible to remove this information from the UI when the user wants to turn it off.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This classically takes the form of a "getting started" video which overviews the features of the product.&lt;/P&gt;
&lt;P style="MARGIN: 0in; FONT-FAMILY: Calibri; FONT-SIZE: 11pt" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0in; FONT-FAMILY: Calibri; FONT-SIZE: 11pt"&gt;Cooper thinks that online help and tooltips actually best serve intermediate users rather than beginners since their needs are slightly different.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;He suggests that intermediates search for reference educational materials, while beginners tend to be most interested in material that overviews the materials. &lt;/P&gt;
&lt;P style="MARGIN: 0in; FONT-FAMILY: Calibri; FONT-SIZE: 11pt" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0in; FONT-FAMILY: Calibri; FONT-SIZE: 14pt; FONT-WEIGHT: bold"&gt;Less is more &lt;/P&gt;
&lt;P style="MARGIN: 0in; FONT-FAMILY: Calibri; FONT-SIZE: 11pt" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0in; FONT-FAMILY: Calibri; FONT-SIZE: 11pt"&gt;I love this quote: "No matter how cool your interface is, less of it would be better."&lt;/P&gt;
&lt;P style="MARGIN: 0in; FONT-FAMILY: Calibri; FONT-SIZE: 11pt" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0in; FONT-FAMILY: Calibri; FONT-SIZE: 11pt"&gt;Sometimes in UI design, I think that we forget that users use a product as a tool to accomplish a specific goal. Sometimes we get carried away with cool navigation tools such that we put too much of it in the UI. A purple hammer which glows in the dark is&amp;nbsp;useless if it can't effectively put nails into wood.&lt;/P&gt;
&lt;P style="MARGIN: 0in; FONT-FAMILY: Calibri; FONT-SIZE: 11pt" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0in; FONT-FAMILY: Calibri; FONT-SIZE: 11pt"&gt;Cooper is an advocate of minimalist design where every options should be purposeful and direct. He advocates for fewer more direct options in an interface. He states that in a well orchestrated UI design, the UI becomes almost transparent to the user since it naturally follows their mental model.&lt;/P&gt;
&lt;P style="MARGIN: 0in; FONT-FAMILY: Calibri; FONT-SIZE: 11pt" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0in; FONT-FAMILY: Calibri; FONT-SIZE: 14pt; FONT-WEIGHT: bold"&gt;Design for the probable, provide for the possible&lt;/P&gt;
&lt;P style="MARGIN: 0in; FONT-FAMILY: Calibri; FONT-SIZE: 11pt" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0in; FONT-FAMILY: Calibri; FONT-SIZE: 11pt"&gt;Cooper is an advocate for following the user's mental model when designing the product and optimizing for the mainline flow through the application. While this often means that one should eliminate more options from a dialog than a programmer may feel comfortable doing, it does not imply that there should not be ways to do more complex and sophisticated things, just that they should be more difficult to access.&lt;/P&gt;
&lt;P style="MARGIN: 0in; FONT-FAMILY: Calibri; FONT-SIZE: 11pt" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0in; FONT-FAMILY: Calibri; FONT-SIZE: 11pt"&gt;If one were to outline the types of activities that a user can perform at any one stage in an application workflow, Cooper feels that there will always be one or two items that are the most likely to be performed. Thus, the interface should be optimized to help the user find these activities and guide them through this workflow rather than just listing all options at all times. There should be a way for the user to access non-mainstream activities, but the UI should not be optimized for its use.&lt;/P&gt;
&lt;P style="MARGIN: 0in; FONT-FAMILY: Calibri; FONT-SIZE: 11pt" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0in; FONT-FAMILY: Calibri; FONT-SIZE: 11pt"&gt;I think the office ribbon did a fantastic job of optimizing for the probable but allowing for the possible. In the ribbon, the items that are likeliest for the user to want to use are 1 click away, the items that they will use less are 2 clicks away, the items that very unlikely to be used are 3+ clicks away. They clearly optimized their UI for the probable.&lt;/P&gt;
&lt;P style="MARGIN: 0in; FONT-FAMILY: Calibri; FONT-SIZE: 11pt" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0in; FONT-FAMILY: Calibri; FONT-SIZE: 14pt; FONT-WEIGHT: bold"&gt;Eliminate&amp;nbsp;Error and Confirmations Dialogs&lt;/P&gt;
&lt;P style="MARGIN: 0in; FONT-FAMILY: Calibri; FONT-SIZE: 11pt; FONT-WEIGHT: bold" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0in; FONT-FAMILY: Calibri; FONT-SIZE: 11pt"&gt;Keeping with the theme of following a user's mental model and removing obstacles that can obstruct intermediate user's flow, Cooper advocates for removing all error and confirmation dialogs from a product. He feels that applications should do what statistically has a good chance of being correct but provide users with an option to undo their actions.&lt;/P&gt;
&lt;P style="MARGIN: 0in; FONT-FAMILY: Calibri; FONT-SIZE: 11pt" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0in; FONT-FAMILY: Calibri; FONT-SIZE: 11pt"&gt;Cooper states that users like to see their options available to them, perform an action, and then get confirmation that the action had successfully occurred. Without confirmation than an action occurred, users wonder if their actions actually took place. Rather than provide pop-up notifications, in order to communicate the result of actions, Cooper favors inline status alerts and positive auditory feedback.&lt;/P&gt;
&lt;P style="MARGIN: 0in; FONT-FAMILY: Calibri; FONT-SIZE: 11pt" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0in; FONT-FAMILY: Calibri; FONT-SIZE: 11pt"&gt;While I agree that it would be ideal to get rid of confirmation dialogs in all circumstances, getting rid of them entirely feels too drastic for my taste. To implement what Cooper suggests, developers need to make each action that the user performs reversible, which is both costly and in my opinion, not needed. I would prefer to make the best effort to eliminate confirmation dialogs and make actions reversible, but in the case of drastic actions, like disk format and file delete, popping a confirmation dialog seems to be fine, in fact users may expect it.&lt;/P&gt;
&lt;P style="MARGIN: 0in; FONT-FAMILY: Calibri; FONT-SIZE: 11pt" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0in; FONT-FAMILY: Calibri; FONT-SIZE: 11pt"&gt;On the other hand, I tend to agree with him that error dialogs should be entirely removed from the product. Although they make sense to a programmer, I think they tend to make little sense to the end user. I've seen many users getting very frustrated because their workflow is hampered when they appear. Cooper notes that while they are used to signal that something went wrong with the code, the user tends to interpret them as “I’ve done something wrong.”&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;When users are told that they are wrong repeatedly, they start to hate your product. I've been playing with some of the Mac UI recently and have been surprised to see they seem to be constantly eating their exceptions. Sure, problems occur - they just don't surface to the user.&lt;/P&gt;
&lt;P style="FONT-STYLE: italic; MARGIN: 0in; FONT-FAMILY: Calibri; FONT-SIZE: 11pt" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-STYLE: italic; MARGIN: 0in; FONT-FAMILY: Calibri; FONT-SIZE: 11pt"&gt;I got a lot of value out of reading the About Face and would highly recommend it. In the next post, I will discuss how we have iterated on Camano and the&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Test Runner UI in an Agile development process to produce the design that we have today.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9323051" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/nnaderi/archive/tags/Camano/default.aspx">Camano</category><category domain="http://blogs.msdn.com/nnaderi/archive/tags/Nigel+Wolters/default.aspx">Nigel Wolters</category><category domain="http://blogs.msdn.com/nnaderi/archive/tags/Confirmation+Dialogs/default.aspx">Confirmation Dialogs</category><category domain="http://blogs.msdn.com/nnaderi/archive/tags/Intermediate+Users/default.aspx">Intermediate Users</category><category domain="http://blogs.msdn.com/nnaderi/archive/tags/Error+Dialogs/default.aspx">Error Dialogs</category><category domain="http://blogs.msdn.com/nnaderi/archive/tags/UX+Design/default.aspx">UX Design</category></item></channel></rss>