Chapter 2

The Wheel
A Lifecycle Template

 He believed in love; he was married many times.

– Fred, on iteration

Objectives

After reading this chapter, you will:

1. Understand the concept of a UX lifecycle process and the need for it

2. Understand the “Wheel” UX lifecycle abstraction template

3. Appreciate the need for choosing a process instance for your own project

4. Understand how to identify project parameters and map them to process choices

5. Understand the process choice tradeoffs based on system type, domain complexity, and interaction complexity within the system complexity space

6. Know the key team roles in the UX process for producing interactive products

2.1 Introduction

The iterative, evaluation-centered UX lifecycle template described in this chapter sets the stage for the whole interaction design process part of this book. It is a map of all the choices for activities to create and refine a design that will lead to a quality user experience. These activities are where all the work products are created, including versions of the product or system being developed.

Lifecycle

A lifecycle is a structured framework consisting of a series of stages and corresponding activities—such as analysis, design, implementation, and evaluation—that characterize the course of evolution of, in this context, the full evolution of an interaction design or a complete system or product.

Iterative Process

An iterative process is one in which all or part is repeated for the purpose of exploring, fixing, or refining a design or the work product of any other lifecycle activity. It is the “wash, rinse, and repeat” characteristic of HCI.

2.1.1 Flying without a Process

To set the stage, consider this all too common scenario for a misbegotten approach to interaction lifecycle activities within an interactive software development project (with many thanks to our good friend Lucy Nowell of Battelle Pacific Northwest Laboratories):

 About 25% into the project schedule, the user experience specialist is contacted and brought in to do some screen designs. “Where is the task analysis?” “The What?” “Ok, you have done contextual inquiry and analysis and you have requirements, right?” “Oh, yes, lots of requirements lists—we pride ourselves in gathering and documenting all the necessary functionality beforehand.” “Ummm …, Ok, do you have any usage scenarios?” “Uh, well, we’ve got a bunch of O-O use cases.”

 At this point the user experience specialist has the privilege of working overtime to get up to speed by poring through functional requirements documents and trying to create some usage scenarios. When the scenarios are sent out to prospective users, it is revealed that this is the first time anyone has asked them anything about the new system. The result is a deluge of feedback (“That’s not how we do it!”) and tons of changes suggested for the requirements (“Hey, what about this?”), including lots of brand new requirements. A very different view of the target system is emerging!

 This is a critical point for management. If they are lucky or smart and there is time (a small percentage of projects), they decide to go back and do the upfront work necessary to understand the work activities and needs of users and customers. They dig into the context of real work, and users get involved in the process, helping to write usage scenarios. The requirements soon reflect real usage needs closely enough to drive a useful and fairly major redesign.

 If they are not lucky or smart or do not have the time (a large percentage of product development projects), they will ignore all the commotion from users and plow ahead, confidence unshaken. The group continues on its chosen “clueless but never in doubt” path to produce yet another piece of shelfware. This project cannot be saved by any amount of testing, iteration, field support, or maintenance effort.

It is easy to fall into this kind of scenario in your projects. None of us are fond of the ending of this scenario. This kind of scenario is not necessarily anyone’s fault; it is just about awareness of a guiding UX process that might help avoid this ending.

2.1.2 The Concept of Process

Calibration: What process means to us and others

To most people, including us:

ent the term “process” connotes a set of activities and techniques

ent the term “lifecycle” suggests a skeleton structure on which you can hang specific process activities, imbuing them with temporal relationships

Fine distinctions are unnecessary here, so we use the terms “process,” “lifecycle,” and “lifecycle process” more or less interchangeably. Here we introduce a lifecycle template, a skeleton representation of a basic lifecycle that you get to tailor to your needs by instantiating it for each project.

In your instantiation you get to determine your own process, choosing which activities to do and which techniques to use in doing them, as well as how much and how often to do each activity, and (perhaps most importantly) when to stop. Here, and in the other process chapters (Chapters 3 through 19), we offer guidelines on how to make these decisions.

What is a process?

A process is a guiding structure that helps both novices and experts deal with the complex details of a project. Process acts as scaffolding, especially for novice practitioners, to ensure that they are on track to a quality product and on the path to becoming experts. Process acts as a checklist for experts to make sure they do not miss any important aspects of the problem in the heat of productivity. A process helps designers answer questions such as “Where are we now?” and “What can/should we do next?”

A process brings to the table organizational memory from similar previous efforts by incorporating lessons learned in the past. In other words, process provides a repeatable formula to create a quality product. Process also alleviates risk by externalizing the state of development for observation, measurement, analysis, and control—otherwise, communication among the project roles about what they are doing is difficult because they do not have a shared concept of what they should be doing.

Why do we need a process?

Following a process is the solution recognized by software engineering folks long ago and something in which they invest enormous resources (Paulk et al., 1993) in defining, verifying, and following. On the UX side, Wixon and Whiteside were way ahead of their time while at Digital Equipment Corp in the 1980s and put it this way (Wixon & Whiteside, 1985), as quoted in Macleod et al. (1997):

 Building usability into a system requires more than knowledge of what is good. It requires more than an empirical method for discovering problems and solutions. It requires more than support from upper management and an openness on the part of all system developers. It even requires more than money and time. Building usability into a product requires an explicit engineering process. That engineering process is not logically different than any other engineering process. It involves empirical definition, specification of levels to be achieved, appropriate methods, early delivery of a functional system, and the willingness to change that system. Together these principles convert usability from a “last minute add on” to an integral part of product development. Only when usability engineering is as much part of software development as scheduling can we expect to regularly produce products in which usability is more than an advertising claim.

Without guidance from an interaction design process, practitioners are forced to make it up as they go along. If this sounds familiar to you, you are not alone. An approach without a process will be idiosyncratic; practitioners will emphasize their own favorite process activities while other important process activities fall through the cracks. What they do is dictated and limited by their own experience. They will try to apply the activities and techniques they know as much as possible; they have hammers and everything looks like nails.

As Holtzblatt (1999) puts it, following a process for product development can work against “the relentless drive of an organization to ship ‘something’ by a given date.” Other excuses for not following a proven approach included “we do not have time to do the whole method, so we do not do any of it,” “it does not fit well with our existing methods, that we are used to,” “can our designers really be trained to do this?,” and “do these methods transfer well to real-world project groups?” In this and the coming chapters, we hope that we can shed some light on answers.

A process is not necessarily rigid

Remember that a process does not necessarily imply a rigid structure or even a linear one. A process can be as lightweight or heavyweight as appropriate. In other words, even an incremental and iterative lifecycle approach in the software engineering world (such as an Agile methodology) is still a process.

Lest it still sounds inflexible, we should add that experts with lots of experience can interpret a process and take appropriate shortcuts and other creative liberties with it—and we encourage that throughout the book.

2.1.3 Influences on Our Lifecycle Process

The lifecycle process described in this book is based on insight that grew out of the adaptation and extension of several existing UX and software methodologies over many years. The methods that most significantly guided our creation of our own lifecycle template are:

ent the Waterfall (Royce, 1970) software engineering lifecycle

ent the Spiral Model (Boehm, 1988) of software engineering

ent Mayhew’s usability engineering lifecycle (Mayhew, 1999b)

ent the Star lifecycle of usability engineering (Hartson & Hix, 1989)

ent the Wheel (Helms et al., 2006) lifecycle concept

ent the LUCID framework of interaction design (Kreitzberg, 2008)

Web User Experience Design within the Usability Engineering Lifecycle1

Dr. Deborah J. Mayhew, Consultant, Deborah J. Mayhew & Associates2

CEO, The Online User eXperience Institute3

Within the software usability lifecycle I describe in my book The Usability Engineering Lifecycle (Morgan Kaufmann Publishers, 1999) is a phase consisting of a structured top-down iterative approach to software user interface design. Design is driven by requirements data from a requirements analysis phase. The overall design phase is divided into three levels of design as follows, with slight wording changes made here to reflect Website user experience (UX) design in particular. Each level includes an iterative process of design, mock-up, and evaluation, which is not addressed here.

 Level 1

ent Information architecture

ent Conceptual model design

 Level 2

ent Page design standards

 Level 3

ent Detailed UX design

The rationale behind a top-down approach to UX design is that it is more efficient and effective to address distinct sets of design issues independently of one another, and in a specific order, that is, from the highest level to the most detailed level. Because the design tasks address issues that are fairly independent of one another, focusing on one level of design at a time forces designers to address all UX design issues explicitly and consciously. It ensures efficiency in that lower level details are not revisited and reworked constantly as higher level design issues are addressed and reworked randomly. Each level of design builds on the design decisions at higher levels, which may have already been validated through iterative evaluation.

The top level in the top-down process for Web UX design includes two design foci, the first of which is information architecture design. The information architecture is a specification of the navigational structure of the Website. It does not involve any visual design.

Designers must design information architectures in a way that streamlines site visitor navigation across and within tasks and exploits the capabilities of automation (to enhance ease of use), while at the same time preserving familiar structures that tap into visitors’ current mental models of their tasks.

While it may seem difficult at first to separate navigational/structural issues from visual design issues, it is productive to learn to do so for at least three reasons. First, the two really are independent. For example, you can have valid and supportive information architecture and then fail to present it clearly through an effective visual design.

Second, different skill sets are relevant to information architecture design as opposed to visual design. In particular, usability and persuasion skills are paramount to achieving optimal information architecture design, while in addition, graphic design skills are necessary to achieve effective appeal, atmosphere, tone, and branding, as well as help realize and support many usability and persuasion goals.

Third, the navigational structure (i.e., information architecture) is platform independent, whereas visual and behavioral design options will depend very much on the chosen platform. For example, a given information architecture may specify a hierarchical menu structure of categories and subcategories of products. Current Web platforms (i.e., browsers, browser versions, plug-ins) allow drop-down menus much like a traditional “GUI” menu bar structure as an option for presenting second (and even third) level navigational choices, whereas earlier browsers did not, requiring instead that different levels in a menu hierarchy be presented as sequences of pages with embedded links.

In conceptual model design, still within Level 1, the focus is still on navigation, but high-level design standards for presenting the information architecture visually are generated. Neither page content nor page design standards (i.e., visual presentation of page content) are addressed during this design task.

A good conceptual model design eliminates the need for the commonly seen “Site Map” page on Websites, that is, the user interface itself reveals the overall site structure at all times and makes it clear where you currently are in it, how you got there, and where you can go from there. A familiar example of how to achieve this is to provide a left-hand nav bar that displays an expandable/contractible set of hierarchical page links. Within this structure, the link to the current page can be cued by some sort of highlight and be inactive.

Visibility and clarity of the information architecture are large parts of what we want to achieve in Website conceptual model design. However, another key goal in a conceptual model design for a Website is persuasion. Also, we want the graphic design to be aesthetically appealing as well as appropriate to the business, to create a particular atmosphere designed to attract the target audience, and to provide strong branding.

In Level 2, page design standards, a second set of standards for the Website is generated for visually presenting and interacting with page content. This new set of standards is designed in the context of both the information architecture and the conceptual model design standards that have already been generated and (in some cases) validated.

Page design standards for a Website would typically include standards that would cover the consistent use and presentation of such things as content headers and subheaders, forms design, use of color cues, and the like. They might include a set of templates illustrating content layout standards for different categories of pages (e.g., fill-in forms, information-only pages, product description pages, pop-up dialog boxes). Consistency in the way all these things are applied in the design will again—just as it does in the case of conceptual model design standards— facilitate greatly the process of learning and remembering how to use the site. This is particularly important on Websites that will be used primarily by casual and discretionary users, as is the case with many eCommerce and other types of sites.

The standards documented during the conceptual model design and page design standards tasks, as well as the information architecture design, will dictate the detailed UX design of a large percentage of a site’s functionality. Level 3, detailed UX design, is thus largely a matter of correctly and consistently applying standards already defined and validated to the actual detailed design of all pages and pop-up windows across the site.

However, there will always be unique details here and there across pages to which no particular established standard applies. These must still be designed, and designed well. Also, these design decisions should be driven by requirements data and evaluated.

In my 30 years of software user interface design I have found a top-down approach to user interface design to be most effective and efficient as a design process within the overall usability engineering lifecycle.

2.2 A UX process lifecycle template

In Figure 2-1 we depict a basic abstract picture of activities for almost any kind of design, a cycle of the four elemental UX activities—Analyze, Design, Implement, and Evaluate—that we refer to generically as analysis, design, implementation, and evaluation. These four activities apply whether you are working with an architectural design, a hardware design, or a new car concept.

image

Figure 2-1 Universal abstract activity cycle of Analyze, Design, Implement, and Evaluate.

In the context of interaction design and UX, this abstract cycle translates to our UX lifecycle template of Figure 2-2, which we call the Wheel.

image

Figure 2-2 The Wheel: A lifecycle template illustrating the process part of this book.

In our lifecycle concept, specific to a UX process, analysis translates to understanding user work and needs. Design translates to creating conceptual design and determining interaction behavior and look and feel. Implementation translates to prototyping, and evaluation translates to ways to see if our design is on track to meet user needs and requirements.

In a larger system view, implementation includes a final production of hardware and software, including the user interface. However, in our UX lifecycle template, implementation is limited to the interaction design component and prototyping is the design manifestation we use for evaluation before it is finalized for production.

The evaluation activity shown in Figure 2-2 includes both rigorous and rapid evaluation methods for refining interaction designs. Beyond that evaluation activity, the entire lifecycle is evaluation centered in the sense that the results of potentially every activity in the lifecycle are evaluated in some way, by testing, inspecting, analyzing, and taking it back to the customers and users.

The entire lifecycle, especially the prototyping and evaluation activities, is supplemented and guided by UX goals, metrics, and targets, as described in Chapter 10.

As you will see, this is not a lifecycle that must be followed arbitrarily, nor must any particular activity, sub-activity, or iteration be performed—this is just a template showing all the possibilities. Each of these activities and many of the more specific sub-activities correspond to one or more process-oriented chapters, among Chapters 3 through 19, of this book.

2.2.1 Lifecycle Terminology

Each of the four UX process activities in Figure 2-2 can have sub-activities, the major ways to do the basic activities. As an example, for the analysis activity, possible sub-activities include contextual inquiry (Chapter 3), contextual analysis (Chapter 4), requirements extraction (Chapter 5), and contextual data modeling (Chapter 6).

A method is a general approach to carrying out an activity or sub-activity. For example, lab-based evaluation (Chapters 12 and 14 through 17) is a method for the evaluation activity. A technique is a specific practice applied within a method. For example, the “think-aloud” technique is a data collection technique that can be used within the lab-based evaluation method for the evaluation activity.

Think Aloud Technique

The think aloud technique is a qualitative data collection technique in which user participants verbally externalize their thoughts about their interaction experience, including their motives, rationale, and perceptions of UX problems. By this method, participants give the evaluator access to an understanding of their thinking about the task and the interaction design.

2.2.2 UX Process Activities

Analyze: Understanding the business domain, user work, and user needs

The left-most of the four basic activity boxes in Figure 2-2 represents the analysis process activity. Among the many possible sub-activities to support analysis are contextual inquiry (Chapter 3) and contextual analysis (Chapter 4) for studying customer and user work practice in situ, from which we can infer user needs for a new system design.

Extracting requirements (Chapter 5) from contextual data is another analysis sub-activity. The requirements, if you choose to use them, are interaction design requirements, inputs driving the design process and helping to determine its features and the look, feel, and behavior of the interaction design. These requirements are used as a checklist to ensure that they are covered in the design, even before any UX evaluation.

Finally, synthesizing design-informing models is yet another possible analysis sub-activity. Design-informing models (Chapter 6) are abstractions of different dimensions of the work activity and design space. If you choose to use them, these include models describing how work gets done, how different roles in the work domain interact, the artifacts that are created, and so on.

Design: Creating conceptual design, interaction behavior, and look and feel

The upper-most box in Figure 2-2 represents the process activity for design, including redesign for the next version. Among the possible sub-activities to support design are design ideation and sketching (Chapter 7), where the team does creative design thinking, brainstorming, and sketching of new design ideas. Design ideation leads to the representation of mental models, conceptual design, and design storyboards. During the exploration of large numbers of design candidates, it can include physical mockups of product design ideas.

Design production is a design sub-activity involving the details of applying requirements, design-informing models, and envisioned design-informing models to drive and inform the emerging interaction design. Design production entails prototyping and iteration of the conceptual design, intermediate designs, and detailed designs.

Prototype: Realizing design alternatives

The right-most of the four basic activity boxes in Figure 2-2 represents the prototyping process activity. Prototype building is often done in parallel with, and in conjunction with, design. As designs evolve in designers’ minds, they produce various kinds of prototypes as external design representations. Because prototypes are made for many different purposes, there are many kinds of prototypes, including horizontal, vertical, T, and local. Prototypes are made at many different levels of fidelity, including low fidelity (especially paper prototypes), medium fidelity, and high fidelity (programmed functional prototypes), and “visual comps” for pixel-perfect look and feel.

Horizontal Prototype

A horizontal prototype is very broad in the features it incorporates, but offers less depth in its coverage of functionality.

Vertical Prototype

A vertical prototype contains as much depth of functionality as possible in the current stage of the project, but only for a narrow breadth of features.

T Prototype

In a “T” prototype much of the design is realized at a shallow level (the horizontal top of the T), but a few parts are done in depth (the vertical part of the T). A “T” prototype combines the advantages of both horizontal and vertical, offering a good compromise for system evaluation.

Local Prototype

A local prototype represents the small area where horizontal and vertical slices intersect. A local prototype, with depth and breadth both limited, is used to evaluate design alternatives for a particular isolated interaction detail.

Evaluate: Verifying and refining the interaction design

The process activity box at the bottom of Figure 2-2 represents the UX evaluation to refine an interaction design. For evaluation to refine, you can employ rapid evaluation methods (Chapter 13) or fully rigorous methods (Chapters 12 and 14 through 17). This evaluation is where we see if we achieved the UX targets and metrics to ensure that the design “meets usability and business goals” (ISO 13407, 1999).

2.2.3 Flow among UX Process Activities

Flow not always orderly

The depiction of UX process activities in distinct boxes, as in Figure 2-2, is a convenient way to highlight each activity for discussion and for mapping to chapters in this book. These process activities, however, do not in practice have such clear-cut boundaries; there can be significant overlap. For example, most of the boxes have their own kind of evaluation, if only to evaluate the transition criterion at the exit point of each activity in the decision whether to iterate or move on.

Similarly, prototyping appears in many forms in other boxes, too. For example, the design activity entails lots of different kinds of prototypes, including sketches, which can be thought of as a kind of quick and dirty prototype to support rapid and frequent design idea exploration. In this same vein there can be a little design occurring within the analysis activity, and so on.

Managing the process with activity transition criteria

The primary objective of the overall lifecycle process is to keep moving forward and eventually to complete the design process and make the transition to production. However, for the work in a project to flow among the UX process activities, the team must be able to decide:

ent when to leave an activity

ent where to go after any given activity

ent when to revisit a previous process activity

ent when to stop making transitions and proceed to production

The answers depend on the transition criterion at the end of each process activity. There is no formula for determining transition criteria; they are generally based on whether designers have met the goals and objectives for the current iteration of that activity. Therefore, it is the job of the team, especially the project manager, to articulate those goals as transition criterion for each process activity and to decide when they are met.

For example, in the analysis activity, designers must ask themselves if they have acquired enough understanding of the work domain and user needs, usage context, workflow, and so on. Another component of any transition criterion is based on whether you have adequate resources remaining to continue. Resources limits, especially time and budget, can trump any other criteria for stopping a process activity or terminating the whole process, regardless of meeting goals and objectives.

Note in Figure 2-2 that the transition criterion coming out of each UX process activity box is a multipath exit point with three options: move forward to the next process activity, iterate some more within the current activity, or move back to a previous process activity.

The decision of where to go next after a given process activity depends on the assessed quality of the product and/or work products of the current activity and a determination of what next activity is most appropriate. For example, after an initial prototyping activity, a usability inspection might indicate that the design is ready for prototyping at a higher fidelity or that it is necessary to go back to design to fix discovered problems.

Knowing when you need inter-activity iteration depends on whether you need to pick up more information to drive or inform the design. When some of your inputs are missing or not quite right, you must revisit the corresponding process activity. However, this kind of inter-activity iteration does not mean you have to redo the whole activity; you just need to do a little additional work to get what you need.

Knowing when to stop iteration and proceed to production lies in a key process management mechanism. When UX targets (Chapter 10), often based on evaluation of user performance or satisfaction, have been employed in your process, project managers can compare evaluation results with target values and decide when to stop iterating (Genov, 2005).

Why do we even need iteration?

 Iteration is a little like the doctrine of original sin in interaction design: Most interaction designs are born bad and the design teams spent the rest of their lifecycles in an iterative struggle for redemption.

– Ford Perfect

Some people may question the need for iteration. Is not that just for novice designers who cannot get it right the first time? What about expert designers carefully applying complete knowledge of design guidelines and style standards? For any nontrivial interaction design, the UX process must be, and always will need to be, iterative. The design domain is so vast and complex that there are essentially infinite design choices along many dimensions, affected by large numbers of contextual variables.

To be sure, expert designers can create a good starting point, but because it is fundamentally impossible to get it all just right the first time, we need to use the artillery approach (Figure 2-3): Ready, Fire, Aim. We need to fire off our best shot, see how it missed the mark, and make corrections to home in on the target.

image

Figure 2-3 Iteration: Ready, fire, aim.

Iteration is not enough

 The road to wisdom? Well, it’s plain and simple to express: Err and err and err again but less and less and less.

– Piet Hein, Danish poet

So, if we must always iterate, is there any motivation for trying hard to get the first design right? Why not avoid the effort upfront and let this marvel of iteration evolve it into perfection? Again, the answer is easy. You cannot just test your way to a quality user experience, you have to design for it. Iterative testing and redesign alone will not necessarily get you to a good design at the end of the day.

As Wyatt Earp once said, “Take an extra second to aim.” Large interactive systems take a lot of time and money to develop; you might as well put a little more into it up front to make it right. Without an honest and earnest upfront analysis and design effort, the process tilts too heavily toward just evaluation and becomes a unidimensional diagnostic-oriented process.

To use a truly geeky example, consider a program traversing an n-dimensional surface, seeking a solution to a numerical analysis problem. If the search starts with the wrong “seed” or initial point (i.e., an initial solution that is too far from the actual solution), the algorithm might stop at a local optimum that is in a part of the search space, such as a saddle point, so remote from the optimal solution, if there is one, that you can never migrate out by any amount of iteration to get at a much better globally optimal solution. Similarly, in iterative interaction design, you can home in on the best details of a less-than-best design—honing a paring knife when you really need a butcher knife. Fixing the details of the bad design may never reveal the path to a completely new and better overall design.

So, the answer is about balance of all four process activities of Figure 2-1—analyze, design, implement, and evaluate—for a given amount of resources.

Start iteration early

The earlier the interaction design iteration begins, the better; there is no time to steer the ship when it is close to the dock. But the software implementation does not have to keep up with this iteration; instead we use interaction design prototypes, and there is no reason any production code should be committed to the interaction design until late in its lifecycle. Nevertheless, because the two roles cannot work in isolation, the software engineering people should be aware of the progression of the interaction design to ensure that their software architecture and design can support the interaction features on the user interface when it does come time to implement.

Typically, early cycles of iteration are devoted to establishing the basic underlying essentials of the design, including look and feel, and behavior, before getting into design details and their refinement. Project managers need to allow time for this explicitly in the schedule. It is an investment that pays generous dividends on everything that happens after that.

The rest of the process-related part of this book is mainly about iterating the activities in the diagram of Figure 2-2, plus a few other things in important supporting roles.

2.2.4 Lifecycle Streams

We mostly talk about complete lifecycles, where there is a clear-cut start and end to the project and where the design ideas are hatched creatively out of the imaginations of the designers. In reality that is often not the case. Often the “lifecycle” for a product never really starts or stops; it just goes on forever (or at least seems to) through multiple versions. Operating systems, such as Mac OS X and Microsoft Windows, are good examples.

The lifecycle is more of a continuous stream of reusing and, hopefully, improving ideas, designs, and deliverables or work products. In such cases the project can be heavily constrained by previously existing versions, code, and documentation. The need for stability and an orderly progression across versions makes it almost impossible to avoid the kind of inertia that works against new designs and radical rethinking. It is important for UX practitioners to make the case for at least the most important changes, changes that contribute to an eventual design evolution toward user experience improvement.

2.3 Choosing a process instance for your project

Increasingly, the need to rush products to market to beat the competition is shortening development schedules and increasing the number of product versions and updates. Web applications must be developed in “Internet time.” Ponderous processes and methods are abandoned in favor of lightweight, agile, and flexible approaches intended to be more responsive to the market-driven need for short product versioning cycles. Abridged methods notwithstanding, however, knowledge of the rigorous UX process is an essential foundation for all UX practitioners and it is important for understanding what is being abridged or made agile in choices for the shorter methods.

The lifecycle process diagram in Figure 2-2 is responsive to the need for many different kinds of UX processes. Because it is a template, you must instantiate it for each project by choosing the parts that best suit your project parameters. To support each of these activities, the team can pick from a variety of sub-activities, methods, techniques, and the level of rigor and completeness with which these activities are carried out. The resulting instantiation can be a heavyweight, rigorous, and complete process or a lightweight, rapid, and “just enough” process.

That choice of process can always be a point of contention—between academics and practitioners, between sponsor/customer and project team, and among team members within a project. Some say “we always do contextual inquiry” (substitute any UX process activity); they value a thorough process, even if it can sometimes be costly and impractical. Others say “we never do contextual inquiry (or whatever process activity); we just do not have the time”; they value doing it all as fast as possible, even if it can sometimes result in a lower quality product, with the idea of improving the quality in later production releases.

Much has been written about powerful and thorough processes and much has been written about their lightweight and agile counterparts. So how do we talk about UX design processes and make any sense?

2.3.1 Project Parameters: Inputs to Process Choices

In reality there are as many variations of processes as there are projects. How do you decide how much process is right for you? How do you decide the kinds of process to choose to match your project conditions? What guidance is there to help you decide? There are no set rules for making these choices. Each factor is an influence and they all come together to contribute to the choice. The lifecycle template in this chapter and the guidelines for its instantiation are a framework within which to choose the process best for you.

Among the many possible factors you could consider in choosing a process to instantiate the lifecycle template are:

ent risk tolerance

ent project goals

ent project resources

ent type of system being designed

ent development organizational culture

ent stage of progress within project

One of biggest goal-related factors is risk and the level of aversion to risk in a given project. The less tolerance for risks—of things going wrong, of features or requirements being missing, or not meeting the needs of users—the more need for rigor and completeness in the process.

Budget and schedule are obvious examples of the kinds of resource limitations that could hinder your process choices. Another important kind of resource is person power. How many people do you have, what project team roles can they fill, and what skills do they bring to the project? Are the types of people you have and are their strengths a good match for this type of project?

Practitioners with extensive experience and maturity are likely to need less of some formal aspects of the rigorous process, such as thorough contextual inquiry or detailed UX goals and targets. For these experienced practitioners, following the process in detail does not add much to what they can accomplish using their already internalized knowledge and honed intuition.

For example, an expert chef has much of his process internalized in his head and does not need to follow a recipe (a kind of process). But even an expert chef needs a recipe for an unfamiliar dish. The recipe helps off-load cognitive complexity so that the chef can focus on the cooking task, one step at a time.

Another project parameter has to do with the demands due to the type of system being designed. Clearly you would not use anything like the same lifecycle to design a personal mp3 music player as you would for a new air traffic control system for the FAA.

Sometimes the organization self-selects the kind of processes it will use based on its own tradition and culture, including how they have operated in the past. For example, the organization’s market position and the urgency to rush a product to market can dictate the kind of process they must use.

Also, certain kinds of organizations have their culture so deeply built in that it pre-determines the kinds of projects they can take on. For example, if your organization is an innovation consulting firm such as IDEO, your natural process tools will be predisposed toward ideation and sketching. If your organization is a government contractor, such as Northrup-Grumman, your natural process tools will lean more toward a rigorous lifecycle.

Somewhat orthogonal to and overlaid upon the other project parameters is the current stage of progress within the project for which you must choose activities, methods, and techniques. All projects will go through different stages over time. Regardless of process choices based on other project parameters, the appropriateness of a level of rigor and various choices of UX methods and techniques for process activities will change as a project evolves through various stages.

For example, early stages might demand a strong focus on contextual inquiry and analysis but very little on evaluation. Later stages will have an emphasis on evaluation for design refinement. As the stage of progress keeps changing over time, it means that the need to choose a level of rigor and the methods and techniques based on the stage of product evolution is ongoing. As an example, to evaluate an early conceptual design you might choose a quick design review using a walkthrough and later you might choose UX inspection of a low-fidelity prototype or lab-based testing to evaluate a high-fidelity prototype.

2.3.2 Process Parameters: Outputs of Process Choices

Process parameters or process choices include a spectrum from fully rigorous UX processes (Chapters 3 through 17) through rapid and so-called discount methods. Choices also can be made from among a large variety of data collection techniques. Finally, an agile UX process is available as an alternative choice for the entire lifecycle process, a process in which you do a little of each activity at a time in a kind of spiral approach.

2.3.3 Mapping Project Parameters to Process Choices

To summarize, in Figure 2-4 we show the mapping from project parameters to process parameter choices. While there are some general guidelines for making these mapping choices, fine-tuning is the job of project teams, especially the project manager. Much of it is intuitive and straightforward.

image

Figure 2-4 Mapping project parameters to process parameter choices.

In the process chapters of this book, we present a set of rather rigorous process activities, but we want the reader to understand that we know about real-world constraints within tight development schedules. So, everywhere in this book, it should be understood that we encourage you to tailor your own process to each new project, picking and choosing process activities and techniques for doing them, fitting the process to your needs and constraints.

2.3.4 Choose Wisely

A real-world Web-based B2B software product company in San Francisco had a well-established customer base for their large complex suite of tools. At some point they made major revisions to the product design as part of normal growth of functionality and market focus. Operating under at least what they perceived as extreme pressure to get it to the market in “Internet time,” they released the new version too fast.

The concept was sound, but the design was not well thought through and the resulting poor usability led to a very bad user experience. Because their customers had invested heavily in their original product, they had a somewhat captive market. By and large, users were resilient and grumbled but adapted. However, their reputation for user experience with the product was changing for the worse and new customer business was lagging, finally forcing the company to go back and completely change the design for improved user experience. The immediate reaction from established customers and users was one of betrayal. They had invested the time and energy in adapting to the bad design and now the company changed it on them—again.

Although the new design was better, existing users were mostly concerned at this point about having a new learning curve blocking their productivity once again. This was definitely a defining case of taking longer to do it right vs. taking less time to do it wrong and then taking even longer to fix it. By not using an effective UX process, the company had quickly managed to alienate both their existing and future customer bases. The lesson: If you live by Internet time, you can also crash and burn in Internet time!

2.4 The system complexity space

One of the things that makes it difficult to define a process for system design is that there is a spectrum of types of systems or products to be developed, distinguished mainly by complexity, each needing a somewhat different process and approach. In the next few sections we look at what is entailed in understanding this spectrum of system types.

Some systems are a combination of types and some are borderline cases. System or product types overlap and have fuzzy boundaries within the system complexity space. While there undoubtedly are other different ways to partition the space, this approach serves our purpose.

In Figure 2-5 we show such a “system complexity space” defined by the dimensions of interaction complexity and domain complexity. Interaction complexity, represented on the vertical axis, is about the intricacy or elaborateness of user actions, including cognitive density, necessary to accomplish tasks with the system.

image

Figure 2-5 Example systems within the system complexity space (interaction complexity vs. domain complexity).

Low interaction complexity usually corresponds to smaller tasks that are generally easy to do on the system, such as ordering flowers from a Website. High interaction complexity is usually associated with larger and more difficult tasks, often requiring special skills or training, such as manipulating a color image with Adobe Photoshop.

MUTTS

MUTTS is the acronym for Middleburg University Ticket Transaction Service, our running example for most of the process chapters.

Photoshop, Lightroom, and Aperture

Photoshop, Lightroom, and Aperture are high-functionality software applications for managing and processing large collections of images and photographs.

On the horizontal axis in Figure 2-5 we show work domain complexity, which is about the degree of intricacy and the technical nature of the corresponding field of work. Convoluted and elaborate mechanisms for how parts of the system work and communicate within the ecology of the system contribute to domain complexity.

The work in domain-complex systems is often mediated and collaborative, with numerous “hand-offs” in a complicated workflow containing multiple dependencies and communication channels, along with compliance rules, regulations, and exceptions in the way work cases are handled. Examples of complex work domains include management of arcane financial instruments such as credit default swaps, geological fault analysis for earthquake prediction, and healthcare systems.

Low work domain complexity means that the way the system works within its ecology is relatively simple. Examples of work domains with low complexity include that same Website for buying flowers and a simple calendar management application.

2.4.1 The Influence of System Type on Process Choice

The location of the system or product you are designing within the system complexity space can have a major influence on process choices about the right level of rigor and the right techniques to apply. To describe the criteria UX designers can use to make the call, we look at characteristics of the four quadrants of the system complexity space in Figure 2-5.

As we move along the diagonal through this space from lower left to upper right, going from simple systems to complex systems, there is (as a generalization) a gradation of required rigor and fidelity in the corresponding processes. The quadrants are discussed in the following subsections.

Complex interaction, complex work domain

In the upper right-hand quadrant of Figure 2-5 we show the interaction-complex and domain-complex systems, which are usually large and complicated. An example of a complex interaction is an air traffic controller deciding the landing orders for an incoming airliner. An air traffic control system also has enormous domain complexity, with workflow and collaboration among a large number of work roles and user types. Another defining example for this quadrant is a large system for the Social Security Administration.

Systems appearing in this quadrant are often associated with the greatest need to manage risk. Such projects will usually entail doing all the process activity boxes in detail, along with lots of iteration. These are the development projects with the greatest compliance requirements, the most weight given to traceability, and the highest importance of error avoidance.

For example, in mission-critical systems, such as for air traffic control or for military weapons control, there is great user pressure for error avoidance. When you cannot get these things wrong and the cost of failure is unacceptable, you need the most rigorous process, the full process spelled out in great detail in Chapters 3 through 18.

Because of their sheer size and need for rigorous processes, domain-complex and interaction-complex systems are typically among the most difficult and expensive to design and develop. A decidedly engineering approach to formal requirements can be very important to help designers touch all the bases and fill in all the blanks so that no functions or features are forgotten.

This is the kind of system for which design is most likely to need full lab-based user experience evaluation and iteration to produce a well-considered and coherent overall design. This is about the design of serious systems; this sector within the system complexity space has little, if anything, to do with emotional impact factors such as aesthetics, fun, or joy of use.

For large domain-complex systems, such as military weapons systems, you are most likely to encounter resistance to innovation. Radical designs are not always welcome; conformity can be thought more important. User and operators, in some cases, commit operations to habit and perform tasks with learned behavior even if there are better ways. This might be an opportunity for you to champion change and fight against the “this is not how we do it” syndrome, but you must approach this campaign with caution.

Gaming applications can be in this quadrant but they also can span both axes throughout the space.

Usability Engineering for Bioinformatics: Decoding Biologists’ and Bioinformaticians’ Work Sequences

Deborah Hix and Joe Gabbard, Virginia Bioinformatics Institute and Department of Computer Science, Virginia Tech

Over a collective four decades in usability engineering (UE), we have worked in a broad variety of application domains including military (e.g., decision support systems, situational awareness applications), government (e.g., Social Security Administration), and commercial (e.g., software and hardware companies). The realm of bioinformatics is as complicated as any other single domain we have encountered. This is at least in part because of its fast-changing nature, the current explosion of genomic and related data, the complexity of the field itself, and the technology backgrounds and attitudes of biologists and bioinformaticians.

When we began working in the Virginia Bioinformatics Institute (VBI) at Virginia Tech, approximately 8 years ago, there was almost no knowledge of the existence of usability engineering, never mind any structured use of it in developing complex bioinformatics applications. During this time, we have seen a slight increase in UE efforts in this field, but many (with the exception of large government-funded) Web-based interfaces still look like they were created by graduate students!—a nonoptimal situation in a world of increasingly interactive and sophisticated Web interfaces and apps.

Designing and evaluating user interfaces for biologists and bioinformaticians are challenging in part due to the increasing availability of inexpensive genome sequencing technology, resulting in an explosion of data—in volume, complexity, and heterogeneity. Today at the lab workbench, biologists have access to a staggering flow of data of unprecedented breadth, depth, and quantity.

Further, biologists rarely use a single tool to accomplish a given task; they frequently move data across applications and tools using, for example, desktop-based applications (such as Excel) as well as Web-based resources (such as NCBI’s BLAST). So, by necessity, a single technology source or tool or app cannot support their workflow, as their workflow is typically accomplished across multiple applications, Websites, and/or tools. This situation emphasizes the importance of good contextual/domain analysis and design in the UE process.

We have also seen that applications and Websites for biologists and bioinformaticians often need to support a broad variety of multiple work threads for an extensive variety of user classes. That is, the bioinformatics field intersects many specialized disciplines, and as a result, there are numerous types of user classes, each performing varied and mutually exclusive tasks. Moreover, users in this field often solve the same problem using different approaches, increasing the number of possible workflows (including specific data and tools needed) for each task. A single huge online data repository could have more than half a dozen (or even many more) very different user classes, all with different use cases and specific work flows. This situation emphasizes the importance of good user profiles in the UE process.

Finally, biologists are not necessarily early adopters of information technology. They are well versed in cutting-edge biology, but not cutting-edge computer technology. Many have, of necessity, done their own specialized application or Website development, becoming “expert enough” in tools such as scripting and Perl. This is also changing; biologists are relying less on programming- or scripting-savvy approaches. The more advanced their tools and analysis needs get, the more biologists rely on someone else’s bioinformatics or software development skills to meet their needs. In today’s Web 2.0 application space, most biologists want Web-based applications that support performance of very complicated user tasks without having to do (or oversee) scripting or programming themselves.

When we began in this field all those years ago, we had several approaches to introducing and promoting acceptance of UE activities into a VBI world devoid—and unaware—of them. These included immersion, “starting small,” and education.

We made sure our offices were colocated with the group (of biologists and software developers) with which we were working so that we could immerse ourselves and be ever present with them. Otherwise, we might have been viewed as “a priest with a parachute,” flying in to “bless” what they had done, but having little or no substantive input to either process or product. We carefully chose a small part of the UE process to perform on a small part of our product, a Web repository named PAThosystems Resource Integration Center (PATRIC), funded by the National Institutes of Health (patric.vbi.vt.edu). Choosing what part of the product with which to begin, UE should be based on a feature or function that is very important, of high visibility, and/or of high utility to users; preferably something with a “wow” factor that will make a splash. Choosing what small part of the process with which to begin should also be based on factors such as availability of appropriate users with whom to work (these may be very difficult to come by early on in an environment that has little or no UE in place, such as VBI) and current state of development of the product.

Our first substantive small UE activity was an expert evaluation (or expert inspection) of an existing in-house product that was being used to inform development of PATRIC. We chose this knowing we did not have a readily available pool of users for either domain analysis activities or a lab-based formative evaluation and that an expert evaluation did not need them. We were extremely careful in how we wrote our expert evaluation report so as not to alienate software engineers, who, to date, had designed all VBI user interfaces, with little or no interaction with users. During this time, we began to cultivate a PATRIC user group of appropriate biologists and bioinformaticians, and moved on to structured interviews and focus group-like sessions that would lead to domain analysis and user profiles. In addition to getting us much-needed information for UE, these sessions also helped expose users and developers to the UE process in a nonthreatening way. After several months, we were able to develop wireframe mockups and present them to some of our initial users, plus other stakeholders who had not been involved in domain analysis. For these earliest formative evaluations, we engaged both in-house users and remote users; for remote users, we used desktop-sharing software to present wireframes and semiworking prototypes to elicit feedback. In addition to this carefully chosen progression of UE activities, we had cooperative management who agreed to provide education; every member of the PATRIC team was required to take a 3-day intensive short course on UE.

Finally, we found that patience and persistence were nontechnical but key ingredients in this progression! It took many months to slowly and carefully insert UE practices into the PATRIC software development environment. When we encountered roadblocks, both passive aggressive and outright aggressive, we would regroup, figure out a different way to proceed, and continue moving forward. We promoted our “success stories” among the group and tried to make everyone feel continually and substantively involved in the process. We had a major breakthrough when, one day, our meeting discussion turned to some topic specifically related to user interface design, and the lead software engineer looked directly at us and announced, “That is Debby and Joe’s problem!” They finally got it!

Simple interaction, complex work domain

In the lower right-hand quadrant of Figure 2-5 we show interaction-simple and domain-complex systems. In this quadrant, user tasks are relatively simple and easy to understand. The key effort for users in this quadrant is understanding the domain and its often esoteric work practice. Once that is understood, the interaction is relatively straightforward for users. Tax preparation software for average households is a good example because the underlying domain is complex but the data entry into forms can be simplified to a step-by-step process.

In the UX process, interaction simplicity means that less attention to tasks descriptions is needed, but the domain complexity calls for more attention to contextual inquiry and analysis, modeling, and requirements for insight into internal system complexity and workflow among multiple work roles. Physical modeling and the social model of Chapter 6 become more important to gain access to the essentials of how people and information interact within the system.

Simple interaction, simple work domain

The simplest quadrant is in the lower left-hand corner of Figure 2-5, where both interaction and work domain are simplest. This quadrant contains smaller Websites, certain interactive applications, and commercial products. Just because this is the simple-simple quadrant, however, does not mean that the products are simple; the products of this quadrant can be very sophisticated.

Although emotional impact factors do not apply to every system or product in this quadrant, this sector within the system complexity space has the most to do with emotional impact factors such as aesthetics or fun or joy of use. This quadrant also represents projects that are design driven, where the UX process is all about design rather than user research or user models.

There is an abundance of relatively simple systems in the world. Some, but not all, commercial software products are domain-simple and interaction-simple, at least relative to large systems of other types. An example, shown in Figure 2-5, is a Website for ordering flowers. Interaction with this Website is very simple; just one main task involving a few choices and the job is done. Work domain complexity of a Website for buying flowers is also relatively simple because it involves only one user at a time and the workflow is almost trivial.

Because of the simplicity in the work domain and interaction in this quadrant, good choices for a UX process lean toward agile approaches with a focus on design and special rapid methods for evaluation. That translates to a low level of rigor; leaving out some process activities altogether and using lightweight or specialized techniques for others.

The best designers for expert users in this case might be “dual experts,” experts in HCI/UX and in the work domain. An example is a designer of Adobe Lightroom who is also deeply involved in photography as a personal hobby.

This quadrant is also where you will see innovative commercial product development, such as for an iPhone or a personal mp3 music player, and corresponding emotional impact issues and, where appropriate (e.g., for an mp3 personal music player but not for a florist’s Website), phenomenological aspects of interaction.

Phenomenological Aspects of Interaction

Phenomenological aspects (deriving from phenomenology, the philosophical examination of the foundations of experience and action) of interaction are the cumulative effects of emotional impact considered over the long term, where usage of technology takes on a presence in our lifestyles and is used to make meaning in our lives.

These products represent the least need for a complete rigorous lifecycle process. Designers of systems in this quadrant need not expend resources on upfront user research and analysis or requirements gathering. They can forego most of the modeling of Chapter 6 except, perhaps, specific inquiry about users and their activities, with a special interest in user personas.

Although commercial product design certainly can benefit from thorough contextual inquiry, for example, some successful products were essentially “invented” first and then marketed. The Apple iPad is a good example; the designers did not begin within a field study of existing usage patterns. They dreamed up a product that was so good that people who thought they would never be interested in such a product ended up fervently coveting one.

Projects in this quadrant are far less engineering oriented; design will be based almost entirely on a design-thinking approach. Designers are free to focus on imaginative design thinking, ideation, and sketching to make the user experience the best it can be. Processes for this type of system are usually faced with low risks, which means designers can put innovation over conformity—for example, the iPod over previous music players—and are free to envision radically new design ideas.

Early prototyping will center on multiple and disposable sketches for exploring design ideas. Later, low-fidelity prototypes will include paper prototypes and physical mockups. Subsequent evaluation will be about using rapid methods to get the conceptual design right and not being very concerned with user performance or usability problems.

Complex interaction, simple work domain

In the upper left-hand quadrant of Figure 2-5 we show interaction-complex and domain-simple systems. It is typical of an interaction-complex system to have a large volume of functionality resulting in a large number and broad scope of complex user tasks. A digital watch is an example. Its interaction complexity stems from a large variety of modal settings using overloaded and unlabeled push buttons. The domain, however, is still simple, being about “what time is it?” Workflow is trivial; there is one work role and a simple system ecology.

System Ecology

System ecology is the context provided by the surrounding parts of the world with which it interacts.

Attention in this quadrant is needed for interaction design—myriad tasks, screen layouts, user actions, even metaphors. Rigorous formative evaluation is needed for conceptual design and detailed interaction. The focus of modeling will be on tasks—task structure and task interaction models—and perhaps the artifact model, but not much attention will be given to work roles, workflow, or most of the other models of Chapter 6.

Task Structure Model

A task structure model is a hierarchical decomposition of tasks and sub-tasks showing what tasks are to be supported and the relationships among them.

Task Interaction Model

A task interaction model is a step-by-step description, including task goals, intentions, triggers, and user actions.

Artifact Model

An artifact model is a representation of how tangible elements (physical or electronic) are used and structured in the business process flow of doing the work.

For simple work domains, regardless of interaction complexity, contextual inquiry and contextual analysis rarely result in learning something totally new that can make a difference in informing design. Rather, even more than for a simple interaction case, complex interaction requires a focus on ideation and sketching, as well as attention to emotional impact factors.

The commercial product perspective within the system complexity space

“Commercial products” is a good label for the area that spans the left-hand side of the system complexity space diagram in Figure 2-5, where you find relatively low domain complexity but variable interaction complexity. The more interaction complexity, the more sophisticated users can be.

Gradations within the system complexity space

Many systems and design projects fall across quadrants within the system complexity space. Websites, for example, can belong to multiple quadrants, depending on whether they are for an intranet system for a large organization, a very large e-commerce site, or just a small site for sharing photographs. Products such as a printer or a camera are low in domain complexity but can have medium interaction complexity.

One good illustration of complexity vs. process rigor is seen in systems for managing libraries, shown in the middle of the work domain complexity scale of Figure 2-5, near the bottom. Typical library systems have low interaction complexity because the scope of tasks and activities for any one user is fairly circumscribed and straightforward and the complexity of any one user task is low. Therefore, for a library system, for example, you do not need to model tasks too much.

However, a full library system has considerable domain complexity. The work practice of library systems can be esoteric and most UX designers will not be knowledgeable in this work domain. For example, special training is needed to handle the surprisingly important small details in cataloging procedures. Therefore, a rigorous approach to contextual inquiry and analysis may be warranted.

Because of the high work domain complexity, there is a need for thorough contextual data modeling to explain how things work in that domain. As an example, the overall workflow entails book records connected in a network, including cataloguing, circulation tracking, searching, and physical shelf location. A full flow model may be necessary to understand the flow of information among the subsystems.

Healthcare systems are another example of projects that cross system complexity space quadrants. Large healthcare systems that integrate medical instrumentation, health record databases, and patient accounting are another example of systems with somewhat complex work domains.

The healthcare domain is also saddled with more than its share of regulation, paperwork, and compliance issues, plus legal and ethical requirements—all of which lead to high work domain complexity, but not as high as air traffic control, for example. Machines in a patient’s room have a fairly broad scope of tasks and activities, giving them relatively high interaction complexity.

We refer to the system complexity space throughout the rest of the process chapters in discussions about how much process is needed. For simplicity we will often state it as a tradeoff between systems with complex work domains, which need the full rigorous UX process and systems with relatively simple work domains, which need less rigor but perhaps more attention to design thinking and emotional impact.

Since simple work domains correspond roughly to the left-hand side of the system complexity space of Figure 2-5, where most commercial products are found, we will often use the term “commercial products” as a contrast to the complex domain systems, even though it is sometimes possible for a commercial product to have some complexity in the work or play domain.

2.5 Meet the user interface team

 Whatever you are, be a good one.

– Abraham Lincoln

One early stage activity in all interactive software projects is building the UX team. Someone, usually the project manager, must identify the necessary roles and match them up with available individuals. Especially in small projects, the different roles are not necessarily filled with different people; you just need to maintain the distinction and remember which role is involved in which context and discussion.

In addition to the software engineering roles, here we are mainly concerned with roles on the UX team. Roles we can envision include the following:

ent User researcher: involved with contextual inquiry and other work domain analysis activities. You may also need other roles even more specialized, such as a social anthropologist to perform in-depth ethnographic field studies.

ent Users, user representatives, customers, and subject matter experts: used as information sources in contextual inquiry and throughout the lifecycle.

ent User interaction designer: involved with ideation and sketching, conceptual and detailed design, and low-fidelity prototyping activities.

ent UX analyst or evaluator: involved in planning and performing UX evaluations, analyzing UX problems, and suggesting redesign solutions.

ent Visual/graphic designer: involved in designing look and feel and branding and helping interaction designers with visual aspects of designs.

ent Technical writer: involved in documentation, help system design, and language aspects of interaction designs.

ent Interactive prototype programmer: involved in programming interactive high-fidelity UX design prototypes.

ent UX manager: someone with overall responsibility for the UX process.

Some of these roles are shown with respect to the lifecycle activities in Figure 2-6.

image

Figure 2-6 Example UX team roles in the context of the Wheel lifecycle template.

Often terms for team roles are used loosely and with overlap. For example, “UX engineer” or “UX practitioner” are catch-all terms for someone who does contextual analysis, design, and evaluation on the UX side.

As a further consideration, in many projects, team composition is not static over the whole project. For example, people may come and go when their special talents are required, and it is not unusual for the team to get smaller near the end of the lifecycle. Often near the end of the version or release cycle, much of project team gets reassigned and disappears and you get a possibly new and much smaller one, with a much shorter remaining lifecycle.

2.6 Scope of UX presence within the team

In the early days of usability it was often assumed that a usability practitioner was needed only in small doses and only at certain crossroads within the project schedule, resulting in a rough and frustrating life for the usability person in the trenches. In project environments, they were treated as temp workers with narrow purviews and meager responsibilities, getting no real authority or respect.

Software developers grudgingly let the usability practitioner, who was probably a human factors engineer, look at their designs more or less after they were done. Because they were not a bona fide part of the project, they played a secondary role, something like a “priest in a parachute”: The human factors engineer dropped down into the middle of a project and stayed just long enough to give it a blessing. Anything more than a few minor changes and a blessing was, of course, unacceptable at this point because the design had progressed too far for significant changes.

2.7 More about UX lifecycles

Just as a lifecycle concept did not always exist in the software development world, the need for a separate development lifecycle for the interaction design has not always been recognized. Moreover, once a lifecycle concept was introduced, it took time for the idea to be accepted, as it had done for software in prior decades.

The Hix and Hartson book (1993) was one of the first to emphasize a separate lifecycle concept for interaction design. Among early calls to arms in this evolutionary struggle to establish acceptance of a disciplined usability process were pleas by Curtis and Hefley (1992). They argued that “interface engineering,” as they called it, required an engineering discipline just like any other: “All engineering disciplines, including interface engineering, require the definition of a rigorous development process.”

Hefley and friends followed this up with a CHI ’96 workshop asking the question, User-centered design principles: How far have they been industrialized? (McClelland, Taylor, & Hefley, 1996). They concluded that the field was, indeed, evolving toward acceptance, but that there was still a lack of understanding of the interaction design process and a shortage of skills to carry it out. Raising awareness within management and marketing roles in the software world was a priority. Mayhew (1999b) helped solidify the concept with practitioners through a pioneering tour de force handbook-style codification of lifecycle activities and deliverables.

Usability engineering as a term and as a concept was coming into existence in the early 1990s. In his celebratory 1996 retrospective, Butler (1996) attributed the actual coining of the term “usability engineering” to John Bennett in the 1980s. Here, Butler provided a review of the discipline’s state of the art as it began to mature after the first 10 years and argued for a need to integrate usability engineering using a “comprehensive integrated approach to application development.”

Nielsen (1992b) had already been talking about the increasing importance of computer–user interfaces and the need to make them usable by using “a systematic usability effort using established methods.” He proposed a usability engineering model that included fundamental usability tenets such as “know thy user” and advocated an iterative refinement of the interaction design.

This model proposed different phases of the UX lifecycle: pre-design, design, and post-design with corresponding activities such as understanding overall work context, understanding intended users, setting usability goals, and undertaking iterative testing. Nielsen (1993) later elaborated these ideas into one of the first usability engineering textbooks.

Whitney Quesenbery (2005) describes how the ISO 13407 standard (1999) reflected the “general industry approach to UCD” at the time. It describes four principles of user-centered design, including “active involvement of customers (or those who speak for them),” but apparently did not speak for the users directly.

This standard also made a strong point in favor of not just the principle of using an iterative cycle, but of the need to plan to allow time for iteration in practice. In its central focus on process, the standard prescribes five process activities, starting with planning for UCD, followed by an iterative cycle of specifying context of use, specifying requirements, producing design solutions, and evaluating designs, as seen in Figure 2-7.

image

Figure 2-7 Lifecycle diagram from the ISO 13407 standard, adapted with permission.

Despite the name user-centered design, this cycle does not give much focus to design as a separate activity, but rolls it in with implementation in the “produce design solutions” box. Nonetheless, the ISO standards were timely and gave a real boost to the credentials of UCD processes to follow.

2.7.1 Much More Than Usability Testing: The Need for a Broad Lifecycle Process

As usability slowly emerged as a goal, thinking about methods to achieve it was at first slow to follow. Everyone vaguely knew you had to involve users somehow, that it helped to follow a style guide, and that you definitely had to do usability testing. Armed with just enough of this knowledge to be dangerous, the budding new usability specialists plunged in, not knowing enough to know what they did not know. But to be effective, especially cost-effective, our heroes needed help in using the right technique at the right time and place.

Without an established lifecycle concept to follow, those concerned with user experience were coming up with their own, often narrow, views of user experience methods: “silver bullet” theories that declare all you have to do is contextual inquiry, just test a lot, do everything to “empower users,” be object oriented, and so on.

The most broadly fashionable of these uni-dimensional schemes was to equate the entire process with testing, setting usability in a purely diagnostic frame of reference. In response, participants in the CHI ’96 workshop mentioned in the previous section felt it important to make the point: “Usability testing and evaluation make contributions to product quality, but testing alone does not guarantee quality.” They contended that approaches using only post hoc testing should be expanded to incorporate other UCD activities into earlier parts of the UX process.

Outside the usability world of the time, acceptance was even more sluggish. It took time for interaction design to be recognized by others as a full discipline with its own rigorous lifecycle process. And it was often the software engineering people who were most resistant; oh, how soon we forget our own history! In the days when “structured programming” was just becoming the fashion (Stevens, Myers, & Constantine, 1974), development groups (often one or two programmers) without a process were often suspicious about the value added by a “process” that deflected some of the time and effort from pure programming to design and testing, etc.

And so it is with interaction design, and this time it is often the software engineers and project managers who are resisting more structure (and, therefore, more perceived overhead and cost) in parts of the overall interactive system development process not thought to contribute directly to the output of program code.

2.7.2 Fundamental Activities Involved in Building Anything

In the simplest sense, the two fundamental activities involved in (i.e., a process for) creating and building something, be it a house or a software product, are almost always the same: design and implementation. If the complexity of the task at hand is simple, say building a sand castle at the beach, it is possible to undertake design and implementation simultaneously, with minimal process, on the fly and in the head.

However, as complexity increases, each of these activities needs explicit attention and thought, leading to a more defined process. For example, in remodeling one’s kitchen, some “design” activities, such as sketches for the new layout and configurations of appliances and countertops, are required before “implementing” the new kitchen.

While you have to do requirements and needs analyses for your own kitchen remodeling so that you do not end up with bells and whistles that you do not really need or use, it is even more important if you are remodeling a kitchen for someone else. You need this added process step to make sure what is being built matches the requirements.

As complexity of the target system or product increases, so does the need for additional steps in your process to manage that complexity. If we are, say, building a house instead of a kitchen, more steps are needed in the process, including consideration of “platform constraints” such as municipal regulations, geographical constraints such as the location of water lines, and, perhaps more importantly, a defined process to manage the complexity of multiple roles involved in the whole undertaking.

2.7.3 Parallel Streams of Software and Interaction Process Activities

To begin on common ground, we start with a reference point within the discipline of software engineering. Just as we discussed in the previous section, perhaps one of the most fundamental software engineering principles is the distinction between software design and software implementation, as shown in Figure 2-8.

image

Figure 2-8 Distinction between software design and implementation.

Instead of having programmers “designing” on the fly during implementation, proper software engineering methods require software design first (after capturing requirements, of course), and the resulting design specifications are given to the programmers for implementation. Then programmers, possibly a different person or group, follow the design as documented in the specifications to implement the software.

The programmer who creates the software code to implement the design is in the best position to spot incorrect or missing parts of the specification. For example, while coding a “case statement,” the programmer may notice if the specification for one of the cases is missing. At this point, the programmer has two choices: (1) save time by filling in missing parts or correcting erroneous parts of the specifications by using best judgment and experience or (2) take the extra time to send the specifications back to designers for amendments.

The first choice is tempting, especially if the schedule is tight, but the implementer has not necessarily been privy to all the prior meetings of designers about rationale, goals, design principles, and so on and may not get it right. In addition, design additions or changes made by the implementer are usually undocumented. The code written to correct the design becomes a software time bomb, later leading to a bug that can be almost impossible to find. As a result, conventional software engineering wisdom requires feeding back the faulty specifications to the designers for correction and iteration back to the implementers.

Adding inquiry, requirements, and modeling plus functionality design at the beginning and testing at the end to the boxes of Figure 2-8 gives the picture of software development workflow shown in Figure 2-9.

image

Figure 2-9 Software development workflow diagram.

Systems analysis involves a high-level study of the intended system, including concerns from all disciplines associated with the product. For example, if the project is to design software to manage a nuclear power plant, the systems analysis activity will include study of all component subsystems ranging from safety to software to physical plant to environmental impact.

At this stage, the key subsystems are identified and their high-level interactions specified. In the remainder of this chapter we focus on interactive software systems only and limit the discussion to creation and refinement of interaction design and the development of its software.

Design in the work domain, or application domain, in the second box from the left (Figure 2-9), is the place where the real contents of the system are crafted. If the program is a software support tool for bridge building, for example, this is where all the specialized subject matter knowledge about civil engineering, over-constrained pin joints, strength of materials, and so on is brought to bear. The software design is where algorithms, data structures, calling structures, and so on are created to represent the work design in software.

The analogous activities for user interface (this time, including the user interface software) development are shown in Figure 2-10.

image

Figure 2-10 Analogous user interface development workflow.

Connecting the processes together and adding rapid prototyping, to get the big picture, we get the overall development workflow diagram of Figure 2-11.

image

Figure 2-11 Overall interactive system development workflow diagram.

Immediately noticeable is the lack of vertical connections, which points out the need for improved communication between the lifecycles for functional software and for the user interface component of the overall system. There is an absolute lack of formal methods to integrate these two lifecycles. This is a big hole in the practice of both sides of the picture. In practice, this communication is important to project success and all parties do their best to carry it out, relying mainly on informal channels.

The means for achieving this communication vary widely, depending on project management abilities, the size of the project, and so on. For small projects, a capable manager with a hands-on management style can function effectively as a conduit of communication between the two work domains. Larger projects, where it is impossible for one person to keep it all in his or her head, need a more structured inter-domain communication mechanism (Chapter 23).

2.7.4 Iteration for Interaction Design Refinement Can Be Very Lightweight

Figure 2-11 offers a good backdrop to the discussion of iteration within the UX lifecycle for interaction design. Management and software people often strongly resist the general idea of iteration, repetitively going back over process activities. Some team members worry that they can barely afford the time and resources to produce a system once, let alone iterate the process multiple times. This fear is due to a misconception about the nature of iteration in the overall diagram of Figure 2-11, probably because the concept has not been well explained.

In fact, if everything in the diagram of Figure 2-11 were iterated, it would be prohibitively burdensome and laborious. The key to understanding this kind of iteration needed for design refinement is in realizing that it does not mean iterating the whole process, doing everything all over again. Instead it is about only a selective part (see Figure 2-12) of the overall process, just enough to identify and fix the major UX problems.

image

Figure 2-12 The small lightweight sub-process to be iterated for the interaction design.

Iterating this small sub-process is far from ponderous and costly; in fact, it:

ent is only a very small and very lightweight iteration

ent does not have to be expensive because it involves only a very small part of the overall process

ent can occur early in the overall lifecycle when design changes cost little

ent can have minimal impact on schedule because it can be done in parallel with many other parts (especially the software engineering parts) of the overall project lifecycle

These are strong reasons why iteration to refine interaction designs can be cost-effective and can lead to a high-quality user experience without being a burden to the overall software and system development budget and schedule.

The perceptive reader will see that we have come full circle; the process in Figure 2-12 is a variation of the Wheel lifecycle template of Figure 2-2. You will know more about what goes on in each part of this diagram as you go through the rest of the process part of this book (Chapters 3 through 19).

The Pre-Design Part of the UX Lifecycle

Here is an overview of how contextual inquiry, contextual analysis, needs and requirements extraction, and modeling lead up to design:

image

ent Contextual inquiry (Chapter 3), is an empirical process to elicit and gather user work activity data.

ent Contextual analysis (Chapter 4) is an inductive (bottom-up) process to organize, consolidate, and interpret the user work activity data in the next chapter.

ent Chapter 5 is about a deductive analytic process for extracting needs and requirements.

ent Chapter 6 is about a synthesis of various design-informing models, such as task descriptions, scenarios, and work models.

ent Chapters 7, 8, and 9 are about design, an integrative process aided by the contextual data and their offspring, needs, requirements, and models.

The parts of the figure are not completely separable like this but, for the book, we break it up a bit to “chunk” it for easier digestion.

1 This essay is a modified excerpt from a chapter called “The Web UX Design Process—A Case Study” that I have written for the forthcoming book Handbook of Human Factors in Web Design (2nd ed.) by Kim-Phuong L. Vu and Robert W. Proctor (Eds.), Taylor & Francis, 2011. That chapter includes a rich case study of the top-down design process within the usability engineering lifecycle, which in turn is fully documented in The Usability Engineering Lifecycle by D. Mayhew, Morgan Kaufmann Publishers, 1999.

3 (http://drdeb.vineyard.net)

3 (http://www.ouxinstitute.com)

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.149.245.219