Page 107 -
P. 107

When a software system is developed, the first step is to determine what the system will
                          do. This sounds trivial to some people—the vision and scope document tells us what fea-
                          tures will be developed, so why not start designing the software once everyone agrees that
                          it’s complete? This might seem like a reasonable course of action, but there’s a big differ-
                          ence between deciding the features that will go into the software and defining the behav-
                          ior of each of those features. (If a vision and scope document does not yet exist,
                          developing one will do much more good for the project than jumping directly into the
                          requirements. The requirements engineering activities should wait until after the vision
                          and scope document is ready—see Chapter 2.)
                          The objective of all elicitation activities is to create a complete list of what the users and
                          stakeholders believe are the important needs that must be filled by the software, the
                          behavior that the software must exhibit, and the constraints to which the software must
                          adhere. A variety of elicitation practices can be used to gain a complete understanding of
                          user needs. Each practice should be considered carefully, to determine which is best suited
                          for a particular project; in addition, several techniques can be used in combination. The
                          goal of using any of the techniques is to gain the commitment of the users so a common
                          view of the system is established.
                          Conduct Interviews
                          It’s been said that users don’t have requirements; they have information. The require-
                          ments analyst must figure out how to get that information out of each user, stakeholder,
                          expert, and anyone else who has information that may impact the project. The most
                          straightforward and effective practice for doing this is by conducting interviews.

                          Interviews with users and stakeholders are the requirements analyst’s most important
                          elicitation tool. The goal of the interview is to identify specific needs that the person being
                          interviewed has for the software. This generally requires understanding what the inter-
                          viewee does on a day-to-day basis that will require her to interact with the software.

                          The first step in conducting interviews is to identify who the interviewees should be. Start
                          with the list of users and stakeholders listed in the vision and scope document. While they
                          are being interviewed, additional people may be mentioned. The interviewer should

                          determine whether any of those people should be interviewed as well. If the software is
                          being built for a specific industry or area of expertise, the requirements analyst may need
                          to seek out subject matter experts in that area in order to ensure that the software meets
                          the needs of a typical professional familiar with the subject.
                          When the software is intended to be marketed or sold by the organization, many of the
                          market needs will originate in a sales or marketing department. In this case, it is important
                          that sales and marketing personnel are considered subject matter experts and are inter-
                          viewed for requirements. If the goal of the project is to enhance or maintain software that
                          is already out in the field, then the interviewees should include actual external users.
                          The most important rule of the interview is to get the interviewee talking. Software gener-
                          ally doesn’t get developed for its own good; a project is usually started because somebody


                                                                                   SOFTWARE REQUIREMENTS  99
   102   103   104   105   106   107   108   109   110   111   112