Page 96 -
P. 96

CHAPTER 3  PROJECT MANAGEMENT CONCEPTS                              67

                        3.3   THE PRODUCT

                              A software project manager is confronted with a dilemma at the very beginning of a
                              software engineering project.  Quantitative estimates and an organized plan are
                              required, but solid information is unavailable.  A detailed analysis of software require-
                              ments would provide necessary information for estimates, but analysis often takes
                              weeks or months to complete. Worse, requirements may be fluid, changing regularly
                              as the project proceeds. Yet, a plan is needed "now!"
                                Therefore, we must examine the product and the problem it is intended to solve
                              at the very beginning of the project. At a minimum, the scope of the product must be
                              established and bounded.

                              3.3.1  Software Scope
                              The first software project management activity is the determination of software scope.
                              Scope is defined by answering the following questions:
                                   Context. How does the software to be built fit into a larger system, product, or
                                   business context and what constraints are imposed as a result of the context?
                If you can’t bound a
                characteristic of the  Information objectives. What customer-visible data objects (Chapter 11) are
                software you intend to  produced as output from the software? What data objects are required for input?
                build, list the    Function and performance. What function does the software perform to
                characteristic as a  transform input data into output? Are any special performance characteristics
                major project risk.
                                   to be addressed?
                              Software project scope must be unambiguous and understandable at the manage-
                              ment and technical levels.  A statement of software scope must be bounded.  That
                              is, quantitative data (e.g., number of simultaneous users, size of mailing list, maxi-
                              mum allowable response time) are stated explicitly; constraints and/or limitations
                              (e.g., product cost restricts memory size) are noted, and mitigating factors (e.g., desired
                              algorithms are well understood and available in C++) are described.

                              3.3.2  Problem Decomposition
                              Problem decomposition, sometimes called partitioning or problem elaboration, is an
                              activity that sits at the core of software requirements analysis (Chapter 11). During
                              the scoping activity no attempt is made to fully decompose the problem. Rather,
                In order to develop a  decomposition is applied in two major areas: (1) the functionality that must be deliv-
                reasonable project  ered and (2) the process that will be used to deliver it.
                plan, you have to  Human beings tend to apply a divide and conquer strategy when they are con-
                functionally  fronted with a complex problems. Stated simply, a complex problem is partitioned
                decompose the
                problem to be solved.  into smaller problems that are more manageable. This is the strategy that applies as
                              project planning begins. Software functions, described in the statement of scope, are
                              evaluated and refined to provide more detail prior to the beginning of estimation
   91   92   93   94   95   96   97   98   99   100   101