0% found this document useful (0 votes)
47 views53 pages

Software Project Management Essentials

Uploaded by

Sushant Yadav
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
47 views53 pages

Software Project Management Essentials

Uploaded by

Sushant Yadav
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd

Chapter 3

Software Project Management


4 P’s of Software Project Management
1. People
2. Product
3. Process
4. Project
People

• Identifying the roles people play in almost any given project is the first
step to a successful project.
• People are the primary resource on every project, and a well-
managed team can greatly increase the chances for success.
• Some of the different roles people play in project management
includes project manager, project team members, sponsors,
stakeholders, business analysts and information technology
developers.
Product

• As the name implies, this is the deliverable of the project.


• The project manager should define the product scope to ensure a successful
outcome, control “scope creep”; as well as technical hurdles that he or she
may encounter.
• Product does not necessarily need to be restricted to software; project
management can be applied to all industries with software development
being one of the key elements.
• The product of a project can also be something that is intangible; such as
moving a company to a new headquarters or setting up a new company as a
registered legal entity to commence trading activities on day one.
Process

• The third P of project management is Process. Project managers and


team members should have a methodology and plan that outlines
their approach.
• Without a clearly defined process, team members will not know what
to do and when to carry out project activities.
• However, this problem can be avoided through comprehensive early
stage process planning.
• Using the right process will increase the project execution success
rate that meets its original goals and objectives.
Project

• The fourth and final P of project management is Project. This is where


the project manager’s roles and responsibilities come into play.
• He or she must guide team members to achieve the project’s goals
and objectives.
• The project manager must delegate tasks, help team members when
needed, and ultimately strive to accomplish all requirements set forth
in the project scope.
Need of software project management

• Software is said to be an intangible product.


• Software development is a kind of all new stream in world business and
there’s very little experience in building software products.
• Most software products are tailor made to fit client’s requirements.
• The most important is that the underlying technology changes and advances
so frequently and rapidly that experience of one product may not be applied
to the other one.
• All such business and environmental constraints bring risk in software
development hence it is essential to manage software projects efficiently.
Need of software project management
Software Project Manager

• A software project manager is a person who undertakes the responsibility


of executing the software project.
• Software project manager is throughly aware of all the phases of SDLC that
the software would go through.
• Project manager may never directly involve in producing the end product
but he controls and manages the activities involved in production.
• A project manager closely monitors the development process, prepares and
executes various plans, arranges necessary and adequate resources and
maintains communication among all team members in order to address
issues of cost, budget, resources, time, quality, and customer satisfaction.
Software Project Manager
Responsibilities that a project manager
1. Managing People
• Act as project leader
• Liaison with stakeholders
• Managing human resources
• Setting up reporting hierarchy etc.
Software Project Manager
2. Managing Project
• Defining and setting up project scope
• Managing project management activities
• Monitoring progress and performance
• Risk analysis at every phase
• Take necessary step to avoid or come out of problems
• Act as project spokesperson
Project Planning

Once a project is found to be possible, computer code project managers undertake project
designing. Project designing is undertaken and completed even before any development
activity starts. Project designing consists of subsequent essential activities:
Estimating the subsequent attributes of the project:
• Project size:
What’s going to be downside quality in terms of the trouble and time needed to develop
the product?
• Cost:
What proportion is it reaching to value to develop the project?
• Duration:
However long is it reaching to want complete development?
• Effort:
What proportion effort would be required?
Project Scheduling

Project-task scheduling is a significant project planning activity. It comprises deciding which


functions would be taken up when. To schedule the project plan, a software project manager
wants to do the following:
1. Identify all the functions required to complete the project.
2. Break down large functions into small activities.
3. Determine the dependency among various activities.
4. Establish the most likely size for the time duration required to complete the activities.
5. Allocate resources to activities.
6. Plan the beginning and ending dates for different activities.
7. Determine the critical path. A critical way is the group of activities that decide the duration of
the project.
Software Project Scheduling Technique
• Work Breakdown structure
• Activity charts
• Program Evaluation and Review Technique(PERT)
• Gantt charts
• Critical Path Method(CPM)
Work Breakdown 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.
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.
Work Breakdown Structure
Uses

• It allows to do a precise cost estimation of each activity.


• It allows to estimate the time that each activity will take more
precisely.
• It allows easy management of the project.
• It helps in proper organisation of the project by the top management.
Activity Networks
• An activity network shows the different activities making up a project,
their estimated durations, and interdependencies.
• Each activity is represented by a rectangular node and the duration of
the activity is shown alongside each task.
• Managers can estimate the time durations for the different tasks in
several ways.
• One possibility is that they can empirically assign durations to
different tasks. This however is not a good idea, because software
engineers often resent such unilateral decisions.
Activity Networks
• A possible alternative is to let engineer himself estimate the time for an
activity he can assigned to.
• However, some managers prefer to estimate the time for various
activities themselves. Many managers believe that an aggressive
schedule motivates the engineers to do a better and faster job.
• However, careful experiments have shown that unrealistically aggressive
schedules not only cause engineers to compromise on intangible quality
aspects, but also are a cause for schedule delays.
• A good way to achieve accurately in estimation of the task durations
without creating undue schedule pressures is to have people set their
own schedules.
Activity Networks
Program evaluation and Review
Technique(PERT)
• A program evaluation review technique (PERT) chart is a graphical
representation of a project's timeline that displays all of the
individual tasks necessary to complete the project.
• PERT charts were first created by the U.S. Navy's Special Projects
Office in 1950s to guide the Polaris nuclear submarine project.
• A PERT chart uses circles or rectangles called nodes to represent
project events or milestones. These nodes are linked by vectors, or
lines, that represent various tasks and their dependencies.
• A PERT chart allows managers to evaluate the time and resources
necessary to manage a project.
How Does a PERT Chart Work?

• A project manager creates a PERT chart in order to analyze all of a project's tasks
while estimating the amount of time required to complete each one.
• Using this information, the project manager can estimate the minimum amount of
time required to complete the entire project.
• This information also helps the manager develop a project budget and determine
the resources needed to accomplish the project.
• Dependent tasks are items that must be performed in a specific manner. For
example, if an arrow is drawn from Task No. 1 to Task No. 2 on a PERT chart, Task
No. 1 must be completed before work on Task No. 2 begins.
• Items at the same stage of production but on different task lines within a project are
referred to as parallel tasks. They're independent of each other, and occur at the
same time.
A well-constructed PERT chart
How Is a PERT Chart Interpreted?

• Dotted activity lines represent dummy activities—items that are located


on another PERT path. Numbers and time allotments are assigned and
shown inside each vector.
• These charts have their distinct definitions and terms, the most important
of which anticipate how long it will take to finalize a project.
• "Optimistic time" refers to the shortest duration.
• "Pessimistic time" is the longest it might take.
• The "most likely time" indicates a reasonable estimate of the best-case
scenario, whereas "expected time" accounts for problems and obstacles.
Advantages

• A PERT chart allows a manager to evaluate the time and resources necessary to
complete a project. It also allows the manager to track required assets during
any stage of production in the course of the project.
• PERT analysis incorporates data and information supplied by a number of
departments. This combining of information encourages department
responsibility and identifies all responsible parties across the organization.
• It also improves communication during the project and it allows an organization
to commit to projects that are relevant to its strategic positioning.
• inally, PERT charts are useful input for what-if analyses. Understanding
the possibilities concerning the flow of project resources and milestones allows
management to achieve the most efficient and useful project path.
Disadvantages
• The information that goes into a PERT chart can be highly subjective.
They may include unreliable data or unreasonable estimates for cost
or time.
• PERT charts are deadline-focused and might not fully communicate
the financial positioning of a project.
• Creating a PERT chart is labor-intensive, and maintaining and updating
the information requires additional time and resources. Continual
review of the information provided, as well as the prospective
positioning of the project, is required for a PERT chart to be of value.
Gantt chart
• Visualization that helps in scheduling, managing, and monitoring
specific tasks and resources in a project.
• It consists of a list of tasks and bars depicting each task's progress.
• It's the most widely used chart in project management.
• Gantt charts are used in heavy industries for projects like building
dams, bridges, and highways, as well as software development and
building out of other goods and services.
Gantt chart

• Useful in planning a project.


• Defining the sequence of tasks that require completion.
• In most instances, the chart is displayed as a horizontal bar chart.
• Horizontal bars of different lengths represent the project timeline, which can
include task sequences, duration, and the start and end dates for each task.
• The chart shows the project timeline, which includes scheduled and
completed work over a period.
• The Gantt chart aids project managers in communicating project status or
plans and also helps ensure the project remains on track
Gantt chart
Benefits of a Gantt Chart

• The chart identifies tasks that may be executed in parallel and those that can't be started or
finished until others are complete.
• It can help detect potential bottlenecks and identify tasks that may have been excluded from
the project timeline.
• The chart depicts things like: task slack time or additional time for completion of a task that
shouldn't delay the project
• Noncritical activities that may be delayed;
• Critical activities that must be executed on time.
• Gantt charts can be used in managing projects of all sizes and types.
• These may include building infrastructure like dams, bridges, and highways. They may also
include software development and other technologies.
• Project management tools, such as Microsoft Visio, Project, SharePoint, and Excel, or
specialized software, such as Gantto or Matchware, can help in designing Gantt charts.
Critical Path Method
• Developed in the late 1950s
• CPM is an algorithm used for planning, scheduling, coordination and control of activities in
a project.
• It is assumed that the activity duration is fixed and certain.
• CPM is used to compute the earliest and latest possible start time for each activity.
• The process differentiates the critical and non-critical activities to reduce the time and avoid
the queue generation in the process.
• The reason for the identification of critical activities is that, if any activity is delayed, it will
cause the whole process to suffer. That is why it is named as Critical Path Method.
• In this method, first of all, a list is prepared consisting of all the activities needed to complete
a project, followed by the computation of time required to complete each activity.
• After that, the dependency between the activities is determined. Here, ‘path’ is defined as a
sequence of activities in a network. The critical path is the path with the highest length.
Advantages of CPM
• Most importantly – helps reduce the risk and costs of complex projects
• Encourages careful assessment of the requirements of each activity in a
project
• Help spot which activities have some slack ("float") and could therefore
transfer some resources = better allocation of resources
• A decision-making tool and a planning tool – all in one!
• Provides managers with a useful overview of a complex project
• Links well with other aspects of business planning, including cash flow
forecasting and budgeting
Disadvantages of CPM
• Reliability of CPM largely based on accurate estimates and
assumptions made
• CPM does not guarantee the success of a project – that still needs to
be managed properly
• Resources may not actually be as flexible as management hope when
they come to address the network float
• Too many activities may the network diagram too complicated.
Activities might themselves have to be broken down into mini-
projects
Comparison between PERT and CPM
BASIS FOR COMPARISON PERT CPM
Meaning PERT is a project management CPM is a statistical technique of
technique, used to manage project management that
uncertain activities of a project. manages well defined activities
of a project.
What is it? A technique of planning and A method to control cost and
control of time. time.

Orientation Event-oriented Activity-oriented


Evolution Evolved as Research & Evolved as Construction project
Development project
Comparison between PERT and CPM
Model Probabilistic Model Deterministic Model
Focuses on Time Time-cost trade-off
Estimates Three time estimates One time estimate
Appropriate for High precision time estimate Reasonable time estimate

Management of Unpredictable Activities Predictable activities


Nature of jobs Non-repetitive nature Repetitive nature

Critical and Non-critical No differentiation Differentiated


activities
Suitable for Research and Development Non-research projects like civil
Project construction, ship building etc.
COCOMO Model
• COCOMO (Constructive Cost Model) is a regression model based on LOC, i.e number of Lines of
Code.
• It is a procedural cost estimate model for software projects and is often used as a process of
reliably predicting the various parameters associated with making a project such as size, effort,
cost, time, and quality.
• It was proposed by Barry Boehm in 1981 and is based on the study of 63 projects, which makes
it one of the best-documented models.
• The key parameters which define the quality of any software products, which are also an
outcome of the COCOMO are primarily Effort & Schedule:
Effort: Amount of labor that will be required to complete a task. It is measured in person-months
units.
Schedule: Simply means the amount of time required for the completion of the job, which is, of
course, proportional to the effort put in. It is measured in the units of time such as weeks, months.
COCOMO Model
Based on the development complexity Boehm postulated that any
software project can be classified into:-
1. Organic
2. Semidetached
3. Embedded
COCOMO Model
1. Organic – A software project is said to be an organic type if
the team size required is adequately small
the problem is well understood and has been solved in the past
the team members have a nominal experience regarding the
problem.
COCOMO Model
3. Embedded –
A software project requiring the highest level of complexity, creativity,
and experience requirement fall under this category.
Such software requires a larger team size than the other two models
and also the developers need to be sufficiently experienced and
creative to develop such complex models.
COCOMO Model
2. Semi-detached – A software project is said to be a Semi-detached
type if
The vital characteristics such as team size, experience, and
knowledge of the various programming environment lie in between
that organic and Embedded.
The projects classified as Semi-Detached are comparatively less
familiar and difficult to develop compared to the organic ones and
require more experience and better guidance and creativity.
Eg: Compilers or different Embedded Systems can be considered of
Semi-Detached type.
COCOMO Model
According to Boehm, software cost estimation should be done through three
stages:
• Basic COCOMO Model
• Intermediate COCOMO Model
• Detailed COCOMO Model
Basic COCOMO Model
• This model is based on Lines of code. The basic COCOMO model helps to
calculate a quick estimation of software development costs. The accuracy
of this model is considerably restricted because of the insufficient factor
considerations. The Basic COCOMO model’s expression is given as:
Effort (E) = a*(KLOC)b
Development Time (Tdev) = c*(E)d
Where,
KLOC is Kilo's lines of code.
E is the Effort applied in person-month.
Tdev is the development time in months.
Basic COCOMO Model
• The coefficient a, b,c & d are constant and can be calculated using the
given table:
Project a b c d
Organic 2.4 1.05 2.5 0.38
Semi-
3.0 1.12 2.5 0.35
detached
Embedded 3.6 1.20 2.5 0.32
Basic COCOMO Model
When we calculate effort and development time, then the average staff
size to complete the project should be calculated as:
Average staff size (SS) = E/Tdev persons
When the project size is calculated, then we will have to calculate
productivity level
Productivity (P) = KLOC/E
Software Risk
• Risk is an expectation of loss, a potential problem that may or may not occur in the
future.
• Caused due to lack of information, control, or time.
• A possibility of suffering from loss in the software development process is called a
software risk.
• Loss can be anything, an increase in production cost, development of poor quality
software, and not being able to complete the project on time.
• Software risk exists because the future is uncertain and there are many known and
unknown things that cannot be incorporated into the project plan.
• A software risk can be of two types (a) internal risks that are within the control of
the project manager and (b) external risks that are beyond the control of the
project manager.
Risk Management
• Risk management is concerned with identifying risks and drawing up
plans to minimise their effect on a project.
• Software risk management is important because of the inherent
uncertainties in software development.
These uncertainties stem from loosely defined requirements, requirements
changes due to changes in customer needs, difficulties in estimating the time
and resources required for software development, and differences in
individual skills.
• We have to anticipate risks, understand the impact of these risks on
the project, the product and the business, and take steps to avoid
these risks.
Risk classification
• There are two dimensions of risk classification
• The type of risk (technical, organizational)
• what is affected by the risk
• Project risks affect the schedule or resources
• Product risks affect the quality or performance of the software being
developed
• Business risks affect the organization developing or procuring the
software.
The risk management process
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.
1. Technology risks: Risks that assume from the software or hardware technologies that are
used to develop the system.
2. People risks: Risks that are connected with the person in the development team.
3. Organizational risks: Risks that assume from the organizational environment where the
software is being developed.
4. Tools risks: Risks that assume from the software tools and other support software used
to create the system.
5. Requirement risks: Risks that assume from the changes to the customer requirement
and the process of managing the requirements change.
6. Estimation risks: Risks that assume from the management estimates of the resources
required to build the system
Risk analysis
• Risk analysis involves examining how project outcomes and objectives
might change due to the impact of the risk event.
• Once the risks are identified, they are analyzed to identify the
qualitative and quantitative impact of the risk on the project so that
appropriate steps can be taken to mitigate them.
Risk Planning
• Consider each risk and develop a strategy to manage that risk.
• Avoidance strategies
The probability that the risk will arise is reduced
• Minimization strategies
• The impact of the risk on the project or product will be reduced;
• Contingency plans
• If the risk arises, contingency plans are plans to deal with that risk
What-if questions
• What if several engineers are ill at the same time?
• What if an economic downturn leads to budget cuts of 20% for the
project?
• What if the performance of open-source software is inadequate and
the only expert on that open source software leaves?
• What if the company that supplies and maintains software
components goes out of business?
• What if the customer fails to deliver the revised requirements as
predicted?
Risk monitoring
• Assess each identified risks regularly to decide whether or not it is
becoming less or more probable.
• Also assess whether the effects of the risk have changed.
• Each key risk should be discussed at management progress meetings.

You might also like