InterfaceVisuals.com Logo

XAML DevelopmentSupportUI/UX DesignSite map
Designing with Microsoft Expression BlendXAMLBlendGUI DesignDesigner

our design style      ::      our usability lab      ::      we write code      ::      portfolio      ::      employment

Design Studio


Essays on Design

 
 
 
Contents

Using Expression Blend
Software Prototypes

   
Creating Software Prototypes

Prototypes: Why Bother?
    Perhaps some of you have read various arguments for or against the need to build prototypes as part of the software design process.  Over the years I’ve been able to form my own opinions on the subject.  I am a prototype protagonist.

    The common argument against prototypes always has to do with the time required to build them.  “Every version is a prototype for the next version”  is another common frame for this debate.  We get a finger-wagging from these while-wasting watchdogs: “Time is Money!”

    It does take time to create prototypes.  Design requires time.  On the other hand, industrial manufacturers build prototypes in order to prove (& improve) designs and save time and money.  And when a production model is considered a prototype for the next version, be aware:  The lack of intentional design process in a prior version will often kill the whole product.  A product with a bad reputation is very hard to sell, even after improvements have been made.  And the release of a single poor product can haunt the parent company’s standing for years.  I remember a software company that kept releasing poorly designed versions of an icon editor, one after another.  I would never consider using any of this company’s products ever again.  Never.  Free downloads notwithstanding.

    In order to build something that will have enduring utility and appeal, designers will model the creation or build a prototype before beginning production.  Why would software be an exception to this rule?  Alan Cooper says this in About Face 3.0: The Essentials of Interaction Design:

When we think about complex mechanical devices, we take for granted that they have been carefully designed for use, in addition to being engineered. Most manufactured objects are quite simple, and even complex mechanical products are quite simple when compared to most software and software-enabled products that can be compiled from over one million lines of code (compare this to a mechanical artifact of overwhelming complexity such as the space shuttle, which has 250,000 parts, only a small percentage of which are moving parts). Yet most software has never undergone a rigorous design process from a user-centered perspective.

    Yes, prototypes take time, but most of us would rather spend our lives creating a single work of enduring worth and beauty than be party to more trashware:  Inhuman, unusable, untestable, unlearnable, undesirable muck that is unworthy of a blank CD or even the time to download it for free.

The Big Easy?
    A generation after Visual Basic gave everyone access to GUI development, many are realizing that software does not design itself.  Being able to drag and drop controls onto forms gave us all the power to become visual and interaction designers, but … [
insert your favorite gui horror story here].

    Still, design is not rocket science.  Genius designers certainly stand out from the rest of us and I am inspired by them, but most of us get the job done by working at it.  It’s probably hard work for the geniuses too.  Prototypes are part of the required effort.  Prototyping is where many small mysteries of innovation often occur.  It is sacred territory.  If time is short, then we must prototype quickly.  And sometimes I wonder if innovation might be facilitated by tight deadlines; so many of my own ideas have come only as the clock was running out.

The Proper Business of Design
    In order to test the usability of a design, a prototype of some sort is essential.  Paper prototyping can be valuable.  Building a functional prototype is better.  On their own, prototypes do not guarantee that the final design will not simply be a reflection of the designer’s own prejudices, but when it follows proper preparation: user research, defining requirements, persona development, key path definition, etc., it is vital. Prototyping is part of the proper business of design.  It is precisely where a lot of important design work occurs.

(continued at top of next column)

   

(continued from left column)

A Special Kind of Development
    Building a prototype should not  be done with the hope of using this code in production software.  Prototypes should look and act well enough to evaluate the design concept.  They should be completely fake and held together with baling wire and twine.  Output should appear genuine, but does not necessarily need to be accurate.  UI details are important, but internal functioning is not. 

    If you know a developer who simply cannot bring himself to violate the rules of object-oriented programming, keep him as a valuable resource for the production team.  If you have nothing else for Mr. OOP to do right now, send him to Disneyland for a break.  You are looking for a coding cowboy who can obsess over small ui details and do whatever it takes to quickly get the fine points in the ui done correctly.

    If you are an expert  programmer yourself, you might consider creating the prototypes on your own, but there are some dangers with this.  It is important for you to remain a designer.  It is very difficult to be an interaction designer and write the code.  The danger is that your designs will be tainted by your closer association with how the software actually works.  You will begin to think about the processes in terms of how the software functions instead of how the user mentally relates to the functionality.  If you are involved in the details of how the software actually works, you will have a much more difficult job innovating as an advocate for the user. 

Example of Good Design I recently researched the invention of the upside-down ketchup bottle.  I’ll summarize: It was not  invented on the factory floor where folks were concerned with getting the ketchup into the bottle and keeping it there.  You can visit the factory floor, but don’t bend your design to their requirements.  You, the designer, are the architect.

Note: Microsoft Expression Blend™ and XAML may allow you to remain a designer while you construct good prototypes, provided you only  play in the presentation layer.  As mentioned, use shams and simulations to produce faux output where required.  Liars and goof-offs excel in this arena I think.

Okay, Now What?
   
Building
the prototypes is an important part of the process.  But studying each prototype is also important.  As part of the process that precedes prototype building, a good interaction designer will have created a set of key path scenarios which define the steps that target users will follow in order to execute core functionality.  Use these key path scenarios and walk through the paths using the prototypes.  Quite often key path analysis across multiple prototypes can resolve outstanding issues. 

    But some design problems defy key path analysis.  Submitting prototypes to formal, recorded usability testing can be a good way to resolve difficult problems.  Usability studies are usually intense learning experiences.  It is always a revelation to see a user’s reactions to screens that have burned themselves into your author’s eye.  A sense of humor can help you cope.

Put Them Away!
   
When you are done with the prototypes, preserve them to a safe place.  Do not use any part for production.  For your redline specification, create new screens with your favorite screen design tool. 

    Like the artist’s study sketch before beginning a painting, your prototypes will have fulfilled their important role.

 - Dave Walker