Professional Documents
Culture Documents
A software project manager is the most important person inside a team who
takes the overall responsibilities to manage the software projects and play an
important role in the successful completion of the projects. A project
manager has to face many difficult situations to accomplish these works. In
fact, the job responsibilities of a project manager range from invisible
activities like building up team morale to highly visible customer
presentations. The task of a project manager are classified into two major
types:
1. Project planning
2. Project monitoring and control
1.Project planning:
Project planning is undertaken immediately after the feasibility study phase
and before the starting of the requirement analysis and specification phase.
Once a project has been found to be feasible, Software project managers
started project planning. During the project planning the project manager
performs the following activities:
1. Project Estimation: Project Size Estimation is the most important
parameter based on which all other estimations like cost, duration
and effort are made.
Cost Estimation: Total expenses to develop the software
product is estimated.
Time Estimation: The total time required to complete the
project.
Effort Estimation: The effort needed to complete the
project is estimated.
The effectiveness of all later planning activities is dependent on the
accuracy of these three estimations.
2. Scheduling: After completion of estimation of all the project
parameters, scheduling for manpower and other resources are
done.
3. Staffing: Team structure and staffing plans are made.
4. Risk Management: The project manager should identify the
unanticipated risks that may occur during project development .
5. Miscellaneous plans: This includes making several other plans
such as quality assurance plan, configuration management plan,
etc.
The order in which the planning activities are undertaken is shown
in the below
2.Project monitoring and control:
Project monitoring and control activities are undertaken once the
development activities start
Lead the team: The project manager must be a good leader who
makes a team of different members of various skills and can complete
their individual task.
Motivate the team-member: One of the key roles of a software
project manager is to encourage team member to work properly for the
successful completion of the project.
Tracking the progress: The project manager should keep an eye on
the progress of the project.
Documenting project report: The project manager prepares the
documentation of the project for future purpose.
Skills that are the most important to become a successful project manager
are given below:
Knowledge of project estimation techniques
Good decision-making abilities at the right time
Previous experience of managing a similar type of projects
Good communication skill to meet the customer satisfaction
A project manager must encourage all the team members to
successfully develop the product
He must know the various type of risks that may occur and the
solution for these problems
project size estimation is the most fundamental parameter. If this is estimated accurately then
all other parameters like effort, duration, cost, etc can be determined easily.
At present two techniques that are used to estimate project size are:
1. Lines of code or LOC
2. Function point
Lines of code
Lines of code or LOC is the most popular and used metrics to estimate size.
LOC determination is simple as well. LOC measures the project size in terms of number of
lines of statements or instructions written in the source code. In LOC count, comments and
headers are ignored.
Shortcomings of LOC
Estimating LOC by analyzing the problem specification is difficult. Estimation of
accurate LOC is only possible once the complete code has been developed. As
project planning needs to be done before the development work begins so this
metrics is of little use for project managers.
Two different source files having same number of lines may not require same effort.
The file having complex logic would require more effort than one with simple logic.
Based on LOC proper estimation may not be possible.
LOC is the numerical measurement of problem size. This metrics will vary to a large
extent from programmer to programmer. An experienced professional may write
same logic in less number of lines than a novice programmer.
Function point metrics
Function point metrics overcomes many of the shortcomings of LOC.
Function point metrics proposes that size of the software project is directly dependent on
various functionalities it supports. More the features supported the more would be the size.
This technique helps determine size of the project directly from the problem specification so
is really helpful to project managers during project planning while determining size.
Cost estimation simply means a technique that is used to find out the cost
estimates. The cost estimate is the financial spend that is done on the efforts
to develop and test software in Software Engineering. Cost estimation
models are some mathematical algorithms or parametric equations that are
used to estimate the cost of a product or a project.
Various techniques or models are available for cost estimation, also known
as Cost Estimation Models as shown below :
Norden studied the staffing patterns of several R & D projects.He found that
the staffing pattern can be approximated by the Rayleigh distribution curve
Norden represented the Rayleigh curve by the following equation:
Putnam’s Work
Putnam studied the problem of staffing of software projects and found that
software development has characteristics very similar to other R & D projects
studied by Norden and that the Rayleigh-Norden curve can be used to relate
the number of delivered lines of code to the effort and the time required to
develop the project. By analyzing a large number of army projects, Putnam
derived the following expression .
K = Total effort expended in PM for product development
L = The product size in KLOC
td= Time required to develop the software
Ck=State of technology constarints like Ck=2 (Poor dvelopment environment )
Ck=8 ( Good software environment)
Ck=11( Excellent environment)
Work Break down Structure:
Duration
(in
Activity weeks) Precedents
A 6 -
B 4 _
C 3 A
D 4 B
E 3 B
F 10 –
G 3 E, F
H 2 C, D
Gantt chart
Gantt charts may be simple versions created on graph paper or more
complex automated versions created using project management
applications such as Microsoft Project or Excel.
PERT Charts:
The features that good software engineers should possess are as follows:
Good communication skills. These skills comprise of oral, written, and interpersonal
skills.
High motivation.
Sound knowledge of fundamentals of computer science.
Intelligence.
A software project can be concerned with a large variety of risks. In order to be adept
to systematically identify the significant risks which might affect a software project, it
is essential to classify risks into different classes. The project manager can then check
which risks from each class are relevant to the project.
There are three main classifications of risks which can affect a software project:
1. Project risks
2. Technical risks
3. Business risks
Project risks concern differ forms of budgetary, schedule, personnel, resource, and customer-
related problems.
Business Risks Contain risks of building an excellent product that no one need, losing
budgetary or personnel commitments, etc.
Risk Assessment
The objective of risk assessment is to division the risks in the condition of their loss,
causing potential. For risk assessment, first, every risk should be rated in two
methods:
Based on these two methods, the priority of each risk can be estimated:
p=r*s
Where p is the priority with which the risk must be controlled, r is the probability of
the risk becoming true, and s is the severity of loss caused due to the risk becoming
true. If all identified risks are set up, then the most likely and damaging risks can be
controlled first, and more comprehensive risk abatement methods can be designed
for these risks.
Risk Identification: The project organizer needs to anticipate the risk in the project
as early as possible so that the impact of risk can be reduced by making effective risk
management planning. A project can be of use by a large variety of risk. To identify
the significant risk, this might affect a project. It is necessary to categories into the
different risk of classes.
There are different types of risks which can affect a software project
Technology risks
People risks
Organizational risks
Tools risks:
Requirement risks
Risk Containment
After the identified risks of a software project are assessed, plans must be made to contain the
most damaging and the most likely risks. Different risks require different containment
procedures. In fact, most risks require ingenuity on the part of the project manager in tackling
the risk.
There are three main strategies to plan for risk containment:
Avoid the risk– This may take several forms such as discussing with the customer to change
the requirements to reduce the scope of the work, giving incentives to the engineers to avoid
the risk of manpower turnover, etc.
Transfer the risk– This strategy involves getting the risky component developed by a third
party, buying insurance cover, etc.
Risk reduction– This involves planning ways to contain the damage due to a risk. For
example, if there is risk that some key personnel might leave, new recruitment may be
planned.
Risk Leverage
To choose between the different strategies of handling a risk, the project manager must
consider the cost of handling the risk and the corresponding reduction of risk. For this the risk
leverage of the different risks can be computed.
risk leverage = (risk exposure before reduction – risk exposure after reduction) / (cost of
reduction)