1
MANAGING SOFTWARE
PROJECT
(CHAPTER OUTLINE
‘After studying this chapter, the reader will be able to understand the
Introduction
Software Project Manager
Management Activities
Project Planning
Mile Stones and Deliverable
Project Scheduling
Risk Management
Cost Estimation Techniques
Seamed wth Camscannercy sorrenns ENGINEERING
8
group of tasks that need to complete to reach a clear result.
difficult and can be operated by one person or in a Broup. Proje
roved by @ project manager or team executive. They go beyond t
objects and it's up to the team to handle logistics and complete the Proj
ject development, some teams split the project into specific tasks
resi) and utilize team strengths.
aproject 8.9 Projects can vary from
cts usually described
heir expectations and
ject on time. For good
and apP
so they can manage
a software Project is the complete procedure of software development from requirement
gathering to testing and maintenance, carried out according to the execution methodologies, in
a specified period of time to achieve intended software product. ”
software project management is an essential part of software engineering, Good management
cannot guarantee project success however bad management usually results in. Project failure ie.
software delivered late, cost more than originally estimated and fails to meet its requirement.
Software Project Management (SPM) is a proper way of planning and leading software projects.
Itis a part of project management in which software projects are planned, implemented,
monitored and controlled.
SOFTWARE PROJECT MANAGER
=
A software project manager is a person who undertakes the responsibility of planning,
executing and controlling the software project. A project manager closely monitors the
development process, prepares and executes various plans, arranges necessary and adequate
Sources, maintains communication among all team members in order to address issues of
‘st budget, resources, time, quality and customer satisfaction.
Project managers are responsible for planning and scheduling project development. The
"anagetial person who supervise the development work to ensure that, it is carried out to the
Liited standards and monitor progress to check that the development is on time and within
“get. The manager's job is to ensure that software project meets these constraints and
ive the sofware that contributes to the goal of organization. Software project management
“differing from other type of project management due to following reasons:
The product is intangible
and it can be realized only, it cannot |
The soft is intangible in nature
itware product is intangible anager 89 measure PFOSTESS and
be seen or touched. So, it is difficult for project
Should rely on documentation produced by others.
Seamed wth CamscannerManaging Sofware Project © (QHARTERIZG na
* There are no standard software processes
With a long history in engineering discipline, the process is tried and tested. The
engineering process for some types of system, such as building construction is well
understood but in software project there is no universally accepted fixed standard
sprocess change from one organization to another and project to project.
* Large software Projects are often One-off Projects
Software technology is changing very rapidly and it makes the manager's
experience and skill obsolete. Lessons learned from previous project may not be
transferrable to new projects. So, managers having massive volume of experience
may find it difficult to anticipate problems.
Project manager's job varies depending on type of organization and software product being
developed. So it is difficult to write standard job description for a software manager. Some
common activities of project managers are as follows:
1
3.
Proposal writing
Project manager have to write the project proposal to win a contract from the customer.
Proposal writing is a skill that acquire through practice and experience. Proposal should
include the objective of the project and how it will be carried out. It also includes cost and
schedule estimates and justification why the project contract awarded to a particular
organization or team.
Project planning and scheduling
Project planning is concerned with identifying activities, milestones and deliverable
produced by a project. A plan is drawn up to guide the development team towards the
project goals.
Project cost
.stimation activity that is concerned with estimating the effort,
ccomplishing the project development. The parameters
1 cost of a software development project includes:
travel and training costs and Effort
Project cost includes cost
time and resources require ac:
involved in computing the total
hardware and software costs including maintenance,
coats ie, the costs of paying software engineers and others.
Estimation involves answering the following questions.
How much effort is required to complete each activity?
Jendar time is needed to complete each activity?
© How much cal
«Whats the total cost of each activity?
Scanned wth Camscaner180 €Q Sorrware Excmmmerna
4,
Project monitoring and reviews
It is the continuing project activity. In this the managers must keep the track of progress
‘of project and compare actual and planned progress and costs. Managers clear that what
is going on through informal discussion with project staff and review concerned with
overall progress and technical development of system and checking whether the project
and goals of the organization paying for the software are still aligned.
Personnel selecting and evaluation
Project managers usually have to select people to work on their project. Ideally, skilled
staff with appropriate experience will be available to work on their project but in most
cases, managers have to settle for a less than ideal project team members because.
+ The project budget may not cover the use of highly paid staff. Less experienced,
less well paid staff may have to be used.
Staff with appropriate experience may not be available either within an
organization or externally. It may be impossible to recruit new staff to the project.
* The organization may wish to develop a skill of its employees. Inexperienced staff
may be assigned to a project to learn and to gain experiences.
Report writing and presentation
Project managers are usually responsible for reporting on the project to both the client
and contractor organization. They have to write concise, coherent documents that
abstract critical information to detailed project report.
NNING
Software project planning is task, which is performed before the production of software actually
starts. It is there for the software production but involves no concrete activity that has any
direction connection with software production; rather it is a set of multiple processes, which.
facilitates software production. The project plan sets out the resources available to the project
the work breakdown and a sche4dule for carrying out the work. So, effective management of
software project depends on the thoroughly planning the progress of project. A plan drawn up
at the starting of a project should be used as driver for the project. The planning is an iterative.
Process, which is only complete when the project itself is complete. As the project information
becomes available during the project. The plan should be regularly revised. The details of the
project plan vary depending on the type of project organization. However, most plans should
include the following sections:
Scanned wth CamscanerManaging Sofware Project RHARTERIN IE 161
1. Introduction
It describes the objectives of the projects and sets out the constraints like budget, time ete
that affect the project management.
2. Project organizatior.
It describes the way in which develop
their role in the team.
ment team is organized, the people involved and
3. Risk analysis
This describes the possible project ris!
reduction strategies that afe proposed.
, the likelihood of these risks arising and the risk
4, Hardware and software resource requirement
‘This specifies the hardware and software required to carry out the development. If the
hardware has to be bought estimates of prices and delivery schedule may be included.
5. Work breakdown
In this phase the project is breakdown into activities and identifies the milestones and
deliverables associated with each activity.
6. Project schedule
This phase shows the dependencies between activities the estimated time required to
reach each milestone and allocation of people to each activity.
7. Monitoring and reporting mechanism
This defines the management report that should be produced
Types of Plan
© Quality Plan
. Validation Plan
© Configuration management plan
+ Maintenance plan
. Staff development Plan
1. Validation plan
Validation plan describes the approach, resources and schedule used for system
validation. It is intended to show that the program does what the user requires.
2 Configuration and management plan
Ths plan includes the management of system change. When a system is maintained the
ml le of the CM team is to ensure that changes are incorporated in a controlled way. This
plan includes configuration management procedures and structures to be used.
Seamed wth Camscanner«gy sorreane Exonrennvo
18
Maintenance plan
a dicts the maintenance requirements of the syste, i
It prea 'ystem, maintenance cost ay
ind effort |
required:
staff development plan
describes how the skill nd experince ofthe project team member wil be dee "
oped,
Because software is intangible, information can only be provided as Eon
describe the state of software being developed without this information, it is impossible to
access how well the impossible to access how well the project is progressing, cost estimates and
schedule can be not be updated.
Milestones '
Project milestones are the predictable outcome of an activity where some formal report of
progress. Milestones are the recognizable end point of software process activity, They may be
short report of what has been completed and presented to the management. Milestones should
represent the end of a distinct, logical stage in the project.
1. Deliverables
A deliverable is a project report (result) that is delivered to the customer at the end of
tome major project phase. Deliverables are usually milestones but milestones need to be
deliverables. The project deliverable, which are delivered to customer are the |
Tequirement definition and requirement specification.
i ignand | [ _ System
Baimtn | Bata | saree
Fig: Milestone
manage the |
Projet sch
Schvit
employed to
duling is concerned with the techniques that
75%). Risks are tabulated
in order according to the seriousness of the risk,
Risk planning: Risk planning is the process of consideration of the key risks that have
been identified and formulation of strategies to manage the risk. It is not a simple
process; it depends on the judgment and experience of the project manager. the strategies
to manage the risk are as follows:
i. Avoidance Strategies: This strategy tells that the probability that the risk will arise
will be reduced. Example: The strategy for dealing with defective components.
Minimization Strategies: These strategies mean that the impact of the risk will be
reduced.
Example: Staff illness, Reorganize team so that there is more overlap of work and people
therefore understand each other's job.
fii, Contingency Plans: These strategies means that you are prepared for the worst
and have a strategy in place to deal with it.
itoring: Risk monitoring means regularly assessing each of the identified risk to
becoming more or less portable and whether the effect of
Id be a continuous process, and at every management
Risk moni
decide whether or not the risk is
the risk have changed. It shou!
progress review.
Scanned wth Camscaner188 GQ Sorrware Exomerrina
Software projects are notorious for going past their deadline, going over budget, or both. The
problem lies in the estimation of the amount of effort required for the development of a project.
While developing a software project, the project is split in to a number of separate activities. So
cost estimation concerned with estimates of effort and time with the project activities. It is the
Process of predicting the effort required to develop a software system. Many estimation models,
have been proposed over the years. As a number of these models rely on a software size
estimate as input, we first provide an overview of common size metrics. The cost estimation is
usually dependent upon the size estimate of the project, which may use lines of code or
function points as metrics. Cost estimation is usually measured in terms of effort. The most
common metric used is person months or years (or man months or years). The effort is the
amount of time for one person to work for a certain period of time. For any new software
project, it is necessary to know how much it will cost to develop and how much development
time will it take. These estimates are needed before development is initiated. There are several
different techniques for performing software cost estimation, including expert judgment and
algorithmic models. Software cost estimation is the process of predicting the effort required to
develop a software system. Many estimation models have been proposed over the years. As a
number of these models rely on a software size estimate as input, we first provide an overview
of common size metrics. Estimation is done to answer the following questions:
© How much effort is required complete an activity?
* How much calendar time is needed to complete each activity?
© Whatis the total cost of an activity?
Since the cost of development is primarily the cost of the effort. There are three parameters
involves in computing the total cost of a software development.
* Hardware and software cost including maintenance.
«Travel and training cost
+ Effort cost ie. the cost of paying software engineers.
The effort cost is calculated by calculating following:
© The cost of providing heating and lighting office space.
© Cost of support staffs.
© Cost of networking and communications
© Cost of social security and employee benefits.
Scanned wth Camscaner‘Managing Software Project © {CHAPTERSAL 189
Software Pricing Factors
Software pricing must take into account broader organizational, economic, political and
business consideration. The major factors that affect the software pricing areas follows:
«Development organization quotes a low price if want to move info a nev segment
of software market, Accepting low profit in one project may give the opportunity
of more profit later.
«fan organization has no idea about cost estimation then it may increase its price
by some contingency.
«Te the customer is not clear about their requirement then there is chance of
changing requirement at that time organization may Jower its price. After contract
is awarded then high prices may be charged for changes to the requirement.
If the financial health of the organization is not good then they may lower their
price to gain contract and establish themselves in business.
Estimation Techniques
Cost estimation is one of the most challenging tasks in project management, It is 10 accurately
estimate needed resources and required schedules for software development projects. The
software estimation process includes estimating the
size of the software product to be
produced, estimating the effort required, developing preliminary project schedules, and finally,
estimating overall cost of the project
It is very difficult to estimate the cost of software development. Many of the problems that
plague the development effort itself are responsible for the difficulty encountered in estimating,
that effort. Software, however, is intangible, invisible, and intractable. It is inherently more
difficult to understand and estimate a product or process that cannot be seen and touched.
Software grows and changes as itis written. When hardware design has been inadequate, or
when hardware fils to perform as expected, the solution is often attempted through changes t0
the software. This change may occur late in the development process, ancl sometimes results in
unanticipated software growth.
‘The approaches to cost estimation can be tackled using wither top-down or @ bottom up
approach.
Top down Approach
‘Top-down estimating method is also called Macro Model. Using top-down estimating method,
an overall cost estimation for the project is derived from the global properties of the software
project, and then the project is partitioned into various low-level components. This method is
Scanned wth Camscanerorr#aRe EXGINEERING
w samat:
pplicable to early cost estimation when only
a
f the software development, It is very useful
of
This approach starts at system level. The estimato
f the product and how that functionality
more
ase
available.
nationality ©
there are no detailed information
farts by examinin,
r 8 the overall
"* Provided by interacting sub systems
rT ste
fu
Advantages
+ It focuses. on system-level activities such ag
etc, many of which
estimating methods and it will not miss the cost of syste
configuration management, “
- may be ignored in other
jem-level functions
+ Itrequires minimal project detail, and itis usually faster, easier to implement.
Disadvantages
. It often does not identify difficult low-level problems that are likely to escalate
costs and sometime tends to overlook low-level components.
+ Itprovides no detailed basis for justifying decisions or estimates,
Bottom up Approach
Using bottom-up estimating method, the cost of each software components is estimated and
then combines the results to arrive at an estimated cost of overall project. It aims at constructing
the estimate of a system from the knowledge accumulated about the small software
components and their interactions. The leading method using this approach is COCOMO's
detailed model.
Advantages
* _ Itpermits the software group to handle an estimate in an almost traditional fashion
and to handle estimate components for which the group has a feel.
: a . 5 ve a
It is more stable because the estimation errors in the various components ha
chance to balance out,
Disadvantages
. ration, configuration
It may overlook many of the system-level costs (integ: ; tt
: . lopment.
Management, quality assurance, etc.) associated with software develop!
: ‘i t available in the
It may be inaccurate because the necessary information may no!
carly phase.
Ittends to be more time-consuming.
jimited.
tmay not be feasible when either time or personnel are limit
Seamed wth CamscannerManaging Software Project © REAPER vx
1. Algorithm Cost Modeling: The algorithmic method is designed to provide some
mathematical equations to perform software estimation. These mathematical equations
are based on research and historical data and use inputs such as Lines of Code (LOC),
number of functions to perform, and other cost drivers such as language, design
methodology, skill-levels, risk assessments, etc. The algorithmic methods have been
largely studied and there are a lot of models have been developed, such as COCOMO
The main cost estimation techniques are:
Algorithmic cost model can be built by analyzing the cost and attributes of similar
Projects by using an empirical formula
Effort = A x Size® x M, where
A: depends on organizational practice and type of software that is developed
B: 1-15 reflects disproportionate effort for large projects
M: reflects product, process and people attributes
Size: size may be assessment of code size expressed in function or object points.
COCOMO Model
The Constructive Cost Model (COCOMO) is an algorithmic software cost estimation model
developed by Barry Boehm in 1981. This model is an empirical model derived by collecting
data from a large number of software projects, then analyzing that data to discover formulae.
The model uses a basic regression formula, with parameters that are derived from historical
project data and current project characteristics. The first model of COCOMO model known as
COCOMO 81 assumes that the software would be developed using waterfall model and from
scratch level.
‘There have been radical changes in software development practice. Software can be created by
using reusable components and linking them by scripting language. Existing software
reengineering to create new software, CASE tools are used to generate source code
automatically from the design, prototyping and incremental development are heavily in
practice. To take these changes in account COCOMO 2 model is introduced,
In COCOMO, projects are categorized into three types:
i. Organic: A development project can be treated of the organic type, if the project
deals with developing a well-understood application program, the size of the
‘am is reasonably small, and the team members are experienced in
projects. Examples of this type of projects are
le inventory management systems, and data
development te
developing similar methods of
simple business systems, simpl
processing systems.
. — La
Scanned wth Camscaner192 CQ Sorrware Evomrenna
fi, Moderate: A development project can be treated with moderate type if the
development consists of a mixture of experienced and inexperienced staff. Team
members may have finite experience in related systems but may be unfamiliar with
some aspects of the order being developed. Example of moderate (Semidetached)
system includes developing a new operating system (OS), a Database Management
System (DBMS), and complex inventory management system.
iii, Embedded: A development project is treated to be of an embedded type, if the
software being developed is strongly coupled to complex hardware, or if the
stringent regulations on the operational method exist. For Example: ATM, Air
Traffic control.
For the three classes of software products, the formulas for estimating the effort based on the
code size are shown below:
Organic: Effort = 2.4(KLOC) 1.05 PM
Semi-detached: Effort = 3.0(KLOC) 1.12 PM
Embedded: Effort =
.6(KLOC) 1.20 PM
For the three classes of software products, the formulas for estimating the development time
based on the effort are given below:
Organic: Tdev = 2.5(Effort) 0.38 Months
Semi-detached: Tdev = 2.5(Effort) 0.35 Months
Embedded: Tdev = 2.5(Effort) 0.32 Months
Example: Suppose a project was estimated to be 400 KLOC. Calculate the effort and
development time for each of the three model i.e,, organic, semi-detached & embedded.
Solution: The basic COCOMO equation takes the form:
Effort=al*(KLOC) a2 PM
Tdev=b1*(efforts)b2 Months
Estimated Size of project= 400 KLOC
() Organic Mode
E=24"* (400)1.05 = 1295.31 PM
D=25* (1295.31)0.38=38.07 PM
(ii) Semidetached Mode
E=3,0* (400)1.12=2462.79 PM
D=25°* (2462.79)0.35=38.45 PM
Scanned wth CamscanerManaging Software Project Of
(iii) Embedded Mode
=3.6* (400)1.20 = 4772.81 PM
D=25+* (4772.8)032= 38 PM
Example: A project size of 200 KLOC is to be developed. Software development team has
average experience on similar type of projects. The project schedule is not very tight. Calculate
the Effort development time, average staff size, and productivity of the project.
Solution: The semidetached mode is the most appropriate mode, keeping in view the size,
schedule and experience of development time.
Hence E=3.0(200)1.12=1133.12PM
D=2.5(1133.12)0.35=29.3PM_
P=176 LOC/PM
The Basic COCOMO
Itis the one type of static model to estimates software development effort quickly and roughly.
It mainly deals with the number of lines of code and the level of estimation accuracy is less as
we don’t consider the all parameters belongs to the project. The estimated effort and scheduled
time for the project are given by the relation:
Effort (E) = a*(KLOC)b MM .
Scheduled Time (D) = c*(E)d Months(M)
Where,
«B= Total effort required for the project in Man-Months (MM)
© D=Total time required for project development in Months (M).
« KLOC= the size of the code for the project in Kilo lines of code
« — a,b,c,d = The constant parameters for a software project.
PROJECT TYPE a b d
Organic 24 [105 | 25 0.38
Semidetached 3 12h 25) 0.35
Embedded 36 [12 25 0.32
Example: For a given project was estimated with a size of 300 KLOC. Caleulate the Effort
Scheduled time for development. Also, calculate the Average resource size and Productivity of
the software for Organic project type.
Scanned wth Camscanersorrans BXCEERING
m @ :
ven estimated size of project is:300 KLOc
ans
or organie
sie 6)" a*(KLOC)b = 2.4*(300)1.05 = 957.61 MM
ggetuled Time (0) = CE)A = 2.5(957.61)0.38 = 33.95 Month(s)
avg Resource Size = E/D = 957.61/33.95 = 28.21 Mans
productivity of Software = KLOC/E = 300/957.61 = 0.3132 KLOC/MM =313 Locyana
For Moderate
sift) =a*(KLOC)b = 3.0°(300)1.12 = 1784.42 MM
= scheduled Time (D) = c*(E)d. = 2.5%(1784.42)0.35 = 34.35 Months(M)
For Embedded .
stfortE) = a*(KLOC)b = 3.6"(300)1.2 = 3379.46 MM
Scheduled Time (D) = cX(E)d = 2.5*(3379.46)0.32 = 93.66 Months(M)
COCOMO 2
This model incorporates a range of sub-models that produce increasingly detailed software cost
¢stimates. The sub-models in COCOMO 2 are:
Application composition model: It is used when software is composed from
existing parts. Supports prototyping projects and projects where there is extensive
reuse based on standard estimates of developer productivity in application (object)
points/month. It Takes CASE tool use into account. The formula is:
PM = NOP/PROD = (Object Points x (1 - %reuse/100)) / PROD
Where, PM is the effort in person-months
NOP is the new abject points
PROD is the productivity.
5. Barly design model: This model is used when requirements are available but
design has not yet started, In this model, Estimates can be made after the
Tequirements have been agreed. The empirical formula used to calculate person
month is: PM=A xSize¥xM
Where, M= PERSxRCPXxRUSExPDIFXPREXXFCILXSCED
A= 2.94 in initial calibration
Size in KLOC
B varies from 1.1 to 1.24 depending on novelty af the project
Management approaches and the process maturity.
development flexibility, risk
‘Scanned with CanScanner«
i
Managing sofware Projet RERy 105
Reuse oriented Model: This model is used to compute the effort of integrating
Teusable components. Major effort is r i
; equired to integrate automaticall
code. The empirical formula is: ine
PMAuto = (ASLOC x (AT/100))/ATPROD
Where, ASLOC - No. LOC that have to be adapted
AT-- % of adapted code that is automatically generated
ATPROD - engineer productivity in adapting code (2400 LOC/month)
ae model. This model is used once the system architecture has been
lesigned and more information about the system is available. In this model we
‘uses same formula as early design estimates: PM = A x Size? x M)
Where, Size estimate for the software should be more accurate at this stage. It takes
into consideration the factors like: New code to be developed, rework required to
support change and extent of possible reuse.
xpert judgment: Expert judgment techniques involve consulting with software cost
estimation expert or a group of the experts to use their experience and understanding of
the proposed project to arrive at an estimate of its cost. The estimating steps using this
method are:
Coordinator presents each expert with a specification and an estimation form.
Coordinator calls a group meeting in which the experts discuss estimation issues
with the coordinator and each other.
Experts fill out forms anonymously
Coordinator prepares and distributes a summary of the estimation on an iteration
form.
Coordinator calls a group meeting, specially focusing on having the experts
discuss points where their estimates varied widely.
Experts fill out forms, again anonymously, and steps 4 and 6 are iterated for as
many rounds as appropriate.
Estimating by analogy means comparing the proposed project
project development information is
15 are extrapolated to estimate the
Estimation by analogy:
to previously completed similar project where the
known. Actual data from the completed project
‘od can be used cither at system-level or at the component-
Jatively straightforward, Actually in some respects, it
perts often search for analogous
proposed project. This meth
level. Estimating by analogy is rel
is a systematic form of expert judgment since ex
situations s0 as to inform their opinion.
Scanned wth Camscaner196. CD Sorrware Encurzerino
‘The steps using estimating by analogy are:
* Characterizing the proposed project.
* Selecting the most similar completed projects whose characteristics have been
stored in the historical data base.
‘* Deriving the estimate for the proposed project from the most similar completed
projects by analogy.
Parkinson's law: Parkinson's Law states that work expands to fill the time available. In
this method, the cost is determined by available resources rather than by objective
assessment.
Pricing to win: In this method, the software cost is estimated to be whatever the
customer has available to spend on the project. The estimated effort depends on
customer's budget not on the software functionality.
What is software project management? Explain the management activities in brief.
Managing software project is difficult than other project management. Why?
What is project planning? Project planning is iterative. Explain.
Explain different sections of project plan.
What is project scheduling? Explain the importance of activity network and bar chart,
with example.
‘What is risk management? Explain risk management process with block diagram.
What do you mean by cost estimation? Explain different software cost estimation
techniques.
What is COCOMO model? Explain different sub models of COCOMO 2 model.
goa
Scanned wth Camscaner