Planning a Software Project
Planning is perhaps the most important activity of management.
- The basic goal of planning is to find the activity which is to be performed for completing a project.
- Moreover, a good plan is that which can handle all the uncertain event which can occur during the development of project.
- We also can say that, A good planning helps in good decision making.
- Hence, Lack of planning is a primary cause of schedule slippage, cost overruns, poor quality, and high maintenance costs for software.
Some factors to consider in project planning:
- Accuracy required so Cost & Schedule estimation techniques to be used.
- Life-cycle model, control functions, and reviews.
- Level of formality in specifications, test plans, etc.
- Therefore need of organisational structure ( team structure)
- However, Level of verification and validation (independent group?) taken care of.
- So, Planning for management of risk.
- Also, Level of configuration management required.
- Project monitoring & controlling techniques and
- Level of quality assurance required.
- Personnel recruitment and training.
Software Cost Estimation
Estimation of resources, cost and schedule for a software development effort requires experience.
So, Access to good historical information and the courage to commit to quantitative measures when qualitative data are all that exist.
The importance of software cost estimation is well documented.
Whereas good estimation techniques serve as a basis for communication between software personnel and non-software personnel such as managers, sales people or even customers
Therefore cost estimation is part of the planning stage of any engineering activity.
The difference in cost estimation between software engineering and other disciplines is that in software engineering the primary cost is for people.
However In other engineering disciplines, the cost of materials (chips, bricks, or aluminum, depending on the activity) is a major component of the cost that must be estimated.
Therefore In software engineering, to estimate the cost, we only have to estimate how many engineers are needed.
Uses of Cost Estimation
Software cost estimation has two uses in software project management.
First of all during the planning stage, one needs to decide how many engineers are needed for the project and to develop a schedule.
And, In monitoring the project’s progress, one needs to assess whether the project is progressing according to schedule and take corrective action, if necessary.
Basili (1980) described four classes of resources models:
- Static single-variable models
- Static multi-variable models
- Dynamic multi-variable models and
- Theoretical models
The static single-variable model takes the form:
Resources = c1* (Estimated Characteristics)C2
where the resources could be effort, project duration, staff size or requisite lines of software documentation. The constants c1 and c2 are derived from data collected from past projects. The basic version of the Constructive Cost Model or COCOMO is an example of a static single-variable model.