:: Digital Libraries Columns


Library Journal "Digital Libraries" Columns 1997-2007, Roy Tennant

Please note: these columns are an archive of my Library Journal column from 1997-2007. They have not been altered in content, so please keep in mind some of this content will be out of date. :: Digital Libraries Columns

The Power of Prototypes


   I love prototypes. Prototypes allow you to be creative without the
   detail that accompanies building a production system and often kills
   enthusiasm. It is, in other words, just the fun part.

   I recently grabbed about 75,000 MARC records that were conveniently
   sitting on a work server and wrote a small Perl program to parse out
   the bits I needed. Using the MapReduce algorithm designed to lessen the
   complexity of large data sets, I processed that data to write out a
   file that had all the values for Title, Date, and Subject and which
   records had those values all in one line per key/value pair. Once I
   wrote a very simple interface, I had constructed a prototype library
   catalog faceted browse system in less than a day.

   One of the benefits of a prototype is that the small investment does
   not require a large return in order to be worthwhile. The investment
   does not even need to be as high as in this prototype. There are
   several different methods of prototyping, and all offer benefits.

   Paper or virtual?

   A paper prototype is really what it sounds like--a paper depiction of a
   system and its functions. It often consists of a series of screens that
   the user would see. Paper prototypes can be a low-cost and easy way to
   test an idea with a user group before investing in developing the
   actual system.

   Virtual prototypes look and act like the real thing through "smoke and
   mirrors" techniques. The most common example is a set of web pages that
   mimic the planned functionality by implementing only one set of

   A virtual prototype for a search system may consist of an entry page
   that offers the planned search options. But no matter what is selected
   when searching, it would always display the same results since it is
   just sending you to the next page rather than actually performing a
   search. Therefore, usability testing of virtual prototypes is limited
   to coaching the user through a particular path that you've set up in
   advance and collecting feedback on that path.

   Functional prototypes

   Working prototypes are useful for gathering feedback on functionality
   but may lack touches like good graphic design. Therefore, usability
   testing of a functional prototype may focus more on user satisfaction
   with system options, results display, and labeling of options than on
   the user interface.

   Functional prototypes can also be used to investigate the viability and
   desirability of a particular system. You can gain early experience in
   what may be technically required to implement a particular system, as
   well as the system's merits. A successful prototype can be something
   you build in a day and throw away, if by doing so you discover that
   something is not worth doing or you learn something useful.

   All of these may be valuable within the life span of any particular
   project, or you may choose to use only one variety of prototype.
   Deciding which to work with may include the amount of time and effort
   required to build the prototype vs. the desired outcome, the importance
   of the system being designed, and whether feedback on functionality or
   on layout and graphic design is desired.

   Prototyping tools

   You will need a basic set of tools for developing functional
   prototypes. Many can work with just knowledge of a web scripting
   language (typically one of the "Ps": Perl, Python, or PHP). You may
   also want to use either indexing software such as Swish-e or a database
   like MySQL. Also, there are many open source content management systems
   such as Drupal that can make it easy to throw up a full-featured web
   site with very little time and energy.

   No matter which variety you use, prototyping can be a useful and
   efficient way to explore functionality and design in the very early
   stages of a project. Such feedback can prevent serious and expensive
   course corrections later, or, more important, keep you from releasing a
   system that inadequately or erroneously addresses the need you sought
   to serve. Never underestimate the power of a prototype.


                     LINK LIST
   [146] MapReduce
   mapreduce.html MySQL
   Paper prototyping
   paper_prototyping Swish-e