Page 72 - Software and Systems Requirements Engineering in Practice
P. 72

44   S o f t w a r e   &   S y s t e m s   R e q u i r e m e n t s   E n g i n e e r i n g :   I n   P r a c t i c e


                      Unfortunately, while the meeting information is available, the names
                      of the customers requesting the features were never recorded. Thus,
                      the information needed for prioritization and release scheduling is
                      missing. So, it is very important to record stakeholder information
                      when collecting product requests.
                      Problems Separating Context from Requirement
                      Eliciting stakeholder requests to create requirements can be a difficult
                      task when stakeholders ramble. Sometimes, stakeholders will confuse
                      background with need. For example,
                         “We need to have cars stop at the intersection when the light
                         changes in order to avoid accidents. Drivers should therefore be
                         able to see the signal from at least 50 feet away in the rain, and
                         then apply their brakes if the light is red. We do not want drivers
                         going through red lights.”
                         In  the  preceding  paragraph  there  is  only  one  real  potential
                      requirement, that the drivers should be able to see the signal from at
                      least 50 feet away. Everything else is either wishful thinking or out of
                      scope  for  requirements  for  a  signaling  system.  It  is  possible  that  a
                      township might insist on a contract clause that states “after installation
                      of the signaling system there will be no more accidents caused by cars
                      running  red  lights.”  However,  it  is  not  physically  possible  for  any
                      commercial traffic signal system to guarantee that there will not be
                      any accidents, since drivers and their cars are not controlled by the
                      system and furthermore, even if they were, no system can have perfect
                      reliability.
                         One way to prevent the intermixing of requests and requirements
                      with  need  is  to  carefully  separate  context  and  background  from
                      stakeholder requests. Requests are something that the system shall do.
                      Context might include information about the way the environment
                      will be impacted by the system after installation. Context might also
                      include background information about the reason the system is being
                      purchased  or  created;  it  might  include  background  information
                      describing  the  environment.  We  recommend  that  background
                      information be kept in separate documents or, at the least, in separate
                      sections of a document, e.g., sections on what the customer would like
                      to accomplish, and the customer’s environment before and after the
                      system being proposed is operational. Under no circumstances should
                      the  “will”  statements  appear  in  a  requirements  specification.
                      Specifications may become part of binding contracts, and it is important
                      to  avoid  having  wishful  thinking  or  expected  external  behavior
                      contractually guaranteed by a supplier.

                      Failure to Collect Enough Information
                      Some stakeholders or domain experts can be difficult to track down
                      and  meet  with.  Problems  of  elicitation  can  be  exacerbated  if  a  key
   67   68   69   70   71   72   73   74   75   76   77