Software Project Planning

Introduction
  • Software project management begins with a set of activities that are collectively called project planning


  • The manager and the software team must estimate the work that is to be done, the resources required and the time that will be taken to complete the project


  • Estimates should always be made with the future needs in mind and also taking into account the various degree of uncertainty


  • Process and project metrics provides the historical perspective and a powerful input for the generation of quantitative estimates


  • As estimation lays a foundation for all other project planning activities, project planning paves the way for successful software engineering.



  • Project Planning Objectives
    • The objective of software project planning is to provide a framework that enables the project manager to make some reasonable estimates of resources, cost and schedule
    • These estimates are made at the beginning of a software project and should be updated regularly as the project progresses towards completion
    • The planning objective is achieved through a process of information discovery that leads to the formulation of reasonable estimates 
    Software Scope
  • First activity in the planning of the software project is the determination of the scope of the software


  • Scope of the software describes the data and control to be processed, function, performance, constraints, interfaces and reliability


  • Obtaining information necessary for scope


  • Feasibility



  • Resources
  • The second task involved in software planning is the estimation of the resources required to accommodate the software development effort


  • Project Development Resources


  • Each resource is specified with 4 characteristics :


    1. Description of the resource.
    2. Statement of availability.
    3. Time when the resource will be required.
    4. Duration of time that resource will be applied
    Software Project Estimation

  • Software is the most expensive element of virtually all computer-based systems


  • Cost over run can be disastrous for the software developer


  • To achieve a reliable cost and effort estimates, a number of options arise :


    1. Delay estimation until late in the project.
    2. Base estimates on similar projects that have already been completed.
    3. Use relatively simple decomposition techniques to generate project cost and effort estimates.
    4. Use one or more empirical models for software cost and effort estimation.
    5. The first option, however attractive, is not practical
  • The second option can work reasonably well, if the current project is quite similar to the past efforts and other project influences are equivalent


  • Decomposing techniques take a divide and conquer approach to software project estimation


  • Empirical estimation models can be used to complement decomposition techniques and offer a potentially valuable estimation approach in their own right



  • Decomposition Techniques
    • Software project estimation is a form of problem solving
    • in most cases, the problem to be solved is too complex to be considered in one piece
    • The decomposition approach can be seen from two different points of view
      • Decomposition of the problem.
      • Decomposition of the process.  
    Software Sizing

  • Since the estimate of the project is only as good as the estimate of the size of the work to be accomplished, sizing represents the software project planner's first major challenge


  • If a direct approach is taken, size can be measured in LOC (lines of code).


  • If an indirect approach is chosen, size is represented as FP (function points).


  • Putnam and Myers's four different approaches to the sizing problem  



  • Problem based Estimation

  • The project planner begins with a bounded statement of software scope


  • From this statement it attempts to decompose the software into various problem functions that can each be estimated individually


  • LOC or FP (the estimation variable) is then estimated for each function


  • When LOC is used as the estimation variable, decomposition is absolutely essential and is often taken to considerable levels of detail


  • For FP estimates, rather than focusing on function, each of the information domain characteristics as well as the 14 complexity adjustment values (discussed in the previous chapter) are estimated


  • The resultant estimates can then be used to derive a FP value that can be tied to past data and used to generate an estimate 



  • Process-based Estimation
  • The most common technique for estimating a project is to base the estimate on the process that will be used


  • The process is decomposed into a relatively small set of tasks and the effort required to accomplish each task is estimated


  • It begins with a delineation of the software functions obtained from the project scope


  • A series of software activities must be performed for each function.


  • Once the problem functions and process activities are melded, the project planner estimates the effort (e.g., person-months) that will be required to accomplish each software for each software function


  • Cost and effort for each function and software process activity are computed as the last step


  • This estimation is performed independently of LOC or FP estimation



  •  Empirical Estimation Models

    The COCOMO Model

    Software Equation

    Make / Buy Decision

    Outsourcing

    Automated Estimation Tools