Act I: Girding Our Loins

Wherein we develop a strategy and assemble the cast.

The initial goal of the project team is to develop a requirements specification that is sufficiently accurate and complete to allow the software development to begin. The decision to build the system in-house or to outsource part or all of the development is deferred to a later date. Our requirements analysis team consists of three people:

  • Janet is an experienced developer and analyst who is taking on her first significant project management role. She will plan the project activities, track our progress, and serve as one of the requirements analysts. Although fairly young, Janet is mature, doesn't get rattled easily, and has a calm demeanor.

  • Devon is a more junior developer. Bright and energetic, he's looking forward to building some analyst skills. If the CTS software is implemented in-house, Devon will be one of the developers.

  • I'm Karl. I've worked at Contoso for 15 years as a research scientist, software developer, software manager, and quality engineer. Having pursued ways to improve requirements engineering for some time, I frequently serve as an internal consultant. I will work half-time in an analyst role on the CTS project.

Janet meets with Paul and explains that our team of analysts is going to do our best to meet his needs. But first, of course, we need to understand his requirements for the CTS. Paul's frustration is evident. "I gave your predecessors on the two previous teams my requirements," he says. "I don't have time to talk about requirements anymore. Build me a system!" This becomes our mantra for the project: "Build me a system!"

Facing a hostile, disillusioned, and somewhat intimidating lead customer, our challenge is clear. We need to overcome the distasteful legacy left by the preceding groups and somehow engage Paul and other customers in an effective and collaborative requirements development process. It looks like an uphill struggle.

It's not unusual for the requirements development process to be strained and maybe even adversarial. The participants sometimes forget that they are (or at least ought to be) on the same side, working toward the common goal of successfully delivering a useful product. Our first step is to begin forging a collaborative partnership with Paul. He needs to have confidence that this time will be different, that we really will move him toward his goal of meeting the regulatory requirements. And we IT people must concoct a plan for delivering on that expectation.

Expectation Management

Too often, teams begin working on a project without having discussed just how they will collaborate. The team members make assumptions about the activities involved and how the participants will interact with each other. People have different communication styles, various understandings of the problem, diverse perceptions about just what "requirements" are, and so on. Many groups don't explicitly agree upon how they will make the myriad decisions that arise in the course of every project. Neglecting these issues can lead to mismatched expectations, ineffective collaboration, and hard feelings. It's well worth taking some time at the outset to discuss how the team will operate.

Janet begins by promising Paul that this analyst team will use more effective approaches to understanding his requirements for this application. Furthermore, we'll document what we learn in a way that serves as a suitable foundation for the development work that will follow. Janet also sets expectations for what we need from Paul if this collaborative effort is to succeed. Notwithstanding his previous frustrating experiences, the fact is that we have to start over with the process of exploring requirements. So, we're going to need time from Paul and perhaps his colleagues so that we can understand just what kind of a system would meet his needs. Paul reluctantly agrees to play along.

Classy Users

Paul is not the only stakeholder for the system, and the members of the Health and Safety Department won't be its sole users. We apply the concept of user classes to identify other groups of users who will have largely different sets of needs. Members of different user classes might need different functions or features, have various educational or skill levels, work in different locations, or have other distinguishing characteristics.

Based on input from Paul and the analyst team's understanding of Contoso's research environment, we identify the following four major user classes:

Health and Safety Department staff

Led by Paul, these people are responsible for generating the necessary government reports that describe how Contoso Pharmaceuticals handles its chemicals.

Chemists

Contoso employs hundreds of chemists in the research labs, product development areas, and manufacturing. These chemists acquire new chemicals, store them in their labs, use them in experiments, and dispose of leftover chemicals that are no longer fit for use.

Chemical stockroom staff

Although few in number, the people who work in this stockroom are central to the chemical tracking process. They place requests for chemicals to be purchased from vendors, stock and dispense thousands of chemical containers, manage supplies of new chemicals invented by the research scientists themselves, and dispose of outdated chemicals.

Purchasing Department staff

Like the Health and Safety Department staff, these people will never touch a chemical. They serve as the interface between Contoso employees who need to buy chemicals and the vendors who supply the chemicals.

These user classes have certain needs in common. For example, both chemists and the chemical stockroom staff will place requests for new chemicals periodically and dispose of chemicals. However, each user class also has a distinct set of requirements for services they expect from the CTS.

Our next analysis challenge is to find the right individuals with whom to explore these needs. We must then consolidate those needs into a cohesive software requirements specification. This requirements exploration will include resolving requirement conflicts and setting priorities to reach the best balance of timely and cost-effective delivery of a useful—and usable—system.

Who Ya Gonna Call?

In 1986, my small development group at Contoso realized we had to learn how to interact more closely with our users so that we could properly meet their software needs. We conceived the project role of product champion, a key user representative who works closely with the requirements analyst. The product champion serves as the literal voice of the customer for a particular user class. Product champions typically are experienced users and subject matter experts in their domain.

Our next step on the CTS project, therefore, is to identify champions for the four user classes. My previous group had created a list of possible product champion activities that the CTS analysts can present to each candidate champion so that they understand what they're getting into. Negotiating the exact responsibilities that each champion is willing to accept is an important part of crafting that vital collaborative customer-development partnership.

As the key manager on the spot and a hands-on user of the future system, Paul is the obvious product champion for the Health and Safety Department. Our project manager and lead analyst, Janet, will work with Paul to define his requirements. A member of the Purchasing Department named Jonathan is willing to present requirements for the CTS from his community's perspective. Our second analyst, Devon, agrees to work with Jonathan on Purchasing's requirements. Dana manages the chemical stockroom. She's the natural product champion for that user class, although she'll obtain additional input from the members of her staff who perform the day-to-day operations. Janet will do double-duty to lead requirements elicitation with Dana.

Finding a product champion for the chemist group is more challenging. Dana tries to help. "Before I became the chemical stockroom manager, I was a laboratory chemist," she tells us. "Therefore, you don't need to talk to any other chemists about their requirements. I can tell you everything you need to know."

Although Dana is sincere and means well, she is wrong. And it's really hard to convince her that she's wrong. The first problem is that she's no longer a member of the chemist user class. She is literally the best person in the world to describe the needs of the chemical stockroom staff. She isn't, however, a practicing chemist anymore. I learned long ago that it is best to have actual members of the user class participate in requirements development, rather than using surrogates or former members of that user class. In some cases, particularly on commercial product development projects, you don't have direct access to appropriate user representatives, so you must use surrogates, such as product managers or marketing staff. That isn't a problem for this internal corporate project, where we can arrange to work with actual users.

The second concern we have with Dana's offer is that she has a narrow and parochial view of the chemists' requirements. She is also very adamant about her opinions on such matters, and she is prone to crying when discussions get a bit tense or her opinions are not immediately accepted. (Dana isn't all that much fun to work with.) Relying on Dana's strong opinions alone would not provide the rich understanding of chemist needs that we need to get. So, we politely decline Dana's offer and go searching for a suitable chemist representative.

We find one! A highly experienced and respected chemist named Sarah offers to serve as the product champion. Although she isn't terribly sophisticated when it comes to computers, Sarah recognizes the value that the Chemical Tracking System will provide to her and her colleagues. It's common that the people best suited as representatives for their user class are already overextended in their own work and are reluctant to commit much time to requirements-related activities. We really luck out with Sarah, though. She promises to create time in her busy schedule for requirements elicitation discussions and review sessions. Since my own educational background is in chemistry, I will be the analyst working with Sarah to understand the requirements that chemists have for CTS.

We realize it's just not realistic to expect even an experienced chemist like Sarah to know the full spectrum of requirements for all the chemists at Contoso. She needs some help. We establish a backup team of five additional chemists drawn from various departments across the company. They will have many requirements in common, but these representatives know about specific needs that pertain to the kinds of chemical work going on in their own areas.

We don't expect Sarah alone to produce the chemists' requirements, or even Sarah plus the backup team. Each of our product champions is responsible for interacting with other members of his or her user class to collect ideas and get feedback on proposals. The product champion also will resolve requirements conflicts that arise between individual members of the user class, which makes the analysts' lives much easier. So, in this representative engagement model, the primary pipelines through which requirements flow are from each product champion to the corresponding analyst, with extensive interactions behind the scenes between the champion and other users. The analyst will need to work with the various product champions to resolve requirements conflicts that arise between the user classes.

Now we're ready to roll. Table 19-1 shows the complete cast of key participants in the requirements elicitation activities we are about to launch. But exactly how should we proceed?

Table 19-1. Requirements elicitation participants for the Chemical Tracking System project

User class

Requirements analyst

Product champion

Backup team?

Health and Safety Department

Janet

Paul

No

Chemical stockroom staff

Janet

Dana

No

Chemists

Karl

Sarah

Yes (5)

Purchasing Department

Devon

Jonathan

No

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

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