The Role of Design in Snap-in Development
Design is an ambiguous term. Ask five different people what the role of design is, and more than likely you will get five different answers. For snap-in development, design is a process that involves several different people addressing different aspects of a problem to achieve common goals. Whether you are creating a snap-in for the first time or revising an existing snap-in, these goals of product development are well-recognized. A product should be:
- Useful: required and used.
- Usable: easy to learn and use.
- Desirable: wanted by its intended audience.
- Feasible: possible to build economically and on time.
It is difficult to completely meet these goals, but in the process of working toward them, you acquire information that improves the quality of your finished product. For example, before you can determine if your product meets the needs of users, you need to determine who the potential users are and the needs they have. The research you pursue in determining who the users are can also help define an intuitive approach to the task your snap-in performs. When you ask the users what they need and develop the product with that in mind, you have realistically defined the market for your product.
The design guidelines for MMC complement those detailed in Microsoft Windows User Experience. Use these sources for guidance in creating graphical user interface (GUI) elements for your snap-in. Be aware that if you discover differences in their recommendations, for snap-in design, you should follow the guidelines set forth in this documentation.
As you work toward these design goals, you should constantly test the product with real users to assess your progress. Design becomes an iterative process and forms a contract between end users and developers that results in an easy-to-use, robust product. This holds true whether you are developing an MMC tool for your staff of five or a console file that will be commercially distributed and potentially have thousands of users.