You are on page 1of 16

Role and Responsibilities of a software Project Manager:

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

Skills necessary for software project management


Project management  skills are the necessary traits and competencies you
need to be a successful project manager. Project management is not an
easy job. In fact, it’s several not-easy jobs, including the initiation, planning,
executing, controlling, and closing of a project. Even more difficult, that
project is delegated to a team of your choosing, given specific goals to
achieve over a defined timeline for a determined budget.
List of project management skills

1. Planning and forecasting 


It goes without saying, but proper project management requires skilled
planning. This can be challenging, especially since many project managers
need to make educated guesses about timelines and required resources.
2. Risk management
Every project has risks. Perhaps a resource won’t be available when you
need it, or delayed approval from a client will set your timeline back a few
days.
3. Budgeting
Only 2.5% of companies  successfully complete all of the projects they take
on. The rest go over schedule, over budget, or both. 
4. Tracking and monitoring
Project management isn’t just about completing a project — it’s about
completing a successful project. That won’t happen if project managers fail
to keep their fingers on the pulse.
5. Project management methodologies
From Agile to Waterfall, there are numerous project management
methodologies and approaches. These outline specific principles for
overseeing and completing projects.
6. Meeting facilitation
Kickoff meetings, status updates, retrospectives — the typical project
process has many meetings, most of which are led by the project manager.
7. Subject matter expertise 
Project managers work in a variety of industries, from construction to IT and
everything in between. While it’s not an absolute necessity, it’s helpful for the
project manager to have a basic familiarity with the industry and the types of
projects they’re managing.
8. Project management software
The best project managers know better than to try to coordinate all of the
elements of a project with jumbled spreadsheets and task lists. 
Project manager soft skills
9. Leadership
Project managers are the project leaders and often, the team leaders too.
They’re responsible for setting the team’s vision and ensuring everyone is on
board and motivated to bring the project through each phase.
10. Communication
Any project management skills list is sure to include communication near the
top. This includes written and verbal communication. 
11. Collaboration
The project manager is tasked with rallying team members around the
project vision, coordinating tasks, and ensuring that everybody works
together effectively.
12. Time management
Every project manager will have numerous demands placed on their time —
especially since they’re acting as the point of contact for so many
departments and team members
13. Organization 
Deadlines, resources, task dependencies — it’s enough to make anybody’s
head spin, but a project manager views it as a fulfilling challenge
14. Problem solving
As much as you’d like to think that your project will go off without a hitch,
unexpected issues are bound to crop up.
15. Adaptability 
Project managers need to be adaptable. While planning is a core skill, they
can’t be so rigid with their strategies that everything falls apart the moment
something unanticipated happens.

2.2 Know about the software project planning :

The purpose of Software Project Planning is to establish reasonable plans


for performing the software engineering and for managing the software
project. Software Project Planning involves developing estimates for the
work to be performed, establishing the necessary commitments, and defining
the plan to perform the work
The software planning begins with a statement of the work to be performed
and other constraints and goals that define and bound the software project.
The software planning process includes steps to estimate the size of the
software work products and the resources needed, produce a schedule,
identify and assess software risks, and negotiate commitments. Iterating
through these steps may be necessary to establish the plan for the software
project
2.2.1 The SPMP Document
Software project manager prepare a document on the basis of decision
finalized during the project planning. This document is known as Software
Project Management Plan Document or SPMP document.
 
SPMP document is a well organized document that contains the project
planning in detail.
It would have details about project objective, project estimates, project
schedules, project resources, project staffing, risk management plans,
project monitoring, project control and other miscellenous activities.
 
A SPMP document is prepared and organized in structure as shown below:
Introduction
 Objectives
 Functions
 Performance issues
 Constraints
Project estimates
 Historical data used
 Estimation techniques details
 Cost, duration, effort estimates
Project Schedule
 Work breakdown
 Gantt and PERT chart
Project resource
 Manpower
 Hardware and Software
 Highly skilled professionals
Staff organization
 Team formation and structure
 Management reporting
Risk Management
 Risk analysis
 Risk identification
 Risk abatement methods
Project tracking
Project Control
Miscellenous activities

2.3 State the Metrics of Project Size Estimation

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.

2.4 Explain the three Project Estimation Techniques

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 :

1. Empirical Estimation Technique –


Empirical estimation is a technique or model in which empirically
derived formulas are used for predicting the data that are a required
and essential part of the software project planning step. These
techniques are usually based on the data that is collected
previously from a project and also based on some guesses, prior
experience with the development of similar types of projects, and
assumptions. It uses the size of the software to estimate the effort.
In this technique, an educated guess of project parameters is
made. Hence, these models are based on common sense.
However, as there are many activities involved in empirical
estimation techniques, this technique is formalized. For example
Delphi technique and Expert Judgement technique.
2. Heuristic Technique –
Heuristic word is derived from a Greek word that means “to
discover”. The heuristic technique is a technique or model that is
used for solving problems, learning, or discovery in the practical
methods which are used for achieving immediate goals. These
techniques are flexible and simple for taking quick decisions
through shortcuts and good enough calculations, most probably
when working with complex data. But the decisions that are made
using this technique are necessary to be optimal.

In this technique, the relationship among different project


parameters is expressed using mathematical equations. The popular
heuristic technique is given by Constructive Cost Model (COCOMO) .
This technique is also used to increase or speed up the analysis and
investment decisions.
3. Analytical Estimation Technique –
Analytical estimation is a type of technique that is used to measure
work. In this technique, firstly the task is divided or broken down into
its basic component operations or elements for analyzing. Second, if
the standard time is available from some other source, then these
sources are applied to each element or component of work.
Third, if there is no such time available, then the work is estimated
based on the experience of the work. In this technique, results are
derived by making certain basic assumptions about the project.
Hence, the analytical estimation technique has some scientific
basis. Halstead’s software science is based on an analytical
estimation model.

2.4 Explain the two different works of Staffing Level Estimations

The number of personnel required throughout a software development


project is not a constant. Project Managers has to figure out staff estimation
after the efforts required to develop a software has been determined. It is
necessary to determine the staffing requirement for the project.In order to
appreciate the staffing pattern of software projects, Norden’s and Putnam’s
results must be understood.
Norden’s Work

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:

E = K/t²d * t * e-t² / 2 t²d

Where E is the effort required at time t. E is an indication of the number of


engineers (or the staffing level) at any particular time during the duration of
the project, K is the area under the curve, and td id the time at which the
curve attains its maximum value . It must be remembered that the results of
Norden are applicable to general R & D projects and were not meant to
model the staffing pattern of software development projects.

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:

A Work Breakdown Structure includes dividing a large and complex project


into simpler, manageable and independent tasks. The root of this tree
(structure) is labelled by the Project name itself. For constructing a work
breakdown structure, each node is recursively decomposed into smaller sub-
activities, until at the leaf level, the activities becomes undividable and
independent. It follows a Top-Down approach.
Steps:
 Step-1: Identify the major activities of the project.
 Step-2: Identify the sub-activities of the major activities.
 Step-3: Repeat till undividable, simple and independent activities
are created.
Critical Path Method

Critical Path Method (CPM) is a method used in project planning, generally


for project scheduling for the on-time completion of the project. It actually
helps in the determination of the earliest time by which the whole project can
be completed. There are two main concepts in this method namely critical
task and critical path. Critical task is the task/activity which can’t be delayed
otherwise the completion of the whole project will be delayed. It must be
completed on-time before starting the other dependent tasks.
Critical path is a sequence of critical tasks/activities and is the largest path
in the project network. It gives us the minimum time which is required to
complete the whole project. The activities in the critical path are known as
critical activities and if these activities are delayed then the completion of the
whole project is also delayed.
Major steps of the Critical Path Method:
1. Identifying the activities
2. Construct the project network
3. Perform time estimation using forward and backward pass
4. Identify the critical path
The table given below contains the activity label, its respective duration (in
weeks) and its precedents. We will use critical path method to find the critical
path and activities of this project.

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

Rules for designing the Activity-on-Node network diagram:


 A project network should have only one start node
 A project network should have only one end node
 A node has a duration
 Links normally have no duration
 “Precedents” are the immediate preceding activities
 Time moves from left to right in the project network
 A network should not contain loops
 A network should not contain dangles
Refer Example : https://www.sixsigmadaily.com/the-activity-network-diagram/
https://www.geeksforgeeks.org/software-engineering-critical-path-method/

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.

A Gantt chart is constructed with a horizontal axis representing the total


time span of the project, broken down into increments (for example, days,
weeks, or months) and a vertical axis representing the tasks that make up
the project

Gantt chart represents following things :


 All the tasks are listed at leftmost column.
 The horizontal bars indicate or represent required time by
corresponding particular task.
 When occurring of multiple horizontal bars takes place at same time
on calendar, then that means concurrency can be applied for
performing particular tasks.
 The diamonds indicate milestones.

PERT Charts:

Project Evaluation and Review Technique (PERT) is a procedure through


which activities of a project are represented in its appropriate sequence and
timing. It is a scheduling technique used to schedule, organize and integrate
tasks within a project. PERT is basically a mechanism for management
planning and control which provides blueprint for a particular project. All of
the primary elements or events of a project have been finally identified by the
PERT.
In this technique, a PERT Chart is made which represent a schedule for all
the specified tasks in the project. The reporting levels of the tasks or events
in the PERT Charts is somewhat same as defined in the work breakdown
structure (WBS).
Characteristics of PERT:
The main characteristics of PERT are as following :
1. It serves as a base for obtaining the important facts for
implementing the decision-making.
2. It forms the basis for all the planning activities.
3. PERT helps management in deciding the best possible resource
utilization method.
4. PERT take advantage by using time network analysis technique.
5. PERT presents the structure for reporting information.
6. It helps the management in identifying the essential elements for
the completion of the project within time.
2.7 Learn how to do Staffing – ― Who is a Good Software Engineer?
Staffing deals with the appoint personnel for the position that is identified by the
organizational structure. It involves: Defining requirement for personnel. Recruiting
(identifying, interviewing, and selecting candidates). The primary consideration of
the staffing plan for project management is to determine the specific skill sets required for
completing project deliverables. The staffing plan entails drawing up a time schedule for
specific skill requirements based on the project schedule and task plan
 good software engineer is someone who is not only competent at writing code, but also
competent in everything else required to build, deliver, and ship valuable software. A good
software engineer is someone that their company can trust to help them make money.

The features that good software engineers should possess are as follows:

Exposure to systematic methods, i.e., familiarity with software engineering principles.

Good technical knowledge of the project range (Domain knowledge).

Good programming abilities.

Good communication skills. These skills comprise of oral, written, and interpersonal
skills.

High motivation.
Sound knowledge of fundamentals of computer science.

Intelligence.

Ability to work in a team

2.9 Explain Risk Management

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.

Technical risks concern potential method, implementation, interfacing, testing, and


maintenance issue. 

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:

o The possibility of a risk coming true (denoted as r).


o The consequence of the issues relates to that risk (denoted as s).

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)

You might also like