Founded in 1975, Microsoft is the worldwide leader in software for personal computers. The company offers a wide range of products and services for business and personal use, each designed with the mission of making it easier and more enjoyable for people to take advantage of the full power of personal computing every day.
The core product development team at Microsoft consists of three roles: development, testing, and program management. Program management is responsible for the design and specification of the product, in addition to more traditional project management duties. Centralized groups within Microsoft provide graphic design and usability "consulting" services to help program managers define and refine interfaces. However, with the exception of the largest products, such as the Windows operating system, there are no dedicated resources on the core team for these functions.
One advantage to working for a company with such a long history of developing a wide range of products is that for some design problems, a similar problem was likely encountered and solved in another product. Microsoft is rich with historical information in the form of products, specifications, usability reports, and especially personal experience. This information can be found on internal product Web pages, on file servers, directly from employees, or in the Microsoft corporate library. Tapping this information can give program managers a head start on a new design by learning from the lessons of previous designs.
One extremely valuable concept that permeates the Microsoft culture is that of "dog fooding" our own products. (The term comes from an old marketing saying that dog food manufacturers should "eat their own dog food.") As soon as the software is relatively stable, all members of the product team begin installing and using the development builds. Thus, everyone on the team gets to feel the pain of the user, and most of the big design and usability issues can be found and addressed before the product ever ships.
For any feature design, the process always begins with three components: a goal (or goals), justification data, and user scenarios. This information can come from many different sources, including marketing requirements, usability data, or customer feedback. Using this information, the program manager works with the feature team (the developers and testers), as well as other resources throughout the company (described earlier) to come up with a design proposal. Developer input is extremely important because development cost and feasibility are always design constraints, and team buy-in is very important for ensuring the final design gets implemented as specified. The design is then reviewed by the feature team and updated based on review feedback. The final product is a feature specification document in which the design addresses all of the goals and user scenarios. Issues with the design inevitably arise during the development or dog fooding of the feature (that is, when design iteration happens).
The goal was to redesign the auto-fill addressing feature in Outlook Express so that users could easily get to any address in the address book with a minimum number of keystrokes and without requiring use of the mouse. In the old design (figure 1), alternate email addresses for a specific recipient could only be accessed via the contextual menu.
The new design (figure 2) went through several design iterations, including two rounds of usability testing. The submenu in the auto-fill menu gives the user access to all email addresses associated with a contact, and the menu can be driven entirely using the arrow keys on the keyboard.
Job Titles for Design and Usability Positions
Program manager, usability engineer, product designer.
Mullet K. & Sano D. Designing Visual Interfaces.
Claris Brushstrokes: a simple yet elegant bitmap editor
Real Basic: a dialog and window layout
Snapz Pro: a screen capture utility
Sources of Inspiration
Other software products: as Picasso said, "good artists borrow, great artists steal."
Customers of my product: I subscribe to an email discussion list for my product, and I use the postings on that list as a reality check to make sure the next version of the product addresses the biggest problems users have with the current version.
©2000 ACM 1072-5220/00/0200 $5.00
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee.
The Digital Library is published by the Association for Computing Machinery. Copyright © 2000 ACM, Inc.