Page 145 -
P. 145

116           PART TWO  MANAGING SOFTWARE PROJECTS


                       of scope are evaluated and in some cases refined to provide more detail prior to the
                       beginning of estimation. Because both cost and schedule estimates are functionally
                       oriented, some degree of decomposition is often useful. Performance considerations
                       encompass processing and response time requirements. Constraints identify limits
                       placed on the software by external hardware, available memory, or other existing
                       systems.

                       5.3.1  Obtaining Information Necessary for Scope
                       Things are always somewhat hazy at the beginning of a software project. A need has
                       been defined and basic goals and objectives have been enunciated, but the information
                       necessary to define scope (a prerequisite for estimation) has not yet been delineated.
                          The most commonly used technique to bridge the communication gap between
                       the customer and developer and to get the communication process started is to
                       conduct a preliminary meeting or interview. The first meeting between the soft-
                       ware engineer (the analyst) and the customer can be likened to the awkwardness
                       of a first date between two adolescents. Neither person knows what to say or ask;
                       both are worried that what they do say will be misinterpreted; both are thinking
                       about where it might lead (both likely have radically different expectations here);
                       both want to get the thing over with; but at the same time, both want it to be a
         ?  How should  success.
            we initiate
                          Yet, communication must be initiated. Gause and Weinberg [GAU89] suggest that
         communication  the analyst start by asking context-free questions; that is, a set of questions that will
         between the
         developer and the  lead to a basic understanding of the problem, the people who want a solution, the
         customer?     nature of the solution desired, and the effectiveness of the first encounter itself.
                          The first set of context-free questions focuses on the customer, the overall goals
                       and benefits. For example, the analyst might ask:
                          • Who is behind the request for this work?
                          • Who will use the solution?
                          • What will be the economic benefit of a successful solution?
                          • Is there another source for the solution?

                          The next set of questions enables the analyst to gain a better understanding of the
                       problem and the customer to voice any perceptions about a solution:
                          • How would you (the customer) characterize "good" output that would be
                            generated by a successful solution?
                          • What problem(s) will this solution address?
                          • Can you show me (or describe) the environment in which the solution will be
                            used?
                          • Will any special performance issues or constraints affect the way the solution
                            is approached?
   140   141   142   143   144   145   146   147   148   149   150