10

Identifying needs and establishing requirements

10.1 Introduction

10.2 What, How, and Why?

10.3 What are requirements?

10.4 Data gathering for requirements

10.5 Data analysis, interpretation, and presentation

10.6 Task description

10.7 Task analysis

10.1 Introduction

An interaction design project may aim to replace or update an established system, or it may aim to develop a totally innovative product with no obvious precedent. There may be an initial set of requirements, or the project may have to begin by producing a set of requirements from scratch. Whatever the initial situation and whatever the aim of the project, the users' needs, requirements, aspirations, and expectations have to be discussed, refined, clarified, and probably re-scoped. This requires an understanding of, among other things, the users and their capabilities, their current tasks and goals, the conditions under which the product will be used, and constraints on the product's performance.

As we discussed in Chapter 9, identifying users' needs is not as straightforward as it sounds. Establishing requirements is also not simply writing a wish list of features. Given the iterative nature of interaction design, isolating requirements activities from design activities and from evaluation activities is a little artificial, since in practice they are all intertwined: some design will take place while requirements are being established, and the design will evolve through a series of evaluation–redesign cycles. However, each of these activities can be distinguished by its own emphasis and its own techniques.

This chapter provides a more detailed overview of identifying needs and establishing requirements. We introduce different kinds of requirements and explain some useful techniques.

The main aims of this chapter are to:

  • Describe different kinds of requirements.
  • Enable you to identify examples of different kinds of requirements from a simple description.
  • Explain how different data gathering techniques (those introduced in Chapter 7 and others) may be used during the requirements activity.
  • Enable you to develop a ‘scenario,’ a ‘use case,’ and an ‘essential use case’ from a simple description.
  • Enable you to perform hierarchical task analysis on a simple description.

10.2 What, How, and Why?

10.2.1 What are we Trying to Achieve in the Requirements Activity?

There are two aims. One aim is to understand as much as possible about the users, their work, and the context of that work, so the system under development can support them in achieving their goals; this we call “identifying needs.” Building on this, our second aim is to produce, from the needs identified, a set of stable requirements that form a sound basis to move forward into thinking about design. This is not necessarily a major document nor a set of rigid prescriptions, but you need to be sure that it will not change radically in the time it takes to do some design and get feedback on the ideas. Because the end goal is to produce this set of requirements, we shall sometimes refer to this as the requirements activity.

10.2.2 How can we Achieve This?

This whole chapter is devoted to explaining how to achieve these aims, but first we give an overview of where we're heading.

At the beginning of the requirements activity, we know that we have a lot to find out and to clarify. At the end of the activity we will have a set of stable requirements that can be moved forward into the design activity. In the middle, there are activities concerned with data gathering, analysis, interpretation, and presentation, with the aim of capturing the findings in a form that can be expressed as requirements. Broadly speaking, these activities progress in a sequential manner: first gather some data, then analyze and interpret it, then extract some requirements from it, but it gets a lot messier than this, and the activities influence one another as the process iterates. One of the reasons for this is that once you start to analyze data, you will find that you need to gather some more data to clarify or confirm your findings. Another reason is that the way in which you present your requirements may affect your analysis, since it will enable you to identify and express some aspects more easily than others (as discussed in Section 8.7). For example, using a notation which emphasizes the data characteristics of a situation will lead the analysis to focus on this aspect rather than, for example, on task structure. Remember from Chapter 7 that it is valuable to triangulate data gathering and analysis and to use a complementary set of techniques. As we discuss below, there are different kinds of requirements, and each can be emphasized or de-emphasized by the different techniques.

Identifying needs and establishing requirements is itself an iterative activity in which the subactivities inform and refine one another. It does not last for a set number of weeks or months and then finish. In practice, requirements evolve and develop as the stakeholders interact with designs and see what is possible and how certain facilities can help them. And as shown in the lifecycle model in Chapter 9, the activity itself will be repeatedly revisited.

10.2.3 Why bother? The importance of getting it right

Much has been written about the significant cost of fixing errors late in the software development cycle rather than early, during the requirements activity. For example, Davis (1995) identifies insufficient user communication, poor specifications, and insufficient analysis as contributors to poor cost estimation. Boehm and Basili (2001) present a top ten list of software defect reduction findings, the first of which states that “finding and fixing a software problem after delivery is often 100 times more expensive than finding and fixing it during the requirements and design phase.” Taylor (2000) investigated the causes of IT project failure. The article admits that “there is no single cause of IT project failure,” but requirements issues figured highly in the findings. Others too have identified requirements errors as being a major source of severe problems, e.g. Jones (2000); Weinberg, (1997). Although this research does not specifically focus on interactive products, software is a significant element in most kinds of interactive products, and so these findings are very relevant here. The cartoon below illustrates very well what can go wrong if requirements are not clearly articulated.

images

10.2.4 Why Establish Requirements?

The activity of understanding what a product should do has been given various labels—for example, requirements gathering, requirements capture, requirements elicitation, requirements analysis, and requirements engineering. The first two imply that requirements exist out there and we simply need to pick them up or catch them. ‘Elicitation’ implies that ‘others’ (presumably the clients or users) know the requirements and we have to get them to tell us. Requirements, however, are not that easy to identify. You might argue that, in some cases, customers must know what the requirements are because they know the tasks that need supporting, and may have asked for a product to be built in the first place. However, they may not have articulated requirements as yet, and even if they have an initial set of requirements, they probably have not explored them in sufficient detail for development to begin.

The term ‘requirements analysis’ is normally used to describe the activity of investigating and analyzing an initial set of requirements that have been gathered, elicited, or captured. Analyzing the information gathered is an important step, since it is this interpretation of the facts, rather than the facts themselves, that inspires the design. Requirements engineering is a better term than the others because it recognizes that developing a set of requirements is an iterative process of evolution and negotiation, and one that needs to be carefully managed and controlled.

We chose the term establishing requirements to represent the fact that requirements arise from data gathering, analysis, and interpretation activities and have been established from a sound understanding of the users' needs. This also implies that requirements can be justified by and related back to the data collected.

10.3 What are Requirements?

Before we go any further, we need to explain what we mean by a requirement. Intuitively, you probably have some understanding of what a requirement is, but we should be clear. A requirement is a statement about an intended product that specifies what it should do or how it should perform. One of the aims of the requirements activity is to make the requirements as specific, unambiguous, and clear as possible. For example, a requirement for a website might be that the time to download any complete page is less than 5 seconds. Another less precise example might be that teenage girls should find the site appealing. In the case of this latter example, further investigation would be necessary to explore exactly what teenage girls would find appealing. Requirements come in many different forms and at many different levels of abstraction, but we need to make sure that the requirements are as clear as possible and that we understand how to tell when they have been fulfilled. The example requirement shown in Figure 10.1 is expressed using a format called a ‘shell’ from the Volere process (Robertson and Robertson, 2006), which you'll hear more about later in this chapter and in Suzanne Robertson's interview at the end of this chapter. This shell requires quite a bit of information about the requirement itself, including something called a ‘fit criterion,’ which is a way of measuring when the solution meets the requirement. In Chapter 9 we emphasized the need to establish specific usability criteria for a product early on in development, and this part of the shell encourages this.

images

Figure 10.1 An example requirement using the Volere shell

10.3.1 Different Kinds of Requirements

In software engineering, two different kinds of requirements have traditionally been identified: functional requirements, which say what the system should do, and nonfunctional requirements, which say what constraints there are on the system and its development. For example, a functional requirement for a word processor may be that it should support a variety of formatting styles. This requirement might then be decomposed into more specific requirements detailing the kind of formatting required, such as formatting by paragraph, by character, and by document, down to a very specific level such as that character formatting must include 20 typefaces, each with bold, italic, and standard options. A non-functional requirement for a wordprocessor might be that it must be able to run on a variety of platforms such as PCs, Macs, and Unix machines. Another might be that the target platform is expected to have at least 1.0 GB RAM. A different kind of non-functional requirement would be that it must be delivered in six months' time. This represents a constraint on the development activity itself rather than on the product being developed.

If we consider interactive products in general, other kinds of non-functional requirements become relevant such as physical size, weight, color, and production feasibility. For example, when the PalmPilot was developed (Bergman and Haitani, 2000), an overriding requirement was that it should be physically as small as possible, allowing for the fact that it needed to incorporate batteries and an LCD display. In addition, there were extremely tight constraints on the size of the screen, and that had implications for the number of pixels available to display information. For example, formatting lines or certain typefaces may become infeasible to use if they take up even one extra pixel. Figure 10.2 shows two screen shots from the PalmPilot development. As you can see, removing the line at the left-hand side of the display in the top window released sufficient pixels to display the missing ‘s’ in the bottom window.

images

Figure 10.2 Every pixel counts

Interaction design involves understanding the functionality required and the constraints under which the product must operate or be developed. However, instead of referring to all requirements that are not functional as simply ‘non-functional’ requirements, we prefer to refine this into further categories. The following is not an exhaustive list of the different requirements we need to be looking out for (see the figure in Suzanne Robertson's interview at the end of this chapter for a more detailed list), nor is it a distinct categorization, however, it does illustrate the variety of requirements that need to be captured.

Functional requirements capture what the product should do. For example, a functional requirement for a robot working in a car assembly plant might be that it should be able to accurately place and weld together the correct pieces of metal. Understanding the functional requirements for an interactive product is fundamental.

Data requirements capture the type, volatility, size/amount, persistence, accuracy, and value of the required data. All interactive products have to handle greater or lesser amounts of data. For example, if the system under consideration is to operate in the share-dealing application domain, then the data must be up-to-date and accurate, and is likely to change many times a day. In the personal banking domain, data must be accurate, must persist over many months and probably years, is very valuable, and there is likely to be a lot of it.

Environmental requirements or context of use refer to the circumstances in which the interactive product will be expected to operate. Four aspects of the environment must be considered when establishing requirements. First is the physical environment, such as how much lighting, noise, and dust is expected in the operational environment. Will users need to wear protective clothing, such as large gloves or headgear, that might affect the choice of interface type? How crowded is the environment? For example, an ATM operates in a very public physical environment. Using speech to interact with the customer is therefore likely to be problematic.

The second aspect of the environment is the social environment. The issues raised in Chapter 4 regarding the social aspects of interaction design, such as collaboration and coordination, need to be explored in the context of the current development. For example, will data need to be shared? If so, does the sharing have to be synchronous, e.g. does everyone need to be viewing the data at once, or asynchronous, e.g. two people authoring a report take turns in editing and adding to it? Other factors include the physical location of fellow team members, e.g. do collaborators have to communicate across great distances?

The third aspect is the organizational environment, e.g. how good is user support likely to be, how easily can it be obtained, and are there facilities or resources for training? How efficient or stable is the communications infrastructure? How hierarchical is the management? And so on.

Finally, the technical environment will need to be established: for example, what technologies will the product run on or need to be compatible with, and what technological limitations might be relevant?

Box 10.1: Underwater PCs

Developing a PC for undersea divers to take underwater has one major environmental factor: it is surrounded by water! However, waterproofing is not the main issue for the designers at WetPC, a company who have produced such a system. The interface has proved to be more of a problem. Divers typically have only one hand free to operate the computer, and are likely to be swimming and moving up and down in the water at the same time. So a traditional interface design is no good. Early prototypes of the computer used voice recognition, but the bubbles made too much noise and distorted the sound. Tracker balls were also inappropriate because the divers are not working on a flat surface. So the main developer at WetPC, Bruce Macdonald, devised a ‘keyboard’ called a KordGrip that has five keys (see Figure 10.3a). Combinations of keys represent different symbols, so that divers can choose items from menus. They can perform operations such as controlling a camera and sending messages. The system is also linked to a GPS system that tells the divers where they are. This makes it much easier to mark the location of mines and other underwater discoveries.

images

Figure 10.3 (a) The KordGrip interface; (b) the KordGrip in use under water

User characteristics capture the key attributes of the intended user group. In Chapter 9 we mentioned the relevance of a user's abilities and skills, and these are an important aspect of user requirements. But in addition to these, a user may be a novice, an expert, a casual, or a frequent user. This affects the ways in which interaction is designed. For example, a novice user will require step-by-step instructions, probably with prompting, and a constrained interaction backed up with clear information. An expert, on the other hand, will require a flexible interaction with more wide-ranging powers of control. Other attributes that may affect the design are: the users' nationality, educational background, preferences, personal circumstances, physical or mental disabilities, and so on. Boxes 10.2 and 10.3 provide more information on national culture and accessibility. The collection of attributes for a ‘typical user’ is called a user profile. Any one product may have a number of different user profiles.

In order to bring the user profiles to life, they are often transformed into a number of ‘personas’ (Cooper, 1999). Personas are rich descriptions of typical users of the product under development that the designers can focus on and design the product for. They don't describe real people, but are synthesized from a number of real users who have been involved in data gathering exercises. Personas are described with rigor and with detail, and they are defined by the goals of that persona, so each persona has a unique set of goals. Basing a persona on a job description or a job title is not appropriate as goals often differ between people even within the same job role, and people with very different job roles may have the same goals for this particular product. For example, personas for a device to alert an amateur runner when he has burned a certain number of calories would focus on different exercising routines, fitness levels, fashion preferences, and so on rather than on the runner's job role.

Box 10.2: National Culture

As globalization spreads, the importance of the impact that national culture has on interaction design has increased. This impact varies from relatively obvious concerns such as the natural language used (e.g. Spanish or Japanese), through aesthetic concerns (e.g. the use of colors), to semantic features (e.g. the use of appropriate structures and images). All of these issues are important and can make a difference between a product being used and enjoyed or it being offensive and ignored. Various definitions of culture have been suggested, and there is not one generally agreed view, but it usually involves words such as ‘values,’ ‘beliefs,’ ‘norms,’ and ‘behavior.’ One definition we like is that culture is “programming of the mind” (Hofstede and Hofstede, 2005).

One of the most influential pieces of work on characterizing national culture differences was carried out by a management theorist called Geert Hofstede around 1970. He was given access to responses from a survey of IBM employees in over 50 countries worldwide and from this he identified four ‘dimensions’ of national culture: power distance (PD), individualism (IND), masculinity–femininity (MAS), and uncertainty avoidance (UA). As a result of work done in Hong Kong at a later date by a Canadian, Michael Bond, a fifth dimension was added which deals with time-orientation.

  • Power distance defines the extent to which inequality in power is accepted and considered as normal by less powerful members of society. In his studies, Hofstede found that Austria had the lowest PD score and Malaysia the highest.
  • Individualism is the degree to which an individual acts as part of a group or as an individual independent of the group. In an individualistic culture, everyone is expected to look after herself and her immediate family; in a collectivist culture the collective is more highly valued than the individual. In his studies Hofstede found that Guatemala had the lowest IND score and the USA the highest.
  • The MAS dimension relates to gender roles and reveals any tendencies in the culture towards ‘masculine’ values of assertiveness, competitiveness, and materialism, or towards ‘feminine’ values of nurturing, and the quality of life and relationships. In his studies he found that Sweden had the lowest score, showing that gender roles were not rigidly adhered to and Japan had the highest.
  • Uncertainty avoidance is concerned with whether a society is uncomfortable with uncertainty, preferring predictability and stability, or it welcomes unpredictability as providing new opportunities and challenges. In his studies Hofstede found that Singapore had the lowest UA score, indicating a desire to explore the unknown, and Greece the highest, indicating that Greeks value certainty.
  • Long term orientation (LTO) describes a culture associated with perseverance, thrift, the acceptance of many truths, the ability to accept change, and tendency to look to the future. A culture with short-term orientation seek stability, a single truth, and results in the short term. Asian countries such as China score highest on this dimension, while Western cultures score lowest.

Although influential, Hofstede's work does have limitations. For example, he admits that the people involved in designing the original questionnaire were all from Western cultures. In addition, his studies and conclusions have been discussed and challenged over the intervening years, e.g. the stereotype that European Americans are more individualistic than people from other ethnic groups has been challenged by Oyserman et al. (2002).

Box 10.3: Accessibility

The area of ‘accessibility’ refers to the degree to which an interactive product is usable by people with disabilities1. But what does it mean to be disabled? Definitions vary, but the following captures the main points. A person is considered to be disabled if:

  • They have a mental or physical impairment.
  • The impairment has an adverse effect on their ability to carry out normal day-today activities.
  • The adverse effect is substantial and long-term (meaning it has lasted for 12 months, or is likely to last for more than 12 months or for the rest of their life).

Whether or not a person is considered to be disabled changes over time with age, or as recovery from an accident progresses. In addition, severity and impact of an impairment can vary over the course of a day or in different environmental conditions.

It is quite common, when people first consider the topic of accessibility and interaction design, to consider it largely in terms of a specific physical disability, such as the need for a wheelchair, or loss of sight. However, it is often the case that a person with disabilities will have more than one disability, and in addition, there is a wide range of disabilities such as:

  • Color-blindness. The inability to distinguish between two colors affects approximately 1 in 10 men and 1 in 200 women. This has an impact on the use of color for highlighting or distinguishing interface elements.
  • Dyslexia. Although usually associated with difficulties in reading and writing, there are many different forms of dyslexia, some of which affect the way in which people comprehend the totality of concepts. A relatively simple interaction design decision that can cause difficulties for people with dyslexia is the contrast between foreground and background text or images.
  • Physical impairments range from conditions such as tremor or shaking, weakness, pain, reduced control of limbs, and inability to sit upright to short or missing limbs.

Disabilities such as these and others will affect the kinds of interfaces that are appropriate for a user group, and the detailed design of interfaces that will meet user experience and usability goals. For example, the accessibility of web-based systems has received much attention; the section on research and design issues for web-based interfaces in Chapter 6 discusses standards and guidelines that have been developed to support web content accessibility.

As well as goals, a persona will include a description of the pretend user's skills, attitudes, tasks, and environment. These are all defined specifically, so instead of describing someone simply as a competent sailor, include detail such as that he has completed a Day Skipper qualification and has over 100 hours of sailing experience in and around European waters. Each persona has a name, often a photograph, and some personal details such as what they do in the evening. It is the addition of precise, credible details that helps designers to see the personas as real potential users, and hence as people they can design for.

Including user experience goals for personas is useful too as it adds context, bringing the intended user to life. For example, imagine you're designing an educational game to help teenagers learn about science, and have chosen user experience goals of ‘exciting’ and ‘enjoyable.’ Introducing a specific character called Damian as a possible end-user, with details of his likes and dislikes, strengths and weaknesses, and aspirations, allows the designer to relate the new game to a concrete situation, and imagine how Damian might react to a particular feature, or game character, and so on. The persona should not be idealized, but include realistic characteristics, such as that Damian suffers from Attention Deficit Disorder, and the challenges that brings.

Usually a product will require a small set of personas rather than just one. It is difficult to give a specific number for how many personas are needed, but it may be helpful to choose one primary persona who represents a large section of the intended user group. The persona in Box 10.4 was developed for an intranet project and illustrates the kind of information that might be included.

Box 10.4: Example Persona

images

Bob is 52 years old and works as a mechanic with an organization offering road service to customers when their car breaks down. He has worked in the job for the past 12 years and knows it well. Many of the younger mechanics ask Bob for advice when they meet up in the depot as he always knows the answer to tricky mechanical problems. Bob likes sharing his knowledge with the younger guys, as it makes him feel a valued part of the team.

Bob works rolling day and night shifts and spends his shifts attending breakdowns and lockouts (when customers lock their keys in the car). About 20% of the jobs he attends are complex and he occasionally needs to refer to his standard issue manuals. Bob tries to avoid using the manuals in front of customers as he thinks it gives the impression he doesn't know what he's doing.

Bob has seen many changes over the years with the company and has tried his best to move with the times. However he found it a bit daunting when a new computer was installed in his van several years ago, and now he has heard rumors that the computer is going to be upgraded to one with a bigger screen that's meant to be faster and better.

Bob's been told that he will be able to access the intranet on the new computer. He has heard about the intranet and saw it once in an early version on his manager's computer. He wonders if he will be able to find out what's going on in the company more easily, especially as customers seem to know more about the latest company news than he does when he turns up at a job. This can be embarrassing and has been a source of frustration for Bob throughout his time with the company.

Bob wonders if he will be able to cope with the new computer system. He doesn't mind asking his grandchildren for help when he wants to send an email to his brother overseas, but asking the guys at work for help is another story.

Source: from http://www.steptwo.com.au/papers/kmc_personas/ (12.11.05)

Usability goals and user experience goals were described in Chapter 1. These are another kind of requirement, and should be captured together with appropriate measures. In Chapter 9 we introduced the idea of usability engineering, an approach in which specific measures for the usability goals of the product are established and agreed upon early in the development process and are then revisited, and used to track progress as development proceeds. This both ensures that usability is given due priority and facilitates progress tracking. Usability goals include: effectiveness, efficiency, safety, utility, learnability, and memorability. If we are to follow the philosophy of usability engineering and meet these usability goals, then we must identify the appropriate requirements. The same is true for some user experience goals, such as making products that are fun, enjoyable, pleasurable, aesthetically pleasing, and motivating. It is harder to identify quantifiable measures that allow us to track these qualities, but an understanding of how important each of these is to the current development should emerge as we learn more about the intended product.

There are two different perspectives that can be taken when identifying measures for these goals—one focuses on objective measures of the user's performance while the other focuses on the user's perceptions of the interaction. This difference will be discussed further in Chapter 14.

Activity 10.1

Suggest some key requirements in each category above (functional, data, user characteristics, usability goal, and user experience goal) for each of the following scenarios:

  1. An interactive product for use in a university's self-service cafeteria that allows users to pay for their food using a credit system.
  2. An interactive product to control the functioning of a nuclear power plant.
  3. An interactive product to support distributed design teams, e.g. for car design.

Comment

You may have come up with alternative suggestions; these are indicative of the kinds of answer we might expect.

  1. Functional: the product will calculate the total cost of purchases.

    Data: the product must have access to the price of products in the cafeteria.

    Environmental: cafeteria users will be carrying a tray and will most likely be in a reasonable rush. The physical environment will be noisy and busy, and users may be talking with friends and colleagues while using the product.

    User characteristics: the majority of users are likely to be under 25 and comfortable dealing with technology.

    Usability goals: the product needs to be easy to learn so that new users can use it immediately, and memorable for more frequent users. Users won't want to wait around for the system to finish processing, so it needs to be efficient and safe to use, i.e. able to deal easily with user errors.

    User experience goals: of the user experience goals listed in Chapter 1, I feel that those most likely to be relevant here are satisfying, helpful, and enhancing sociability. The last of these may be difficult to implement in this kind of environment, but a cafeteria is a sociable place, and so a system that enhances that would be welcome. While some of the other goals are not inappropriate, it is not essential for this product to, for example, be cognitively stimulating.

  2. Functional: the product will be able to monitor the temperature of the reactors.

    Data: the product will need access to temperature readings.

    Environmental: the physical environment is likely to be uncluttered and to impose few restrictions on the console itself unless there is a need to wear protective clothing (depending on where the console is to be located).

    User characteristics: the user is likely to be a well-trained engineer or scientist who is competent to handle technology.

    Usability goals: the system needs to exhibit all of the usability goals. You wouldn't want a safety-critical system like this being anything other than effective, efficient, safe, easy to learn and remember how to use, and with good utility. For example, outputs from the system, especially warning signals and gauges, must be clear and unambiguous.

    User experience goals: on the other hand, none of the user experience goals is particularly relevant here. You certainly wouldn't want the product to be surprising, annoying, provocative, or challenging, although there's nothing wrong with it being aesthetically pleasing or enjoyable.

  3. Functional: the product will be able to communicate information between remote sites.

    Data: the product must have access to design information that will be captured in a common file format (such as AutoCAD).

    Environmental: physically distributed over a wide area. Files and other electronic media need to be shared. The product must comply with available communication protocols and be compatible with network technologies.

    User characteristics: professional designers, who may be worried about technology but who are likely to be prepared to spend time learning a system that will help them perform their jobs better. The design team is likely to be multi-lingual.

    Usability goals: all of the usability goals will be relevant here, but maybe safety is one of the key requirements. Keeping transmission error rate low is likely to be of high priority.

    User experience goals: working collaboratively across distances can be challenging, so a system that is motivating, supportive of creativity, and enhancing sociability will fit well with its purpose.

CASE STUDY 10.1: Universal Usability: Web Fun for Individuals with Down Syndrome

In this case study by Assadour Kirijian and Matthew Myers, from A.K.A. New Media Inc. in Toronto, Canada, usability consultants and specialists in Down Syndrome worked with individuals with Down Syndrome to create a set of online tools to help individuals with Down Syndrome learn and practice the basic skills required to use the Internet. The goals of these tools are to enable individuals with Down Syndrome to take better advantage of the entertainment and educational benefits that the Internet can provide. The suite of software that they created is known as Web Fun Central.

The skills that are supported by Web Fun Central are deemed particularly important for people with Down Syndrome in their late teens who are likely to experience increased isolation as they leave high school and enter adulthood. In the course of this growing isolation, they also tend to lose some of their reading, writing, and communication skills.

The specific target group is middle-functioning (reading level grade 3 or 4) young adults aged 14–20 with Down Syndrome. From their analysis of this user population, the development team discovered that these users tended to: love music; love pop-culture; be easily led; be easily frustrated; enjoy accomplishing things; not like change; and be reward-oriented.

Web Fun Central would enable them to learn how to use the Internet for communication and entertainment, which in turn might help them maintain reading and writing skills. The interactive learning process itself lays the groundwork for the opportunity to introduce more advanced technological concepts and Internet functions in the future, and the game segments provide an enjoyable means for the user to practice the skills learned.

The case study describes how the development team worked with individuals with Down Syndrome to understand and analyze the needs of people with Down Syndrome. Together they designed, evaluated, and refined prototypes until they developed the final product.

These screens are from an application called Web World, one of the modules in Web Fun Central that teaches basic web navigation skills to individuals with Down Syndrome.

(Kirijian et al., in Lazar, 2007)

images

images

10.4 Data Gathering for Requirements

The overall purpose of data gathering in the requirements activity is to collect sufficient, relevant, and appropriate data so that a set of stable requirements can be produced. Even if a set of initial requirements exists, data gathering will be required to expand, clarify, and confirm those initial requirements. Data gathering needs to cover a wide spectrum of issues because the different kinds of requirement we need to establish are quite varied, as we saw above. We need to find out about the tasks that users currently perform and their associated goals, the context in which the tasks are performed, and the rationale for the current situation.

You met three common forms of data gathering in Chapter 7: interviews, questionnaires, and observation. Below, we first consider how these three techniques are used in the requirements activity, and then we introduce two other techniques—studying documentation and researching similar products—and their use in establishing requirements. Box 10.5 describes a very different approach aimed at prompting inspiration rather than simple data gathering.

Box 10.5: An Artist-designer Approach to Users

An alternative approach to understanding users and their needs was taken in a European Union-funded project called the Presence Project (Gaver et al., 1999). This work arose from research looking at novel interaction techniques to increase the presence of elderly people in their local community. Three different groups were studied: one in Oslo, Norway; one near Amsterdam, The Netherlands; and one near Pisa, Italy. One of the problems with designing for an unknown culture is that it can be difficult to understand or appreciate the needs of that culture. Rather than take a more traditional approach of questionnaires, interviews, or ethnographic studies, this project used “cultural probes.” These probes consisted of a wallet containing a variety of items: eight to ten postcards, about seven maps, a disposable camera, a photo album, and a media diary (see Figure 10.4). The intent was for the recipients to look through the wallet and answer questions associated with certain probes that they contained, then to return the items directly to the researchers when they had finished with them.

The postcards had pictures on the front and questions on the back, and were pre-addressed and stamped so that they could be easily returned. Questions included “Please tell us a piece of advice or insight that has been important to you,” “What place does art have in your life?,” and “Tell us about your favorite device.” The maps and associated inquiries were designed to find out about the participants' attitudes towards their environment. They were printed on various textured papers and were in the form of folding envelopes, also to facilitate their return. On local maps, participants were asked to mark sites where they would go to meet people, to be alone, to daydream, and where they would like to go, but can't. On a map of the world, they were asked to mark places where they had been.

Participants were asked to use the camera to take pictures of their home, what they will wear today (whenever ‘today’ was), the first person you see today, something desirable, and something boring. In the photo album they were asked to tell the researchers their story in pictures. The media diary was to record their use of television and radio.

The approach taken by these researchers was not to identify specific user needs but to seek inspiration that would lead to new opportunities, new pleasures, new forms of sociability, and new cultural forms. Hence they were seeking inspiration rather than requirements.

The probes were returned over a period of a month or so, at different rates and in different quantities for each group. The data were not analyzed per se, but the resulting designs reflect what the designers learned.

For the Dutch site, they proposed building a network of computer displays with which the elderly could help inhabitants communicate their values and attitudes about the culture.

For the Norwegians, they proposed that the elders should lead a community-wide conversation about social issues, publishing questions from the library that would be sent for public response to electronic systems in cafes, trams, or public spaces.

images

Figure 10.4 A cultural probe package

For the Italian village near Pisa, they plan to create social and pastoral radioscapes allowing them to create flexible communications networks and to listen to the surrounding countryside.

“What we learned about the elders is only half the story, however. The other half is what the elders learned from the probes. They provoked the groups to think about the roles they play and the pleasures they experience, hinting to them that our designs might suggest new roles and new experiences.” (Gaver et al., 1999, p. 29).

Interviews. Interviews are good at getting people to explore issues, and semi-structured or unstructured interviews are often used early on to elicit scenarios (see Section 10.6.1 below). In the context of establishing requirements, it is equally important for development team members to meet stakeholders and for users to feel involved. This on its own may be sufficient motivation to arrange interviews.

Focus groups. Focus groups are good at gaining a consensus view and highlighting areas of conflict and disagreement during the requirements activity. On a social level it also helps for stakeholders to meet designers and each other, and to express their views in public. It is not uncommon for one set of stakeholders to be unaware that their understanding of an issue or a process is different from another's even though they are in the same organization.

The generic idea of a focus group has been tailored for use within the requirements activity and requirements workshops have grown in popularity. The workshops themselves have been developed to have significant structure, evolving in some cases from the earlier JAD idea (see Chapter 9). This does not mean that each requirements workshop is the same, but the workshop structure is carefully planned attendees are carefully chosen, and specific deliverables are produced. Gottesdiener (2002) suggests a very useful, practical approach to requirements workshops that emphasizes planning and deliverables but also collaboration and facilitation. Another form of workshop that has emerged to help identify requirements is described in Box 10.6.

Box 10.6: Future Technology Workshops

Future Technology Workshops (FTWs) encourage users to postulate future uses of technology and provide a transition from current to future thinking. It is an example of a structured workshop designed to elicit requirements and to inspire users' participation in design. FTWs use props that encourage play and construction, such as modeling clay, paper, glue, sequins, wool, and pins; catalogs of existing relevant technologies are also available. An FTW lasts for a day and is broken down into seven sessions:

  • Session 1—Imagineering (10–15 minutes). This first session is a brainstorm to identify a set of new activities that people would like to be able to perform in the future, based around the design task at hand. The purpose of the session is to set the scene and get the participants to think in terms of the future, with respect to both the technology and the needs satisfied by it.
  • Session 2—Modeling (40–50 minutes). The participants are divided into groups, asked to select some of the ideas from the first session, and build a model that will demonstrate how the relevant activities are performed. The focus for this session is on future activities performed using futuristic, envisioned technology. Figure 10.5 illustrates a model built by children aged 13–14 during a session to envisage new ways of interacting with images. This photograph shows the children's designed examples of future imaging technology—a ‘SpyCam’ (an unobtrusive wireless camera that you could wear and would allow other people to view on a remote screen what you are seeing) and a ‘RoboCam’ (a tiny wireless camera that could be attached to a pet or a toy car).
  • Session 3—Role Play (30 minutes). The groups are asked to exchange models and then devise and enact a scenario demonstrating how the model might be used. The purpose of this session is to get participants to act as if the future technologies were already available to help them perform futuristic activities, and to make the participants' ideas of their envisioned designs more tangible.
  • Session 4—Retrofit (30 minutes). The groups are asked to modify their scenarios so that they use only existing technologies. The purpose of this session is explore new activities that existing technologies might support.
  • Session 5—Everyday (10–15 minutes). The group is asked to discuss how existing technology is used to perform current activities and to identify relevant problems and shortcomings of the existing technologies.
  • Session 6—Futurefit (50–60 minutes). The group is asked to look at the current activities and problems that were produced in the previous session and discuss how they think those current activities will be performed in the future. The facilitator prompts them to think in relation to the models they had built earlier.
  • Session 7—Requirements (15–20 minutes). The whole group is asked to produce a set of requirements for each model, based on their experience of the previous sessions and their needs.

From the initial workshop held to investigate new digital imaging technologies shown in Figure 10.5, a working prototype of the SpyCam was produced. Figure 10.5 shows a child wearing the wireless SpyCam attached to a pair of glasses. She is wearing a blindfold and the other children are guiding her by watching the image from her SpyCam on a remote screen and giving her directions through a walkie talkie.

(Vavoula et al., 2002; Vavoula and Sharples, 2003)

images

Figure 10.5 An example model built during an FTW to envisage new ways of interacting with images

images

Figure 10.6 A working prototype produced from the ideas generated in an initial FTW

Questionnaires. Questionnaires may be used for getting initial responses that can then be analyzed to choose people to interview or to get a wider perspective on particular issues that have arisen elsewhere. For example, a questionnaire might be used in order to gauge whether a new university helpline would be welcomed by students. This questionnaire could ask for impressions and opinions about current support services and whether the respondent is prepared to be interviewed further. Or the questionnaire might be used to get opinions and views about specific suggestions for the kind of help that would be most appreciated.

Direct observation. In the requirements activity, observation of participants in their natural setting is used to understand the nature of the tasks and the context in which they are performed. Sometimes the observation is carried out by trained observers who record their findings and report them back to the design team, and sometimes the observation is carried out by or with a member of the design team.

Indirect observation. Diaries and interaction logging are used less often within the requirements activity. Interaction logging on an existing system may be used to provide some data about how a task is performed currently, but the information is too tightly coupled with details of the existing computer support to be particularly helpful if a completely new system is planned.

Studying documentation. Manuals and other documentation are a good source of data about the steps involved in an activity and any regulations governing a task. Such documentation should not be used as the only source, however, as everyday practices may augment them and may have been devised by those concerned to make the procedures work in a practical setting. Taking a user-centered view of development means that we are interested in the everyday practices rather than an idealized account.

Studying documentation is good for understanding legislation and getting some background information on the work. It also doesn't involve stakeholder time, which is a limiting factor on the other techniques.

Researching similar products. In Chapter 9 we talked about looking at similar products in order to generate alternative designs. Another reason to look at similar products is to help prompt requirements. For example, when developing an image editor for a mobile device, Kangas and Kinnunen (2005) report that they looked at PC image editing software in order to gain an understanding of the kinds of features and interaction that such a package might offer. Similarly, Chisnell and Brown (2004) performed competitive evaluation of other health plan websites to see what they were doing.

The choice of data gathering techniques for the requirements activity is influenced by several factors including the nature of the task, the participants, the analyst, and the resources available (see Chapter 7 for a more detailed discussion of these factors). It is usual for more than one data gathering technique to be used in order to triangulate the findings. For example, observation to understand the context of task performance, interviews to target specific user groups, questionnaires to reach a wider population, and focus groups to build a consensus view. There is no ‘right’ choice or combination as this will depend on the specific circumstances and resources. Many different combinations are used in practice. Box 10.7 provides examples of just some of these. Note that some examples include evaluating prototypes as part of the requirements activity. This serves to highlight the close relationship between requirements, design, and evaluation, as illustrated in our interaction design process in Chapter 9—the distinction between these phases is blurred and depends mainly on emphasis.

Box 10.7: Combining Data Gathering in Requirements Activities

Diary and interview. Jones et al. (2004) were investigating location-aware community systems, and as they wanted to explore people's personal experiences of everyday activities, they felt that a diary study would be appropriate. Informants were asked to enter where they were and what they were doing every 30 minutes for a day. The diary entries were analyzed and then semi-structured interviews were conducted in order to probe the participants further, asking them to elaborate on the diaries.

Ethnographic interviews, focus groups with props, and questionnaires. Stevens et al. (2003) report the research and design of a system called the Living Memory Box (see Figure 10.7) for collecting, archiving, and annotating memories of family life. Initially they focused on parents wanting to save memories of their children growing up. They conducted ethnographic interviews with 13 parents of children ranging from four weeks to 29 years old. Parents felt that current storage methods are inadequate, despite the different media available to save memories, e.g. video, audio, artwork, etc., and that there is a lack of storage facilities for anything other than physical objects, e.g. photo albums. Findings from the interviews included: remove the work from collecting, annotating, and revisiting memories; make the inclusion of physical objects a primary feature; develop natural interaction, e.g. voice and touch; enable storytelling so that the memory can be saved intact.

The team used visual models and scenarios to develop the design. This helped them to develop prototypes which were taken to a set of focus groups. The week before attending the focus group, participants were asked to answer a set of questions with pictures or words. These questions focused on the participants' current memorabilia and their storage. In the focus groups, participants were asked about their answers and the prototype system was demonstrated. At the end of the two-hour session feedback was elicited through discussion and via a questionnaire.

images

Figure 10.7 The Living Memory Box

Documentation, interview, online survey, group discussion. Oostveen and van den Besselaar (2004) describe the development of a smart-card-based system that would support mobile European citizens in achieving various administrative transactions between countries. For example, moving from one country to another requires a set of bureaucratic operations to be performed, largely concerned with exchanging documentation. This system would enable the citizen to download the required information onto a smart card and use this electronic ‘document’ in the new country. In-depth interviews with expatriates from different countries allowed them to catalog the problems mobile Europeans encounter. Interviews with civil servants and various intermediaries whose jobs involve helping such people were also held. In order to check the relevance of the interview results to a wider set of potential users, they then set up an online survey. The administrative processes were investigated through group discussions which were held in different countries between technology designers and administrative experts; potential solutions were also discussed in these workshops. Documentation was studied to underpin the other requirements activities.

Focus groups, interviews, and evaluations. Liu et al. (2005) report on some research into expanding the use of ATMs in China. This study was conducted in order to identify factors that might affect requirements for ATM design, identify problems or issues with current ATMs in China, and identify appropriate ways in which to increase adoption. They used three different approaches to data gathering: focus groups were used to share good and bad experiences of ATM use, interviews were carried out in a shopping center with 100 participants to find out how widely applicable the findings were from the focus groups, and evaluations of existing ATMs were conducted to uncover confusions and error rates.

10.4.1 Contextual Inquiry

Contextual inquiry (Holtzblatt and Jones, 1993) is one of seven parts of contextual design (Beyer and Holtzblatt, 1998), which is a structured approach to the collection and interpretation of data from fieldwork with the intention of building a software-based product. Contextual design involves the production of five different models of work.

We include contextual inquiry in this chapter as it is a popular technique for uncovering requirements, and in particular in uncovering requirements relating to the context of use. It is not always used along with the complete contextual design method, and in addition focused contextual inquiry sessions can be conducted more rapidly than extensive user research. For example, Kangas and Kinnunen (2005) conducted interviews with only six to eight people before moving to create a prototype for their mobile application.

Contextual inquiry is an approach that emerged from the ethnographic approach to data gathering. It is tailored to gather data that can be used in design and it follows an apprenticeship model: the designer works as an apprentice to the user. The most typical format for contextual inquiry is a contextual interview, which is a combination of observation, discussion, and reconstruction of past events. Contextual inquiry rests on four main principles: context, partnership, interpretation, and focus.

The context principle emphasizes the importance of going to the workplace and seeing what happens. The partnership principle states that the developer and the user should collaborate in understanding the work; in a traditional interviewing or workshop situation, the interviewer or workshop leader is in control, but in contextual inquiry the spirit of partnership means that the understanding is developed through cooperation.

The interpretation principle says that the observations must be interpreted in order to be used in design, and this interpretation should also be developed in cooperation between the user and the developer. For example, I have a set of paper cards stuck on my screen at work. They are covered in notes; some list telephone numbers and some list commands for the software I use. Someone coming into my office might interpret these facts in a number of ways: that I don't have access to a telephone directory; that I don't have a user manual for my software; that I use the software infrequently; that the commands are particularly difficult to remember. The best way to interpret these observations is to discuss them with me. In fact, I do have a telephone directory, but I keep the numbers on a note to save me the trouble of looking them up in the directory. I also have a telephone with a memory, but it isn't clear to me how to put the numbers in memory, so I use the notes instead. The commands are there because I often forget them and waste time searching through menu structures.

The fourth principle, the focus principle, is related to our discussions in Chapter 7 about keeping the data gathering focused on your goals. In contextual inquiry, as in an unstructured interview, for example, it is easy for the discussion to wander off target. To help avoid this, a project focus is established to guide the interviewer, which will then be augmented by the individual's own focus that arises from their perspective and background.

Activity 10.2

How does the contextual inquiry interview compare with the interviews introduced in Chapter 7?

Comment

We introduced structured, unstructured, and semi-structured interviews in Chapter 7. Contextual inquiry could be viewed as an unstructured interview, but it has other characteristics not normal for an unstructured interview. A contextual inquiry interview is conducted at the interviewee's place of work, while normal work continues. Contextual inquiry specifically incorporates other data gathering techniques as well, such as observation.

Normally, each member of the team developing the interactive product conducts at least one contextual inquiry session. Data is collected in the form of notes and perhaps audio and video recording, but a lot of information is in the observer's head. It is important to review the experience and to start documenting the findings as soon as possible after the session. Contextual inquiry is usually followed by an interpretation session in which a number of models are generated: an affinity diagram, the work flow model, the sequence model, the artifact model, the cultural model, and the physical model. More detail about these models and how to generate them is in Beyer and Holtzblatt (1998).

10.4.2 Data Gathering Guidelines for Requirements

General advice for data gathering was given in Chapter 7, but there are a few more specific guidelines worthy of note when gathering data for requirements.

  • Focus on identifying the stakeholders' needs. This may be achieved by studying their existing behavior and support tools, or by looking at other products, such as a competitor's product or an earlier release of your product under development.
  • Involve all the stakeholder groups. It is very important to make sure that you get the views of all the right people. This may seem an obvious comment, but it is easy to overlook certain sections of the stakeholder population if you're not careful. We were told about one case where a large distribution and logistics company reimplemented their software systems and were very careful to involve all the clerical, managerial, and warehouse staff in their development process, but on the day the system went live, the productivity of the operation fell by 50%. On investigation it was found that the bottleneck was not in their own company, but in the suppliers' warehouses that had to interact with the new system. No one had asked them how they worked, and the new system was incompatible with their working routines.
  • Involving only one representative from each stakeholder group is not enough, especially if the group is large. Everyone you involve in data gathering will have their own perspective on the situation, the task, their job, and how others interact with them. If you only involve one representative stakeholder then you will only get a narrow view.
  • Support the data gathering sessions with suitable props, such as task descriptions and prototypes if available. Since the requirements activity is iterative, prototypes or descriptions generated during one session may be reused or revisited in another with the same or a different set of stakeholders. Using props will help to jog people's memories and act as a focus for discussions.

10.5 Data Analysis, Interpretation, and Presentation

Methods and approaches for analysis, interpretation, and presentation of data were discussed in Chapter 8. These are applicable during the requirements activity. However, the aim here is to structure and record descriptions of requirements. Using a format such as the Volere shell (Figure 10.8) highlights the kinds of information to look for and is a good first step in data analysis for requirements. Note that many of the entries are concerned with traceability. For example, who raised the requirement and where can more information about it be found. This information may be captured in documents or in diagrams drawn during analysis. Providing links with raw data as captured on video or audio recordings can be harder, although just as important. Haumer et al. (2000) have developed a tool that records concrete scenarios using video, speech, and graphic media, and relates these recorded observations to elements of a corresponding design. This helps designers to keep track of context and usage information while analyzing and designing for the system.

In parallel with producing Volere shells, the different kinds of requirements will start to emerge. These are best investigated using other, more formal techniques and notations. For example, functional requirements have traditionally been analyzed and documented using data-flow diagrams, state charts, work-flow charts, etc. (see, e.g. Sommerville, 2006). Data requirements can be expressed using entity-relationship diagrams, for example. If the development is to take an object-oriented approach, then functional and data requirements are combined in class diagrams, with behavior being expressed in state charts and sequence diagrams, among others. Examples of two such diagrams representing a portion of a holiday booking system are given in Figure 10.9. These diagrams can be linked to the requirements through the “Event/use case” field in the shell in Figure 10.8.

images

Figure 10.8 The Volere shell for requirements

We don't go into the detail of how specialized diagrams such as these might be developed, as whole books are dedicated to them. Instead, we describe four techniques that have a user-centered focus and are used to understand users' goals and tasks: scenarios, use cases, essential use cases, and task analysis. All of them may be produced as a result of data gathering sessions, and their output used as props in subsequent data gathering sessions.

The requirements activity is iterated a number of times before a set of stable requirements evolves. As more analysis techniques are applied, a deeper understanding of requirements will emerge and the requirements descriptions will expand and clarify.

images

Figure 10.9 (a) Class diagram and (b) sequence diagram that might be used to analyze and capture static structure and dynamic behavior (respectively) if the system is being developed using an object-oriented approach

Dilemma: How Formal Should your Notation be?

Many forms of notation are used in design activities. Each discipline has its own set of symbols, graphs, and mnemonics that communicate precisely and clearly among people from the same discipline. But, in the early stages of design, designers are well known for their ‘back-of-an-envelope’ sketches that capture the essence of an idea. At what stage should these sketches be transformed into more formal notations?

When we have identified needs and established requirements, they must be documented somehow. Whether this is in a purely textual form, or in prototypical form, or more formal box and line notations, or a programming language, our findings need to be captured. When Verplank (1994) speaks about producing software-based prototypes, he talks emphatically about the importance of allowing ideas to flourish before they are formalized in the computer medium. Once cast in this way, we “get sucked into thinking that the design already works and all we have to do is fix it.” The same could be said of formal paper-based notations. In interaction design, we have many notations to choose from, arising from the various disciplines that underpin our field (see Figure 1.4). How quickly should we formalize our ideas in structured notation, and for how long should we leave the ideas fluid and flexible?

A counterargument to Verplank's position is that trying to write our findings in a more structured fashion also helps us to understand better what we've found and what's missing. The problem is that any notation has its strengths and weaknesses, and we must be aware of these when we commit our ideas to a specific notation so that our thinking and our ideas don't become too influenced by the foibles of the notation itself.

Yet again, there is also a question of who the requirements are being captured for. If users are to read and understand them, then the notation shouldn't contain technical jargon or symbols. On the other hand, if it is for communicating precise meaning within a team of developers, a more formal, specialized notation may be more appropriate.

Choosing the medium for the message can affect how the message is received and hence the meaning that is communicated, so it's important to get the medium right.

10.5.1 Brainstorming for Innovation

So far we have focused on how requirements may emerge directly from the data gathered. However, establishing a suitable set of requirements is likely to also involve innovation. Brainstorming is not a technique specific to interaction design, or to any other discipline, and is a generic technique used to generate, refine, and develop ideas. It is widely used in interaction design specifically for generating alternative designs (as discussed in Chapter 9) or for suggesting new and better ideas for supporting users.

Various ‘rules’ have been suggested for making a brainstorming session successful, some of which we list below. For requirements, two key success factors are firstly that the participants should know the users' goals that the product is to support, and secondly that no ideas should be criticized or debated (Robertson and Robertson, 2006; Kelley, 2001). Some other suggestions for successful requirements brainstorms are:

  1. Include participants from a wide range of disciplines, with a broad range of experience (Robertson and Robertson, 2006; Kelley, 2001).
  2. Don't ban ‘silly stuff’ (Kelley, 2001). Unconventional ideas often turn into really useful requirements (Robertson and Robertson, 2006).
  3. Use catalysts for further inspiration. Build one idea on top of another (Robertson and Robertson, 2006). Kelley (2001) also suggests jumping back to an earlier idea, or considering alternative interpretations when energy levels start to flag. If you get stuck, use a word pulled randomly from a dictionary to prompt ideas related to the product (Robertson and Robertson, 2006).
  4. Keep records. Robertson and Robertson (2006) suggest that every idea should be captured, without censoring. Kelley (2001) suggests that you number them so that you can jump around and refer back to ideas more easily. He also suggests that the walls and tables in the room be covered in paper and that participants be encouraged to sketch, mind-map, and diagram ideas, including keeping the flow of ideas, as spatial memory is very strong and this can facilitate recall.
  5. Sharpen the focus (Kelley, 2001). Start the brainstorm with a well-honed problem. This will get the brainstorm off to a good start and makes it easier to pull people back to the main topic if the session wanders.
  6. Use warm-up exercises. The group will require ‘warming up’ if they haven't worked together before, most of the group don't brainstorm regularly, or the group is distracted by other pressures (Kelley, 2001). Warm-up exercises might take the form of word games, or the exploration of physical items related or unrelated with the problem at hand. For example, see the use of the TechBox discussed in Chapter 9.

10.6 Task Description

Descriptions of business tasks have been used within software development for many years. During the 1970s and 1980s, ‘business scenarios’ were commonly used as the basis for acceptance testing, i.e. the last testing stage before the customer paid the final fee installment and ‘accepted’ the system. In more recent years, due to the emphasis on involving users earlier in the development lifecycle and the large number of new interactive products now being developed, task descriptions are used throughout development, from early requirements activities through prototyping, evaluation, and testing. Consequently, more time and effort has been put into understanding how best to structure and use them.

As shown by Alexander and Maiden's (2004) collection of scenarios, stories, and use cases, there are many different flavors of task descriptions, and they can be used for different purposes, emphasizing different elements of the product being developed. For example, Alexander and Maiden use a structuring framework that distinguishes task descriptions according to four views which are made up of nine facets including method of description (e.g. text, graphics, image or prototype, and formal, informal, or semi-formal notation), context (e.g. organizational environment and system interaction), and role (descriptive, exploratory, or explanatory).

We shall introduce three of the more common description types here: scenarios, use cases, and essential use cases. Each of these may be used to describe either existing tasks or envisioned tasks with a new product. They are not mutually exclusive and are often used in combination to capture different perspectives or to document different stages during the development lifecycle.

In this section and the next, we use two main examples to illustrate the application of techniques. These are a library catalog service and a shared travel organizer. The library catalog is similar to any you might find in a public or university library, and allows you to access the details of books held in the library: for example, to search for books by a particular author, or by subject, to identify the location of a book you want to borrow, and to check on a member's current loans and status.

The shared travel organizer is to support a group of people in exploring a joint holiday. This might be used by groups of friends or family members and could be located in a travel agent's office or other public space. The travel organizer would help the users to explore different kinds of destination, travel, and accommodation options, offer advice for visa and vaccination requirements, and identify a set of possible holidays that meet the group's requirements.

10.6.1 Scenarios

A scenario is an “informal narrative description” (Carroll, 2000). It describes human activities or tasks in a story that allows exploration and discussion of contexts, needs, and requirements. It does not explicitly describe the use of software or other technological support to achieve a task. Using the vocabulary and phrasing of users means that the scenarios can be understood by the stakeholders, and they are able to participate fully in the development process. In fact, the construction of scenarios by stakeholders is often the first step in establishing requirements.

Imagine that you have just been invited along to talk to a group of users who perform data entry for a university admissions office. You walk in, and are greeted by Sandy, the supervisor, who starts by saying something like:

Well, this is where the admissions forms arrive. We receive about 50 a day during the peak application period. Brian here opens the forms and checks that they are complete, that is, that all the documentation has been included. You see, we require copies of relevant school exam results or evidence of work experience before we can process the application. Depending on the result of this initial inspection, the forms get passed to …

Telling stories is a natural way for people to explain what they are doing or how to achieve something. It is therefore something that stakeholders can easily relate to. The focus of such stories is also naturally likely to be about what the users are trying to achieve, i.e. their goals. Understanding why people do things as they do and what they are trying to achieve in the process allows us to concentrate on the human activity rather than interaction with technology.

This is not to say that the human activity should be preserved and reflected in any new product we are trying to develop, but understanding what people do now is a good starting point for exploring the constraints, contexts, irritations, facilitators, and so on under which the humans operate. It also allows us to identify the stakeholders and the products involved in the activity. Repeated reference to a particular form, book, behavior, or location indicates that this is somehow central to the activity being performed and that we should take care to understand what it is and the role it plays.

A scenario that might be generated by potential users of a library catalog service is given below:

Say I want to find a book by George Jeffries. I don't remember the title but I know it was published before 1995. I go to the catalog and enter my user password. I don't understand why I have to do this, since I can't get into the library to use the catalog without passing through security gates. However, once my password has been confirmed, I am given a choice of searching by author or by date, but not the combination of author and date. I tend to choose the author option because the date search usually identifies too many entries. After about 30 seconds the catalog returns saying that there are no entries for George Jeffries and showing me the list of entries closest to the one I've sought. When I see the list, I realize that in fact I got the author's first name wrong and it's Gregory, not George. I choose the entry I want and the system displays the location to tell me where to find the book.

In this limited scenario of existing system use, there are some things of note: the importance of getting the author's name right, the annoyance concerning the need to enter a password, the lack of flexible search possibilities, and the usefulness of showing a list of similar entries when an exact match isn't clear. These are all indicators of potential design choices for the new catalog system. The scenario also tells us one (possibly common) use of the catalog system: to search for a book by an author when we don't know the title.

The level of detail present in a scenario varies depending on where in the development process they are being used. During requirements it is a good idea for scenarios to emphasize the context, the usability and user experience goals, and the tasks the user is performing. The inclusion of dramatic or emotional elements in scenarios has been found to increase software developers' understanding of context (Strøm, 2006). When used in combination with detailed personas, this kind of scenario can improve the developers' appreciation of the user experience.

Often scenarios are generated during workshop, interview, or brainstorming sessions to help explain or discuss some aspect of the user's goals. They can be used to imagine potential uses of a product as well as to capture existing behavior. They are not intended to capture a full set of requirements, but are a very personalized account, offering only one perspective.

A longer scenario for the shared travel organizer that was elicited in an informal interview is included below. This describes how one function of the system might work: to identify potential holiday options. Note that this scenario includes details about some typical users and their needs. This is the kind of information that you might glean from a requirements interview.

The Thomson family enjoy outdoor activity holidays and want to try their hand at sailing this year. There are four members of the family: Sky who is 10 years old, Eamonn who is 15 years old, Claire who is 35, and Will who is 40. While out on a shopping trip they call by at the travel agents in their local town to start exploring the possibilities, although they only have an hour to spare. The travel organizer is located in a quiet corner of the agents' office, where there are comfortable seats and play things for young children. They all gather around the organizer and enter their initial set of requirements—a sailing holiday for four novices. The stand-alone console is designed so that all members of the family can interact easily and comfortably with it. The system's initial suggestion is that they should consider a flotilla holiday, where several novice crews go sailing together and provide mutual support for first-time sailors. Sky and Eamonn aren't very happy at the idea of going on holiday with a group of other people and take some convincing that this would be good. The travel organizer shows them some descriptions of these holidays from other children their ages who have been on flotillas and they are all very positive. So eventually, they all agree that this would be a good idea, and accept this recommendation. The system then asks for various further details such as choice of destination. The Thomsons have been to the Mediterranean several times, and would like to return. The system confirms that there are several places in the Mediterranean that are suitable for first-time sailors and that flotilla holidays can be arranged there. As time is running short, Will suggests that they take the current suggestions away with them and consider them at home. The travel organizer prints out a summary of the different options they have considered, and the favorite suggestion so far.

An example of a futuristic scenario, devised by Symbian, showing one vision of how wireless devices might be used in the future is shown in Figure 10.10.

images

Figure 10.10 A scenario showing how two technologies, a Smartphone and wCommerce (wireless commerce), might be used

In this chapter, we refer to scenarios only in their role of helping to establish requirements. They have a continuing role in the design process that we shall return to in Chapter 11. Indeed, as Alexander and Maiden (2004) show, scenarios have a role to play throughout the lifecycle, and Rosson and Carrol (2002) explain an approach called scenario-based usability engineering that illustrates the use of scenarios within a usability engineering framework.

Capturing scenarios of existing behavior and goals helps in determining new scenarios and hence in gathering data useful for establishing the new requirements. The next activity is intended to help you appreciate how a scenario of existing activity can help identify the requirements for a future application to support the same user goal.

Activity 10.3

Write a scenario of how you would currently go about choosing a new car. This should be a brand new car, not a secondhand car. Having written it, think about the important aspects of the task, your priorities and preferences. Then imagine a new interactive product that supports you in your goal and takes account of these issues. Write a futuristic scenario showing how this product would support you.

Comment

The following example is a fairly generic view of this process. Yours will be different, but you may have identified similar concerns and priorities.

The first thing I would do is to observe cars on the road and identify ones that I like the look of. This may take some weeks. I would also try to identify any consumer reports that will include an assessment of car performance. Hopefully, these initial activities will result in me identifying a likely car to buy. The next stage will be to visit a car showroom and see at first hand what the car looks like, and how comfortable it is to sit in. If I still feel positive about the car, then I'll ask for a test drive. Even a short test drive helps me to understand how well the car handles, how noisy is the engine, how smooth are the gear changes, and so on. Once I've driven the car myself, I can usually tell whether I would like to own it or not.

From this scenario, it seems that there are broadly two stages involved in the task: researching the different cars available, and gaining first-hand experience of potential purchases. In the former, observing cars on the road and getting actual and maybe critical information about them has been highlighted. In the latter, the test drive seems to be quite significant.

For many people buying a new car, the smell and touch of the car's exterior and interior, and the driving experience itself are often the most influential factors in choosing a particular model. Other more factual attributes such as fuel consumption, amount of room inside, colors available, and price may rule out certain makes and models, but at the end of the day, cars are often chosen according to how easy they are to handle and how comfortable they are inside. This makes the test drive a vital part of the process of choosing a new car.

Taking these comments into account, we've come up with the following scenario describing how a new ‘one-stop shop’ for new cars might operate. This product makes use of immersive virtual reality technology that is already used for other applications such as designing buildings and training bomb disposal experts.

I want to buy a new car, so I go down the street to the local ‘one-stop car shop.’ The shop has a number of booths in it, and when I go in I'm directed to an empty booth. Inside there's a large seat that reminds me of a racing car seat, and in front of that a large display screen, keyboard, and printer. As I sit down, the display jumps into life. It offers me the options of browsing through video clips of new cars which have been released in the last two years, or of searching through video clips of cars by make, by model, or by year. I can choose as many of these as I like. I also have the option of searching through and reading or printing consumer reports that have been produced about the cars I'm interested in. I spend about an hour looking through materials and deciding that I'd like to experience a couple that look promising. I can of course go away and come back later, but I'd like to have a go with some of those I've found. By flicking a switch in my armrest, I can call up the options for virtual reality simulations for any of the cars I'm interested in. These are really great as they allow me to take the car for a test drive, simulating everything about the driving experience in this car, from road holding, to windscreen display, and front pedal pressure to dashboard layout. It even recreates the atmosphere of being inside the car.

Note that the product includes support for the two research activities mentioned in the original scenario, as well as the important test drive facility. This would be only a first cut scenario, which would then be refined through discussion and further investigation.

Activity 10.4

What is the difference between a scenario and a persona?

Comment

A persona describes the attributes of a person and aspects of their personality. A scenario describes activities and context of use but can also include a ‘day in the life’ of a person.

CASE STUDY 10.2: Establishing Requirements for a Mobile Learning System

MobiLearn was a European-funded research and development project that explored new ways of using mobile environments to meet the needs of learners working by themselves and with others. It developed a new m-learning architecture to support the creation, brokerage, delivery, and tracking of learning and information content, using ambient intelligence, location-dependence, personalization, multimedia, instant messaging (text, video), and distributed databases. Establishing the requirements for such a project was a complex task, involving many methods and notations.

MobiLearn revolved around three different learning scenarios: one focused on museum visitors, one focused on MBA students, and one focused on first aid workers. Data to establish the requirements was gathered using FTWs (see Box 10.6), questionnaires, direct observation, and interviews. The requirements were captured using the Volere shell but the project team found that the shell needed to be tailored by adding two fields: title and status.

This case study explains the project's use of scenarios and the Volere shell to document and evolve a set of requirements. It also discusses some of the issues faced by large distributed project teams.

10.6.2 Use Cases

Use cases also focus on user goals, but the emphasis here is on a user–system interaction rather than the user's task itself. They were originally introduced through the object-oriented community in the book Object-Oriented Software Engineering (Jacobson et al., 1992). Although their focus is specifically on the interaction between the user (called an ‘actor’) and a software system, the stress is still very much on the user's perspective, not the system's. The term ‘scenario’ is also used in the context of use cases. In this context, it represents one path through the use case, i.e. one particular set of conditions. This meaning is consistent with the definition given above in that they both represent one specific example of behavior.

A use case is associated with an actor, and it is the actor's goal in using the system that the use case wants to capture. In this technique, the main use case describes what is called the ‘normal course,’ i.e. the set of actions that the analyst believes to be most commonly performed. So, for example, if through data gathering we have found that most users of the library go to the catalog to check the location of a book before going to the shelves, then the normal course for the use case would include this sequence of events. Other possible sequences, called alternative courses, are then listed at the bottom of the use case.

A use case for retrieving the visa requirements using the travel organizer, with the normal course being that information about the visa requirements is available, might be:

  1. The system displays options for investigating visa and vaccination requirements.
  2. The user chooses the option to find out about visa requirements.
  3. The system prompts user for the name of the destination country.
  4. The user enters the country's name.
  5. The system checks that the country is valid.
  6. The system prompts the user for her nationality.
  7. The user enters her nationality.
  8. The system checks the visa requirements of the entered country for a passport holder of her nationality.
  9. The system displays the visa requirements.
  10. The system displays the option to print out the visa requirements.
  11. The user chooses to print the requirements.

Alternative courses:

6. If the country name is invalid:

  1. 6.1 The system displays an error message.
  2. 6.2 The system returns to step 3.

8. If the nationality is invalid:

  • 8.1 The system displays an error message.
  • 8.2 The system returns to step 6.

9. If no information about visa requirements is found:

  • 9.1 The system displays a suitable message.
  • 9.2 The system returns to step 1.

Note that the number associated with the alternative course indicates the step in the normal course that is replaced by this action or set of actions. Also note how specific the use case is about how the user and the system will interact.

Use cases may be described graphically. Figure 10.11 shows the use case diagram for the travel organizer example. The actor ‘Travel agent’ is associated with the use case ‘Update holiday details.’ Another actor for the travel organizer is the ‘Holidaymaker,’ such as the Thomson family members above. Actors may be associated with more than one use case, so for example the actor ‘Holidaymaker’ is associated with a use case ‘Identify potential holiday options’ as well as the ‘Retrieve visa requirements’ use case. Each use case may also be associated with more than one actor. Note that an actor represents a role, so when Jasmine, who works for the travel agency, is looking for holidays for herself, she adopts the actor role of Holidaymaker, but in her role as travel agent she will adopt the Travel agent actor role.

images

Figure 10.11 Use case diagram for the travel organizer showing four use cases and two actors

This kind of description has a different style and a different focus from the scenarios described in Section 10.6.1. The layout is more formal, and the structure of ‘good’ use cases has been discussed by many, e.g. Cockburn (2000); Bittner and Spence (2002); Ben Achour (1999). The description also focuses on the user–system interaction rather than on the user's activities; thus a use case presupposes that technology is being used. This kind of detail is more useful at conceptual design stage than during requirements or data gathering, but use cases have been found to help some stakeholders express their views on how existing systems are used and how a new system might work.

To develop a use case, first identify the actors, i.e. the people or other systems that will be interacting with the system under development. Then examine these actors and identify their goal or goals in using the system. Each of these will be a use case.

Activity 10.5

Consider the example of the library catalog service. One use case is ‘Locate book,’ and this would be associated with the ‘Library member’ actor.

  1. Identify one other main actor and an associated use case, and draw a use case diagram for the library catalog system.
  2. Write out the use case for ‘Locate book’ including the normal and some alternative courses. You may assume that the normal course is for users to go to the catalog to find the location, and that the most common path to find this is through a search by author.

Comment

  1. One other main actor is the ‘Librarian.’ A use case for the ‘Librarian’ would be ‘Update catalog.’ Figure 10.12 is the associated use case diagram. There are other use cases you may have identified.
  2. The use case for ‘Locate book’ might be something like this:
    1. The system prompts for user name and password.
    2. The user enters his or her user name and password into the catalog system.
    3. The system verifies the user's password.
    4. The system displays a menu of choices.
    5. The user chooses to locate book.
    6. The system displays the search menu.
    7. The user chooses to search by author.
    8. The system displays the search author screen.
    9. The user enters the author's name.
    10. The system displays search results.
    11. The user chooses the required book.
    12. The system displays details of chosen book.
    13. The user notes location.
    14. The user quits catalog system.

Alternative courses:

4. If user password is not valid:

  • 4.1 The system displays error message.
  • 4.2 The system returns to step 1.

5. If user knows the book details:

  • 5.1 The user chooses to enter book details.
  • 5.2 The system displays book details screen.
  • 5.3 The user enters book details.
  • 5.4The system goes to step 12.

images

Figure 10.12 Use case diagram for the library catalog service

10.6.3 Essential Use Cases

Essential use cases were developed by Constantine and Lockwood (1999) to combat what they see as the limitations of both scenarios and use cases as described above. Scenarios are concrete stories that concentrate on realistic and specific activities. They therefore can obscure broader issues concerned with the wider organizational view. On the other hand, traditional use cases contain certain assumptions, including the fact that there is a piece of technology to interact with, and also assumptions about the user interface and the kind of interaction to be designed.

Essential use cases represent abstractions from scenarios, i.e. they represent a more general case than a scenario embodies, and try to avoid the assumptions of a traditional use case. An essential use case is a structured narrative consisting of three parts: a name that expresses the overall user intention, a stepped description of user actions, and a stepped description of system responsibility. This division between user and system responsibilities can be very helpful during conceptual design when considering task allocation and system scope, i.e. what the user is responsible for and what the system is to do.

An example essential use case based on the visa requirements example given above is shown in Figure 10.13. Note that the steps are more generalized than those in the use case in Section 10.6.1, while they are more structured than the scenario in Section 10.6.2. For example, the second user intention does not say anything about choosing options or system prompts, it simply states that the user supplies the required information. This could be achieved in a variety of ways including scanning a passport, accessing a database of personal information based on fingerprint recognition, and so on. The point is that at the time of creating this essential use case, there is no commitment to a particular interaction design. Essential use cases would normally be developed before the more detailed use case.

images

Figure 10.13 An essential use case for retrieving visa requirements in the travel organizer

Instead of actors, essential use cases are associated with user roles. One of the differences is that an actor could be another system, whereas a user role is just that: not a particular person, and not another system, but a role that a number of different people may play when using the system. Just as with actors, though, producing an essential use case begins with identifying user roles.

Activity 10.6

Construct an essential use case ‘locate-Book’ for the user role ‘Library member’ of the library catalog service discussed in Activity 10.5.

Comment

Note here that we don't talk about passwords, but merely state that the users need to identify themselves. This could be done using fingerprinting, or retinal scanning, or any other suitable technology. The essential use case does not commit us to technology at this point. Neither does it specify search options or details of how to initiate the search.

images

10.7 Task Analysis

Task analysis is used mainly to investigate an existing situation, not to envision new products. It is used to analyze the underlying rationale and purpose of what people are doing: what are they trying to achieve, why are they trying to achieve it, and how are they going about it? The information gleaned from task analysis establishes a foundation of existing practices on which to build new requirements or to design new tasks.

Task analysis is an umbrella term that covers techniques for investigating cognitive processes and physical actions, at a high level of abstraction and in minute detail. In practice, task analysis techniques have had a mixed reception. The most widely used version is Hierarchical Task Analysis (HTA), and this is the technique we introduce in this chapter. Another well-known task analysis technique called GOMS (Goals, Operations, Methods, and Selection rules) that models procedural knowledge (Card et al., 1983) is described in Chapter 15.

10.7.1 Hierarchical Task Analysis

Hierarchical Task Analysis (HTA) was originally designed to identify training needs (Annett and Duncan, 1967). It involves breaking a task down into subtasks and then into sub-subtasks and so on. These are then grouped together as plans that specify how the tasks might be performed in an actual situation. HTA focuses on the physical and observable actions that are performed, and includes looking at actions that are not related to software or an interactive product at all. The starting point is a user goal. This is then examined and the main tasks associated with achieving that goal are identified. Where appropriate, these tasks are subdivided into subtasks.

Consider the library catalog service, and the task of borrowing a book. This task can be decomposed into other tasks such as accessing the library catalog, searching by name, title, subject, or whatever, making a note of the location of the book, going to the correct shelf, taking it down off the shelf (provided it is there), and finally taking it to the check-out counter. This set of tasks and subtasks might be performed in a different order depending on how much is known about the book, and how familiar the user might be with the library and the book's likely location. Figure 10.14. shows these subtasks and some plans for different paths through those subtasks. Indentation shows the hierarchical relationship between tasks and subtasks.

Note how the numbering works for the task analysis: the number of the plan corresponds to the number of the step to which the plan relates. For example, plan 2 shows how the subtasks in step 2 can be ordered; there is no plan 1 because step 1 has no subtasks associated with it.

An alternative expression of an HTA is a graphical box-and-line notation. Figure 10.15 shows the graphical version of the HTA in Figure 10.14. Here the subtasks are represented by named boxes with identifying numbers. The hierarchical relationship between tasks is shown using a vertical line. If a task is not decomposed any further then a thick horizontal line is drawn underneath the corresponding box.

images

Figure 10.14 An HTA for borrowing a book from the library

Plans are also shown in this graphical form. They are written alongside the vertical line emitting from the task being decomposed. For example, in Figure 10.15 plan 2 is specified next to the vertical line from box 2: “find required book.”

images

Figure 10.15 A graphical representation of the task analysis for borrowing a book

Activity 10.7

Consider the travel organizer again and the task of identifying potential holiday options. Perform hierarchical task analysis for the goal of identifying a holiday. Include all plans in your answer. Express the task analysis textually and graphically.

Comment

The main tasks involved in this are to compile a set of initial criteria (e.g. a sailing holiday for novices), find out any constraints on the holiday, such as possible dates and facilities required at the destination (e.g. child crêche), identify potential holidays that fit the criteria (e.g. a flotilla holiday around the Greek Islands with BoatsRUs), decide on the preferred holiday, and book the holiday. Identifying potential holidays can be decomposed into other tasks such as looking for suitable destinations, looking at a destination's facilities, identifying holiday companies who operate to the chosen destination, and checking availability of potential holiday on preferred dates. At any point while identifying potential holidays, the holiday options can be printed out. The textual version of the HTA is shown below. Figure 10.16 shows the corresponding graphical representation.

images

Figure 10.16 A graphical representation of the holiday HTA

Activity 10.8

What do you think are the main problems with using task analysis on real problems? Think of more complex tasks such as scheduling delivery trucks, or organizing a large conference.

Comment

Real tasks are very complex. One of the main problems with task analysis is that it does not scale very well. The notation soon becomes unwieldy, making it difficult to follow. Imagine what it would be like to produce a task analysis in which there were hundreds or even thousands of subtasks.

A second problem is that task analysis is limited in the kinds of task it can model. For example, it cannot model tasks that are overlapping or in parallel, nor can it model interruptions. Most people work through interruptions of various kinds, and many significant tasks happen in parallel.

Assignment

This assignment is the first of four assignments that together take you through the complete development lifecycle for an interactive product. This assignment requires you to use techniques described in this chapter for identifying needs and establishing requirements. You will also need to draw on techniques from Chapters 7 and 8. The further three assignments are at the end of Chapters 11, 14, and 15.

The overall assignment is for you to design and evaluate an interactive website for booking tickets online for events like concerts, the theater, and the cinema. This is currently an activity that, in many instances, can be difficult or inconvenient to achieve using traditional means, e.g. waiting for ages on the phone to get hold of an agent, queuing for hours in the rain at a ticket office. Although some online booking sites are available, they often do not offer the best seats and can be difficult to operate.

For this assignment, you should:

  1. Identify users' needs for this website. You could do this in a number of ways. For example, you could observe people using ticket agents, think about your own experience of purchasing tickets, look at existing websites for booking tickets, interview friends and family about their experiences, and so on. Record your data carefully.
  2. Based on your user requirements, choose two different user profiles and produce one persona and one main scenario for each, capturing how the user is expected to interact with the system.
  3. Perform a task analysis on the main task associated with the ticket booking system, i.e. booking a ticket.
  4. Based on this analysis, produce a use case for the main task of booking a ticket.
  5. Using the data gathered in part (a) and your subsequent analysis, identify different kinds of requirements for the website, according to the headings introduced in Section 10.3 above. Write up the requirements in the style of the Volere shell.

Summary

In this chapter, we have looked in more detail at the importance of the requirements activity, and how to identify users' needs and establish requirements for interaction design. The data gathering techniques introduced in Chapter 7 can be used in various combinations to gather requirements data. In addition, contextual inquiry, studying documentation, and researching similar products are commonly used techniques. Scenarios, use cases, and essential use cases are helpful techniques for beginning to document the findings from the data gathering sessions. Task analysis is a little more structured, but does not scale well.

Key Points

  • Getting the requirements right is crucial to the success of the interactive product.
  • There are different kinds of requirements: functional, data, environmental (context of use), user characteristics, usability goals and user experience goals. Every product will have requirements under each of these headings.
  • The most commonly used data gathering techniques for this activity are: questionnaires, interviews, focus groups, direct observation, indirect observation, studying documentation, researching similar products and contextual inquiry.
  • Descriptions of user tasks such as scenarios, use cases, and essential use cases help users to articulate existing work practices. They also help to express envisioned use for new products.
  • Task analysis techniques help to investigate existing systems and current practices.

Further Reading

ROBERTSON, S. and ROBERTSON, J. (2006) Mastering the Requirements Process, 2nd edn. Addison-Wesley. In this book, Robertson and Robertson explain a useful framework for software requirements work (see also the interview with Suzanne Robertson at the end of this chapter).

CONSTANTINE, L.L. and LOCKWOOD, L.A.D. (1999) Software for Use. Addison-Wesley. This very readable book provides a concrete approach for modeling and analyzing software systems. The approach has a user-centered focus and contains some useful detail. It also includes more information about essential use cases.

JACOBSON, I., BOOCH, G. and RUMBAUGH, J. (1992) The Unified Software Development Process. Addison-Wesley. This is not an easy book to read, but it is the definitive guide for developing object-oriented systems using use cases and the modeling language Unified Modeling Language (UML).

GOTTESDIENER, E. (2002) Requirements by Collaboration: workshops for defining needs. Addison-Wesley. This refreshing book provides some good, solid advice for planning and running requirements workshops.

DIAPER, D. and STANTON, N. (2004) The Handbook of Task Analysis for Human-Computer Interaction. Lawrence Erlbaum Associates. This collection of articles covers the wide diversity of task analysis, including the foundations of task analysis, cognitive approaches, formal notations, and industry experiences. This is not a book to read cover to cover, but is more of a reference book.

LAZAR, J. (ed.) (2007) Universal Usability: Designing Information Systems for Diverse User Populations. John Wiley & Sons. This book provides an interesting selection of case studies that demonstrate how developers can design for diverse populations to ensure universal usability.

SOMMERVILLE, I. (2006) Software Engineering, 8th edn. Addison-Wesley. If you are interested in pursuing notations for functional and data requirements, then this book introduces a variety of notations and techniques used in software engineering.

INTERVIEW: with Suzanne Robertson

images

Suzanne Robertson is a principal of The Atlantic Systems Guild, an international think tank producing numerous books and seminars whose aim is to make good ideas to do with systems engineering more accessible. Suzanne is particularly well known for her work in systems analysis and requirements related activities including the development of the Volere requirements techniques.

HS: What are requirements?

SR: Well the problem is that ‘requirements’ has turned into an elastic term. Requirements is an enormously wide field and there are so many different types of requirements. One person may be talking about budget, somebody else may be talking about interfacing to an existing piece of software, somebody else may be talking about a performance requirement, somebody else may be talking about the calculation of an algorithm, somebody else may be talking about a data definition, and I could go on for hours as to what requirement means. What we advise people to do to start with is to look for something we call ‘linguistic integrity’ within their own project. When all people who are connected with the project are talking about requirements, what do they mean? This gets very emotional, and that's why we came up with our framework. We gathered together all this experience of different types of requirements, tried to pick the most common organization, and then wrote them down in a framework.

HS: Please would you explain your framework? (The version discussed in this interview is shown in the figure on page 526. The most recent version may be downloaded from www.systems-guild.com)

SR: Imagine a huge filing cabinet with 27 drawers, and in each drawer you've got a category of knowledge that is related to requirements. In the very first drawer for example you've got the goals, i.e. the reason for doing the project. In the second drawer you've got the stakeholders. These are roles because they could be played by more than one person, and one person may play more than one role. You've got the client who's going to pay for the development, and the customer who's making the decision about buying it. Then you've got stakeholders like the project leader, the developers, the requirements engineers, the designers, the quality people, and the testers. Then you've got the less obvious stakeholders like surrounding organizations, professional bodies, and other people in the organization whose work might be affected by the project you're doing, even if they're never going to use the product.

HS: So do you find the stakeholders by just asking questions?

SR: Yes, partly that and partly by using the domain model of the subject matter, which is in drawer 9, as the driver to ask more questions about the stakeholders. For example, for each one of the subject matter areas, ask who have we got to represent this subject matter? For each one of the people that we come across, ask what subject matter are we expecting from them?

Drawer 3 contains the end users. I've put them in a separate drawer because an error that a lot of people make when they're looking for requirements is that the only stakeholder they talk about is the end user. They decide on the end user too quickly and they miss opportunities. So you end up building a product that is possibly less competitive or relevant. I keep them a bit fuzzy to start with, and as you start to fix on them then you can go into really deep analysis about them: What is their psychology? What are their characteristics? What's their subject-matter knowledge? How do they feel about their work? How do they feel about technology? All of these things help you to come up with the most competitive non-functional requirements for the product.

HS: How do you resolve conflict between stakeholders?

SR: Well, part of it is to get the conflicts out in the open up front, so people stop blaming each other, but that certainly doesn't resolve it. One of the ways is to make things very visible all the way through and to keep reminding people that conflict is respectable, that it's a sign of creativity, of people having ideas. The other thing that we do is that in our individual requirements (that is atomic requirements), which end up living in drawers 9 to 17 of this filing cabinet, we've got a place to say “Conflict: Which other requirement is this in conflict with?” and we encourage people to identify them. Sometimes these conflicts resolve themselves because they're on people's back burners, and some of the conflicts are resolved by people just talking to one another. We have a continuing process of cross-checking requirements and looking for conflicts and if we find some that are just not sorting themselves out, then we stop and have a serious negotiation.

In essence, it's bubbling the conflicts up to the surface. Keep on talking about them and keep them visible. De-personalize it as much as you can. That helps.

HS: What other things are associated with these atomic requirements?

SR: Each one has a unique number and a description that is as close as you can get to what you think the thing means. It also has a rationale that helps you to figure out what it really is. Then the next component is the fit criterion, which is, “If somebody came up with a solution to this requirement, how would you know whether or not it satisfies the requirement?” So this means making the requirement quantifiable, measurable. And it's very powerful because it makes you think about the requirement. One requirement quite often turns into several when you really try and quantify it. It also provides a wonderful opportunity for involving testers, because at that point if you write the fit criterion you can get a tester and ask whether this can be used as input to writing a cost-effective test. Now this is different from the way we usually use the testers, which is to build tests that test our solutions. Here I want to get them in much earlier, I want them to test whether this requirement really is a requirement.

HS: So what's in drawers 18 through 27?

SR: Well here you can get into serious quarrels. The overall category is ‘project issues,’ and people often say they're not really requirements, and they aren't. But if the project is not being managed according to the real work that's being done, in other words the contents of the drawers, then the project goes off the rails. In project issues we create links so that a project manager can manage the project according to what's happening to the requirements.

In the last drawer we have design ideas. People say when you're gathering requirements you should not be concerned with how you're going to solve the problem. But mostly people tell you requirements in the form of a solution anyway. The key thing is to learn how to separate the real requirements from solution ideas, and when you get a solution idea, pop it in this drawer. This helps requirements engineers, I think, because we are trained to think of solutions, not to dig behind and find the real problem.

HS: How do you go about identifying requirements?

SR: For too long we've been saying the stakeholders should give us their requirements: we'll ask them and they'll give them to us. We've realized that this is not practical—partly because there are many requirements people don't know they've got. Some requirements are conscious and they're usually because things have gone wrong or they'd like something extra. Some requirements are unconscious because maybe people are used to it, or maybe they haven't a clue because they don't see the overall picture. And then there are undreamed-of requirements that people just don't dream they could ever have, because we've all got boundaries based on what we think technology is capable of doing or what we know about technology or what our experience is. So it's not just asking people for things, it's also inventing requirements. I think that's where prototyping comes in and scenario modeling and storyboarding and all of those sorts of techniques to help people to imagine what they could have.

If you're building a product for the market and you want to be more competitive you should be inventing requirements. Instead of constricting yourself within the product boundary, say, “Can I push myself out a bit further? Is there something else I could do that isn't being done?”

HS: So what kinds of techniques can people use to push out further?

SR: One of the things is to learn how to imagine what it's like to be somebody else, and this is why going into other fields, for example family therapy, is helpful. They've learned an awful lot about how to imagine you might be somebody else. And that's not something that software engineers are taught in college normally and this is why it's very healthy for us to be bringing together the ideas of psychology and sociology and so on with software and systems engineering. Bringing in these human aspects—the performance, the usability features, the ‘look and feel’ features—that's going to make our products more competitive.

I always tell people to read a lot of novels. If you're having trouble relating to some stakeholders, for example, go and read some Jane Austen and then try to imagine what it would have been like to have been the heroine in Pride and Prejudice. What would it have been like to have to change your clothes three times a day? I find this helps me a lot, it frees your mind and then you can say, “OK, what's it really like to be that other person?” There's a lot to learn in that area.

HS: So what you're saying really is that it's not easy.

SR: It's not easy. I don't think there's any particular technique. But what we have done is we have come up with a lot of different ‘trawling’ techniques, along with recommendations, that can help you.

HS: Do you have any other tips for gathering requirements?

SR: It's important for people to feel that they've been heard. The waiting room (drawer number 26) was invented because of a very enthusiastic high-level stakeholder in a project we were doing. She was very enthusiastic and keen and very involved. Wonderful! She really gave us tremendous ideas and support. The problem was she kept having ideas, and we didn't know what to do. We didn't want to stop her having ideas, on the other hand we couldn't always include them because then we would never get anything built. So we invented the waiting room. All the good ideas we have we put in there and every so often we go into the waiting room and review the ideas. Some of them get added to the product, some are discarded, and some are left waiting. The psychology of it is very good because the idea's in the waiting room, everyone knows it's in there, but it's not being ignored. When people feel heard, they feel better and consequently they're more likely to cooperate and give you time.

The Template

PROJECT DRIVERS

  1. 1. The Purpose of the Product
  2. 2. Client, Customer and other Stakeholders
  3. 3. Users of the Product

PROJECT CONSTRAINTS

  1. 4. Mandated Constraints
  2. 5. Naming Conventions and Definitions
  3. 6. Relevant Facts and Assumptions

FUNCTIONAL REQUIREMENTS

  1. 7. The Scope of the Work
  2. 8. The Scope of the Product
  3. 9. Functional and Data Requirements

NON-FUNCTIONAL REQUIREMENTS

  1. 10. Look and Feel Requirements
  2. 11. Usability Requirements
  3. 12. Performance Requirements
  4. 13. Operational Requirements
  5. 14. Maintainability and Portability Requirements
  6. 15. Security Requirements
  7. 16. Cultural and Political Requirements
  8. 17. Legal Requirements

PROJECT ISSUES

  1. 18. Open Issues
  2. 19. Off-the-Shelf Solutions
  3. 20. New Problems
  4. 21. Tasks
  5. 22. Cutover
  6. 23. Risks
  7. 24. Costs
  8. 25. User Documentation and Training
  9. 26. Waiting Room
  10. 27. Ideas for Solutions

The Volere Requirements Specification Template © Atlantic Systems Guild.

1 The accepted terminology when discussing disabilities varies between countries. For example, ‘people with disabilities’ is preferred in the US, while ‘disabled people’ is preferred in the UK. In this book we have followed the publisher's policy of using the US terminology.

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

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