Project Planning


Overview

To frame our discussion, consider:

What is the role of planning in facilitating the development of software?

How do plans assist in the management of project resources?

How do we arrive at effort and cost estimates for software products?


OUTLINE


Planning

The objective of software project planning is to provide a framework that enables the project manager to estimate the resources, cost, and schedule. Project planning is an iterative process with periodic stepwise refinements.

The project manager is largely responsible for all project planning. The designers and developers of the project following the recommendations of each activity should produce artifacts and feedback which provides the project manager with a measure of project progress. The project manager reviews these measures and decides what if any corrective actions are necessary to keep the project on schedule. These actions may involve reallocating resources, adjusting schedule, relaxing requirements, increasing training, etc.

A new project is initiated by a statement of work (SOW), what we are calling the problem definition. The SOW describes the software product that the customer wants you to produce. The project manager should initiate a System Design activity to produce an architecture for the system. This may require that the project manager first select an appropriate method for performing a first pass at Requirements Elicitation and Requirements Analysis, and perform those activities before enough information is available to the designers to create an architecture.

Long-term plan

The long-term project plan describes the resources to be used for the entire length of the project. It should detail what is to be done and by whom.

Short-term plan

A tentative short-term plan helps the project team coordinate the activities of the project, so they can work at an effective rate. The schedule will reflect:

The tentative short-term project plan should follow a set of activities that needs to be performed in order to proceed with the successive activities for the next week.

Risk

The short-term plan certainly encompasses plenty of risks. The best way to handle risks are to:

Resources

HumanSelect the individuals with the necessary skills to accomplish the activity.
HardwareSpecify the development system, the target system, and other hardware elements.
SoftwareProject management Tools
Support Tools
Analysis and Design Tools
Programming Tools
Testing Tools
Prototyping Tools

Managing

Time The time needed to build system is related to the size of the system, which in turn is related to the number of functions desired, and the number of individuals involved and their productivity.

40-20-40
60-15-25
InformationProject documentation
Agreed upon changes
OrganizationIdentified roles of individuals and the expectations of those roles.
QualityThe characteristics of the product that in a real sense govern its value to the customer.
MoneySoftware is labor intensive. Controlling and managing money is typically a matter of controlling labor costs.

Project Estimation

The Problem:

Given the information in the system definition, determine the cost of the software product and the development effort.

Solution:


1. Use a simple decomposition technique to generate project cost and effort estimates. Divide the project into major functions and tasks, then produce the cost or effort estimate for each of these.

2. Develop an empirical model for software cost and effort. Construct a model based on historical data from prior projects. Establish the values of the given set of parameters for the current project, and the model produces the estimates requested.


Cost/Effort

Units of measure?

Cost - $

Effort - person-month

Relationship

C = f(E)

Cost = cost/person-month * estimated person-months

What is effort related to?

Coverage

Requirements through delivery?

Design through delivery?

Requirements through maintenance?

Algorithmic Models


Effort Equation
where a, b, and c are constants and the function f is a correction dependent on the values of the vector x (sometimes referred to as cost drivers).

a, b, and c are derived through the use of regression analysis on data from previous projects.

Cocomo

Cocomo Effort Equation
where b and c are constants that are a function of the project type.

Project Types
Organicb=2.4, c=1.05
A relatively small team develops software in a known environment. Those involved generally have significant experience with projects of this type. These tend to be small projects.
Embeddedb=3.0, c=1.12
These projects involve the development where the intended environment poses significant constraints. The product is "embedded" in an environment which is inflexible.
Semidetachedb=3.6, c=1.20
This is an intermediate. The team may show a mixture of experience and inexperienced people. The project may be larger than that in the organic type.

Cost Drivers
Cost DriversRating
very
low
lownominalhighvery
high
extra
high
Product Attributes
Reliability.75.881.001.151.40
Data base .941.001.081.16
Product Complexity.70.851.001.151.301.65
Computer Attributes
Execution Time1.001.111.301.66
Main Storage1.001.061.211.56
Virtual Machine Volatility.871.00 1.151.30
Computer Turnaround Time.871.001.071.15
Personnel Attributes
Analyst Capabilities1.461.191.00.86.71
Applications Experience1.291.131.00.91.82
Programmer Capability1.421.171.00.86.70
Virtual Machine Experience1.211.101.00.90
Prog. Lang. Experience1.141.071.00.95
Project Attributes
Use of modern prog. Tech.1.241.101.00.91.82
Use of Software Tools1.241.101.00.91.83
Development Schedule1.231.081.001.041.10

Go To Lecture [Outline] [Overview]

Go To [Course Outline]


References

Boehm, B. (1981) Software Engineering Economics. Englewood Cliffs, NJ: Prentice-Hall.

van Vliet, H. (1993) Software Engineering: Principles and Practice. New York: John Wiley.