User Interface Design Pattern Library Project |
Assignment 1 Assignment 5 Assignment 6 Assignment 7 Assignment 8 Assignment 9 |
Final Project Report
Problem statement
Solution Overview
We began with five personae, but narrowed the focus to three. Early in the design process we decided to mainly design for one primary persona, the Swiss Army Knife, because we felt that this type was the most likely to adopt the use of web design patterns.
Hans is a 35-year old Programmer/Analyst IV for the College of Letters & Science. He lives in Alameda with his wife Sue and their two daughters. On the weekends, he enjoys camping with his family, reading history and nonfiction books, and occasionally hanging out with a few old college buddies. In 1992, Hans graduated from Berkeley with a degree in history, but wasn’t sure exactly what he wanted to do for a career. He was always somewhat interested in programming and had tinkered around with various languages starting with BASIC. When the “dot com” boom came he found his calling and mastered HTML and Java while working at various start ups. After the bubble burst, Hans fell into a job as a Programmer/Analyst III, working on improving a document repository for a research unit on campus. He was then promoted to a Programmer/Analyst IV position in charge of maintaining various web applications as well as managing one other programmer and two part-time tech support persons. As the lead P/A of his department, Hans has to juggle various duties during the day. He’s often involved in every aspect of the development of an application, from coding to information architecture to creating graphics. While he gets to code a portion of his time, he also has to check on various servers since his other programmer has no system admin experience. Besides several new projects he has in the works, Hans hopes to eventually overhaul the department’s homepage to make it easier for researchers from other institutions find information. The current homepage design was inherited and features awkward navigation and layout. However, the faculty are so accustomed to the current design, Hans can only make small changes to the pages without having to hear an earful from someone. Hans has an interest in usability, especially due to his experiences with bad design, but no formal training. He wants to learn from other programmers and designers about some layouts that have worked and their processes to arrive at those designs. He thinks that design patterns would provide some best practices and advice in context to what works within the university environment. Goals
Tammy is a 36-year-old Computing Resource Manager. She has worked at various start ups but found herself at the university after the bubble burst. She’s always been an active blogger and interested in the latest trends in web technology. During her off time, she uses meetup.com to organize weekend meetings of Chihuahua owners in the city in Noe Valley. Tammy tries to stay updated of potential projects on campus. She and her team of programmers had gained some fame from a recent project to improve work flow in the CPHS office using an online application. She introduced some improvements in the development process using RUP. While she has tremendous influence within her department, she sees the inefficiencies across campus in code reuse and sharing of ideas. Goals:
Albert is a 30-year-old Programmer/Analyst in the College of Chemistry. He majored in computer science at the University of Illinois and came out to California when his friend told him about a job opening in his department. Albert has just recently past the 5 year mark of working at the university and has now vested with the university savings plan. His office is located in a basement in Barrows Hall with no windows, and pipes running overhead. Outside of work Albert is a member of a chess club and enjoys sci-fi films. While Albert acknowledges the fragmented bureaucratic nature of the university, he’s also excited by the challenge of getting data from disparate sources and aggregating it. With the lack of a central data warehousing solution on campus, he’s had to forge ahead and create his own data warehouse. Albert is quite proud of his ingenious solution and can’t wait to release his latest creation: a data transaction coordination application with the ability to serve out data to other units on campus via web services. Albert works with a computing resource specialist who spends her time mocking up web pages. He usually goes to her to have her slap on a quick UI. He’s not too interested in user interface design and feels that he has more important things to tackle. Goals:
Hans Euler (Primary Persona) Albert knows he is looking for some ideas on how to add new and dynamic information to old content. He also wants some sample code to get started. He opens up his browser and goes to the web pattern library. He sees the "Information Organization" category and clicks on it. He immediately sees the "Related Information" pattern has some possibilities and wants to investigate it further. He clicks on the pattern and after reviewing it, decides it is the right one.
![]() Steps:
What Was Left Unimplemented Primarily we didn't get to finish fixing a lot of minor bugs and textual/consistency details. There are small unresolved issues with the process and formatting of text in user-contributed comments. There are also a number of unresolved issues with formatting in Internet Explorer. Overall, with more time we would have spent more time tweaking and adding text, such as a label on the comment form that encourages users to add code or links to where a pattern has been instantiated. Prototyping Tools
Design EvolutionThe interface elements that evolved significantly over the course of the design process were the main navigation, the home page layout and content, and issues related to dealing with user-contributed comments.Main Navigation: In our earliest design sketches we were just beginning to come up with the idea that we wanted to provide global navigation on the pattern pages, but for the first few iterations we still had a completely different way of presenting navigation on the home page. During the paper prototype stage we tested two versions of the global navigation: 1) A vertical bar with all categories and patterns present 2) A horizontal bar with category names listed and pattern names available as dropdown menus upon mouseover of the category. Though the feedback from our test participants about these two options was inconclusive, we later found that the vertical navigation bar solved other problems on the home page and decided to simplify by providing the same navigation bar throughout the site. During the paper prototyping stage we also got significant evidence that naming patterns and putting them into categories is very difficult to do effectively. Consequently we did several tests, including a card sort, to get user feedback on names and categories. As much as possible we used these results in determining names in the navigation bar in the first prototype. As an additional way to alleviate the vocabulary problem we added a tool tip to the navigation to give users a visual example of each pattern on mouseover. During the heuristic evaluation phase, instructor feedback inspired the idea of refining this further by adding synonyms culled from our previous user tests to the tool tip for each pattern. Finally, during the pilot study we found that it wasn't completely clear that the category names in the navigation bar were clickable, which we addressed in the final iteration by making the links underlined and adding the tool tip on the category names. Home Page Layout: In the early sketches we were using the entire home page for listing patterns by category and trying to provide a way to navigate by design problem, rather than just by pattern name. Since one of our goals was to try to provide more visual examples of patterns than other pattern libraries, we created a featured pattern area for each category on the home page that included example images. During the paper prototype testing we found that this simply cluttered the page and confused our users. We then produced multiple mockups trying to solve this problem through graphic design, but found that it was extremely difficult to include example images mixed in with the home page navigation in any way that didn't make navigation more difficult. Eventually we realized that we could provide visual examples on the home page in the form of example patterns, but with this section not associated with the main navigation. As mentioned above, we then decided to use the vertical navigation bar on the home page for consistently throughout the site, which left more space on the page. On the right-side we then added a section for "Recent Comments" to bubble up user-contributed content within the site and help foster community use of the site. In the top center of the page (the sweet spot!) we created a section called "What's Your Design Problem?" followed by problem statements that tried to both convey what patterns are and allow users to navigate by design problem. During the heuristic evaluation and pilot test we found that this section didn't work for many reasons, partly because the visual design made it look like an advertisement or a system warning. However, we did find that participants not familiar with patterns were interested in the way this section gave an idea of the purpose of patterns. In the final version we emphasized this aspect by changing the section title to "What's a Web Design Pattern" and including both a visual and textual definition of design patterns with a link to the "How to Use Patterns" page. User-Contributed Comments: Early in the process we learned that campus web developers often work in small groups and wish they were more connected to other campus developers. This gave us the idea of providing functionality for user-contributed comments about patterns, but we didn't start figuring out how this would work in the interface until the first interactive prototype. Because we also found that users were interested in accessing code related to implementing patterns, we struggled in the first prototype to find a way to encourage users to add code to comments and to somehow mark that a particular comment contained code so that these comments could be highlighted at the top of each pattern page. Consequently we made sure that labels about comments also included the word code and put a check box at the bottom of the comment input form with the label "Contains Code?" During the heuristic evaluation phase we learned that this check box wasn't very clear so we tried providing a button for users to format code, as well as just a textual label asking uses to wrap code in <code> tags. In the pilot test we found that users were not only confused by these attempts to get them to tag code, but that they were actually more interested in downloading code developed by others than actually uploading code themselves. Consequently we decided to simplify the issue in the final iteration by not separating out code in the comments in any way. We also learned that immediately after posting a comment users like to view the comment to make sure that it's correct, and if not, they need the ability to edit. In our final prototype we added the ability for users to preview a comment, from which editing is possible before final submission. Most Useful Evaluation Technique The homepage evolved dramatically from displaying one representative pattern for each category accompanied by links to all patterns. We found the links to patterns were overlooked and instead, users focused on the one representative example. This formed ideas about the category that weren't necessarily correct. Based on this information, we reconsidered the purpose of the homepage. From this point forward, used the homepage to introduce the concept of a pattern and how to use it followed by two example patterns. In addition to feedback that lead directly to design changes, this round of testing changed the way we designed and conducted future user tests. From this we learned to provide more structure and be more clear about our test goals. |