Today as we see, software has become an inseparable part of human life. Almost everything we can look around is managed, controlled by software.
The goal of software project management is to understand, plan, measure, and control the project such that it is delivered on time and on budget. This involves gathering requirements, managing risk, monitoring and controlling progress, and following a software development process.
2. Unit 01. Introduction to Software
Project Management (SPM)
Introduction
Waterfall Model
o Theory and Practice
Software Cost Estimation
o Pragmatic Software Cost Estimation
Conventional Software Management Performance
Evolution of Software Economics
3. Introduction to Software Project Management
Today as we see, software has become inseparable part of human life. Almost
everything we can look around is managed, controlled by software.
As going forward, it is just going to be more smarter and much more integral
part of our life.
Many organizations today have a new or renewed interest in project
management.
Project Management deals with all activities in systematic order to provide good
and quality software.
4. Continue…
The U.S. spends $2.3 trillion on software projects every year and the world as
a whole spends nearly $10 trillion.
A project is well-defined task, which is a collection of several operations done in
order to achieve a goal (for example: software development and delivery).
In a way revolution, such change has been result of having ‘great minds at
work’ doing what is called as ‘software project management’.
Building a software or software creation is a process and a properly defined
process of creating software is called software project management.
5. Continue..
It is a sub-discipline of project management in which software projects are
planned, implemented, monitored and controlled.
So, SPM is a process of managing, allocating resources to develop computer
software that meets requirements.
In software project management, the end users and developers need to
know the length, duration and cost of the project.
It is a sub-discipline of project management in which software projects are
planned, implemented, monitored and controlled.
6. Phases or Tasks
1. Problem Identification
2. Problem Definition
3. Project Planning
4. Project Organization
5. Resources Allocation
6. Project Scheduling
7. Tracking, Reporting and Controlling
8. Project Termination
7. 1. Problem Identification
project is identified, defined and justified.
allows project managers and their teams to capture the details of each problem
2. Problem Definition
the purpose of the project is clarified.
the main product is project proposal.
3. Project Planning
It is performed before the production of software actually starts.
it describes a series of actions or steps that are needed to for the development of work product.
4. Project Organization
the functions of the personnel are integrated.
It is done in parallel with project planning.
5. Resources Allocation
the process of assigning and managing assets in a manner that supports an organization's
strategic goals.
to determine the proper timing and allocation of those resources within the
project schedule
8. 6. Project Scheduling
Project managers define multiple tasks and arrange them keeping various factors in mind.
listing of a project's milestones, activities, and deliverables, usually with intended start and
finish dates.
7. Tracking, Reporting and Controlling
the process of tracking, reviewing, and regulating the progress in order to meet the
performance objectives.
From the perspective of Knowledge Management Area, involves the management tasks,
such as tracking, reviewing, and reporting the progress of a project.
8. Project Termination
transmission lines efficiently deliver reliable power to customers and communities.
want software that supports the planning, design, construction, and operations of electric
Transmission Line Project.
Projects have to be closed down when the requirements are not fulfilled according to
given time and cost constraints.
9.
10. That is why we can say that 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.
The goal of software project management is to understand, plan, measure and
control the project such that it is delivered on time and on budget. This involves
gathering requirements, managing risk, monitoring and controlling progress, and
following a software development process.
11. Need of Software Project Management
Project management software is software used for project planning, scheduling, resource
allocation and change management.
SPM allows project managers (PMs), stakeholders and users to control costs and manage
budgeting, quality management and documentation and also may be used as an
administration system.
So, Project Management Software is Software which is used for Project Planning,
Scheduling, Resource allocation, and change management.
The important of SPM – is a kinds of tools allow companies to become competitive in
their environments, optimizing time and effort and keeping project on track.
12. Need of SPM
The main objective of SPM is to deliver an information system that is acceptable to users and
is developed on time and within budget.
It is an essential part of software organization to deliver quality product, keeping the cost
within client’s budget constrain and deliver the project as per scheduled.
13. What is Project?
Project is an individual or collaborative enterprise that is carefully planned to achieve a
particular aim.
A project is well-defined task, which is a collection of several operations done in order to
achieve a goal (for example, software development and delivery). A Project can be
characterized as:
Every project may has a unique and distinct goal.
Project is not routine activity or day-to-day operations.
Project comes with a start time and end time.
Project ends when its goal is achieved hence it is a temporary phase in the lifetime of
an organization.
Project needs adequate resources in terms of time, manpower, finance, material and
knowledge-bank.
14. What is Project Management?
Project management is the “application of knowledge, skills, tools & techniques to
project activities to meet project requirements.”
A project and PM has cost, schedule and quality performance constraints.
They must be balanced and managed to achieve success.
There are three main words that are used here – Software, Project and Management.
So, Project Management is a system of management procedures, practices, technologies,
skill and experience that are necessary to successfully manage an engineering project.
If the product of a project is software, then the act of managing the project is called
software engineering project management.
15. Continue…
So, now we club together these three words Software Project Management
(SPM).
Each of these words involves some amount of competencies.
So, Software Project Managements is an umbrella activity within Software
Engineering.
Project Management involves the Planning, Monitoring and Control of People,
Process and Events that occur as Software evolves from preliminary concept
to an operational implementation.
Project Management begins before any technical activity and continues
throughout the Definition, Development and Support of Computer Software.
16. The IT company engaged in software development which split in two parts:
Software creation
Software Project Management
A project is well-defined task, which is a collection of several operations done in order to
achieve a goal (for example, software development and delivery).
A Project can be characterized as:
Every project may have a unique and distinct goal.
Project is not routine activity or day-to-day operations.
Project comes with a start time and end time.
Project ends when its goal is achieved.
Project needs adequate resources in terms of time, manpower, finance, material and
knowledge-bank.
17. SPM TRIPLE CONSTRAINTS
It is essential part of S/W organization to
deliver quality product, keeping the cost
within client’s budget constrain and deliver
the project as project scheduled.
There are several factors
(internal/external), which may impact this
triple constrain triangle.
Therefore SPM is essential to incorporate
user requirements along with budget &
time constraints
Fig: This diagram shows triple constraints
for software projects.
18. Software Project Management Activities
Software Project Management Plan : All technical and managerial activities required to deliver
the deliverables to the client.
A software project has a specific duration, consumes resources and produces work products.
19. SPM has been suggested to involve the following activities:
1. Planning– the process of deciding what is to be done.
2. Organizing– the process of making arrangements.
3. Staffing– the process of selecting the right people for the job.
4. Directing– the process of giving instructions.
5. Monitoring– the process of checking on progress.
6. Controlling– the process taking action to remedy hold-ups.
7. Innovating– the process of coming up with new solutions.
Software Project Management comprises of a number of activities, which contains:
– Identifying the objectives
– planning of project,
– deciding scope of software product,
– estimation of cost in various terms,
– scheduling of tasks and events, and
– resource management.
20. Benefits of using Project Management Software
Improved/increased/enhanced customer satisfaction
Enhanced effectiveness in delivering services
Improved growth and development within your team
Greater standing and competitive edges
Opportunities to expand your services
Better flexibility
Better efficiency in delivering services.
Increased risk assessment
Increase quality
Increase quantity
21. The 7 Processes of Prince2
What is PRINCE2?
PRINCE2 is a process-based method for effective project management, and will give you the
fundamental skills you need to become a successful project manager.
It stands for PRojects IN Controlled Environments, and is used and recognized all over the
world.
PRINCE2 is completely scalable, and the most recent update to the framework means it can be
more easily tailored to each project you undertake.
PRINCE2 provides benefits to the managers and directors of a project and to an organization,
through the controllable use of resources and the ability to manage business and project risk
more effectively.
PRINCE2 encourages formal recognition of responsibilities within a project and focuses on
what a project is to deliver, why, when and for whom.
22. The seven processes of PRINCE2 are:
1. Starting Up a project
2. Initiating a Project
3. Directing a Project
4. Controlling a Stage
5. Managing Product Delivery
6. Managing a Stage Boundary
7. Closing a Project
23. 1. Directing a Project Process – It has the liability of the Project Board. Directing a Project
Process runs from the beginning of the project and continues to live till the last. Starting Up
a Project method happens prior to the starting of the project.
2. The Starting Up a Project process – This is considered the liability of both the Executive
and the Project Manager. It is viewed as the very first process and it is recognized as the
Pre-Project process as it happens prior to the starting of the project.
3. Initiating a Project Process – This process is the procedure which defines the product
quality, Project Product, project timeline, costs, the commitment of resources, risk analysis,
and assembles the Project Initiation Documentation (PID).
4. Controlling a Stage Process – In the process of Controlling a Stage, the Project Manager
does the majority of the work. He watches the work closely, takes remedial action, has a
communication with the stakeholders, and observes alterations.
24. 5. The Managing Product Delivery Process – In the process of Managing Product Delivery, the
planned components are formed and it becomes the liability of the Team Manager. Here, the
compounds are created, the Work Packages are implemented, and work gets accomplished.
6. The Managing a Stage Boundary Process – This process has got a couple of primary
functions. The first one is reporting on the current stage’s performance and the second one is
planning the subsequent stage. Hence, the Project Board is liberal to check how good the
stage has finished its work against the Stage Plan.
7. The Closing a Project Process – This process does cover the job of wrapping up the project.
Additionally, this process is considered the concluding portion of the final and last stage.
PRINCE2 recommends many activities for preparing the project for the finish, like Lessons
Learned Report, Acceptance Record, and End Project Report.
25. Software Project Management Tools
The risk and uncertainty rises multifold with respect to the size of the project, even when the
project is developed according to set methodologies.
Gantt Chart
It represents project schedule with respect to time periods. It is a horizontal bar chart with bars
activities and time scheduled for the project activities.
26. PERT Chart
PERT (Program Evaluation & Review Technique) chart is a tool that depicts project as network diagram. It is capable
of graphically representing main events of project in both parallel and consecutive way. Events, which occur one
after another, show dependency of the later event over the previous one.
Resource Histogram
This is a graphical tool that contains bar or chart representing number of resources (usually skilled staff) required
over time for a project event (or phase). Resource Histogram is an effective tool for staff planning and coordination.
Critical Path Analysis
This tools is useful in recognizing interdependent tasks in the project. It also helps to find out the shortest path or
critical path to complete the project successfully.
27. Some commonly used tools and techniques by Knowledge AREA:
Knowledge Area Tools and Techniques
Integration Management Project selection methods, stakeholder analyses, project
management s/w, change requests
Scope Management Scope statements, work breakdown structures, scope
verification techniques
Cost Management Net present value, return on investment, payback analyses,
cost management plans
Time Management Gantt charts, critical-path analyses, project network diagrams
Human Resource Management Motivation techniques, resource histograms,
Quality Management Quality Metrics, Checklist, Quality control Charts
Risk Management Risk Management Plans, Risk Register, Risk Rankings
Communication Management Communication management plans, kickoff meetings, conflicts
management, status and progress reports
Procurement Management Make-or-buy analyses, source selections, contracts
28. The 10 Project Management Knowledge Areas of PMBOK
PMBOK officially recognizes 47 typical project management processes, which can be organized into 10
knowledge areas:
Project Communication Management: Processes that disseminate information among team members and
external stakeholders, ensuring that information is exchanged continuously, and more importantly,
understood by all concerned.
Project Cost Management: Processes regarding budgets, funding, spending allocation, and timing. Cost
management is dependent on activity estimates from time management.
Project Human Resources Management: Processes involving managing your project team, like sourcing,
hiring, assigning roles, professional development, and fostering team spirit.
Project Integration Management: Processes necessary to define, consolidate, and coordinate all the other
processes and project management activities. These processes are key to setting expectations and keeping
communication lines open.
Project Procurement Management: Processes for planning, budgeting, and purchasing resources —
whether physical or informational — in order to complete work.
Project Time Management: Processes needed to ensure the project is completed before the specified
deadline.
29. Project Quality Management: Processes that define the success of a project or
criteria for considering the project complete. Quality is managed at every stage of the
project from planning to the continuous performance improvement.
Project Risk Management: Processes involved with preparing for and managing
unexpected risks.
Project Scope Management: Processes managing the scope or parameters of a
project. These processes ensure that the scope is well-defined and that all
requirements remain within the scope limits.
Project Stakeholder Management: Processes involved with identifying who will be
impacted by the project and managing relationships with them, including strategies for
collaborating with stakeholders on project direction and execution.
Project control cycle: The control cycle is the process of monitoring and controlling
the project.
Tools and templates: Project plans, project management reports, and risk logs are
common tools and templates used for managing projects.
31. Waterfall model
Winston Royce introduced the Waterfall Model in 1970.
This model has five phases: Requirements analysis and specification, Design,
Implementation, and Unit testing, Integration and System testing, and Operation and
Maintenance. The steps always follow in this order and do not overlap. The developer must
complete every phase before the next phase begins.
This model is named "Waterfall Model", because its diagrammatic representation resembles
a cascade of waterfalls.
The Waterfall model is a relatively linear sequential design approach for certain areas of
engineering design.
In software development, it tends to be among the less iterative and flexible approaches, as
progress flows in largely one direction through the phases of conception, initiation, analysis,
design, construction, testing, deployment and maintenance.
32. As an internal process, the Waterfall methodology focuses very little on the end user or
client involved with a project.
Its main purpose has always been to help internal teams move more efficiently through
the phases of a project, which can work well for the software world.
Waterfall is a project management approach where a project is completed in distinct
stages and moved step by step toward ultimate release to consumers.
When you take traditional project management and apply it to software development, you
get Waterfall.
So, in this global Software Development is still highly unpredictable. Only about 10% of
Software Projects are delivered successfully within initial budget and Schedule estimates.
33. There are two essential steps common to the development of computer programs : Analysis and
Coding.
This was the Waterfall Model Part I to building a program (Basic Steps)
Analysis & Coding both involve creative work that directly contributes to the usefulness of the
end product.
Then Introduce several other steps in software development process. They are:
System Requirement s Definition
Software Requirements Definition
Program Design
Program testing
34. Given figure illustrate complete waterfall model which is part 2 is known as the Large Scale
System Approach (Model).
35. Waterfall Model was first Process Model to be introduced.
It is very simple to understand and use. In a Waterfall model, each phase must be
completed before the next phase can begin and there is no overlapping in the
phases.
Waterfall model is the earliest SDLC approach that was used for software
development.
In software engineering: a software development process is the process of
dividing software development work into distinct phases to improve design, product
management, and project management.
So, the waterfall model is a sequential design process in which progress is seen
as flowing steadily downwards (like a waterfall) through the phases of Conception,
Initiation, Analysis, Design, Construction, Testing, Production/Implementation, and
Maintenance.
It is also known as a Software Development Life Cycle (SDLC).
36.
37. In Original Waterfall Model, the following phases are followed in order:
System and Software requirements: captured in a product requirements document
Analysis: resulting in models, plan, diagram and business rules.
Design: resulting in the software architecture (structure design)
Coding: the development, proving, and integration of software (using appropriate coding
language)
Testing: the systematic finding and debugging (clear up) of defects/errors.
Operations: the installation, implementation, support, and maintenance of complete
systems
Waterfall Model or approach was first SDLC Model to be used widely in Software
Engineering to ensure success of the project.
In "The Waterfall" approach, the whole process of software development is divided into
separate phases.
In this Waterfall model, typically, the outcome of one phase acts as the input for the next
phase sequentially.
38.
39. Sequential Phases in Waterfall model
Requirement Gathering and Analysis
All possible requirements of the system to be developed are captured in this phase and documented in
a requirement specification document.
System Design
The requirement specifications from first phase are studied in this phase and the system design is
prepared.
This system design helps in specifying hardware and system requirements and helps in defining the
overall system architecture.
Implementation
With inputs from the system design, the system is first developed in small programs called units, which
are integrated in the next phase.
Each unit is developed and tested for its functionality, which is referred to as Unit Testing
This system design helps in specifying hardware and system requirements and helps in defining the
overall system architecture.
40. Implementation
With inputs from the system design, the system is first developed in small programs called units, which are
integrated in the next phase.
Each unit is developed and tested for its functionality, which is referred to as Unit Testing.
Testing
All the units developed in the implementation phase are integrated into a system after testing of each unit. Post
integration the entire system is tested for any faults and failures.
Deployment of system
Once the functional and non-functional testing is done; the product is deployed in the customer environment or
released into the market.
Maintenance
There are some issues which come up in the client environment. To fix those issues, patches are released. Also
to enhance the product some better versions are released.
Maintenance is done to deliver these changes in the customer environment.
It is very simple to understand and use.
In a Waterfall model, each phase must be completed before the next phase can begin and there is no
overlapping in the phases.
41. Advantages of waterfall model
This model is simple and easy to understand and use.
It is easy to manage due to the rigidity of the model – each phase has specific
deliverables and a review process.
In this model phases are processed and completed one at a time. Phases do not
overlap.
Waterfall model works well for smaller projects where requirements are clearly defined
and very well understood.
42. When does Waterfall Model use?
This model is used only when the requirements are very well known, clear and fixed.
Product definition is stable.
Technology is understood.
There are no ambiguous requirements
Ample resources with required expertise are available freely
The project is short.
The waterfall model is a sequential engineering model developed by engineering management
before to build the buildings, infrastructure and machines.
43. Waterfall projects value:
Processes and tools over Individuals and interactions.
Comprehensive documentation over working products.
Contract negotiation over customer collaboration.
Following the plan over responding to change.
There are some models that we can use for Software Development Project: Agile
Model, V-Model, Spiral Model, Rad Model etc.
44. Software Management Renaissance
In the past ten years, typical goals in the software process improvement of several companies
are to achieve a 2x, 3x, or 10x increase in productivity, quality, time to market, or some
combination of all three, where x corresponds to how well the company does now.
The funny thing is that many of these organizations have no idea what x is, in objective terms.
The Old Way (Conventional SPM)
The Waterfall Model
Conventional Software Management Performance
Evolution of Software Economics
Software Economics
Pragmatic Software Cost Estimation
45. Conventional Software Management
Performance
Conventional Software Management practice are mostly sound in theory, but practice is still tied to
architecture technology and techniques.
Conventional Software Economics provides a benchmark of performance for conventional
software management principles.
In 1987 Barry Boehm conceived “Industrial Software Metrics TOP 10 LIST” , which are good,
objective characterization of the state of software development.
46. The following are the Boehm’s TOP 10 LIST presented for the development of
software.
Finding and fixing a software problem after delivery costs 100 times more than finding and fixing
the problem in early design phases.
You can compress software development schedules 25% of nominal, but no more.
For every $1 you spend on development, you will spend $2 on maintenance.
Software development and maintenance costs are primarily a function of the number of source
lines of code.
Variations among people account for the biggest differences in software productivity.
The overall ratio of software to hardware costs is still growing. In 1955 it was 15:85; in 1985,
85:15.
Only about 15% of software development effort is devoted to programming.
Walkthroughs catch 60% of the errors.80% of the contribution comes from 20% of contributors.
49. Software Economics
Software Economics is the sub-field of software engineering.
It seeks improvements of software which means Software Engineers are enable to use of their knowledge,
ideas and value about risk, opportunity, uncertainty for the development of software.
Most software cost models can be abstracted into a function of five basic parameters.
The environment, which is made up of the tools and techniques available to support efficient software
development and to automate the process.
Most software cost models can be abstracted into a function of five basic parameters:
Size (typically, number of source instructions)
Process (the ability of the process to avoid non-value-adding activities)
Personnel (their experience with the computer science issues and the applications domain issues of the project)
Environment (tools and techniques available to support efficient software development and to automate
process)
Quality (performance, reliability, adaptability…)
50. The relationships among these parameters and the estimated cost can be written as follows :
Effort = (Personnel)(Environment)(Quality)(SizeProcess)
How do you calculate effort estimation?
Software Test Estimation Techniques: Step By Step Guide
Step 1) Divide the whole project task into subtasks.
Step 2) Allocate each task to team member.
Step 3) Effort Estimation For Tasks.
Step 4) Validate the estimation.
51.
52. A good Software Cost Estimation has following
attributes:
It is conceived and supported by the project manager and the development team.
It is accepted by all stakeholders as realizable.
It is based on a well-defined software cost model with a credible basis.
It is based on a database of relevant project experience (similar processes, similar
technologies, similar environments, similar people and similar requirements).
It is defined in enough detail so that its key risk areas are understood and the probability of
success is objectively assessed.
53. Pragmatic Software Cost Estimation
One critical problem software cost estimation is a lack of well-documented case studies of
projects that used an iterative development approach.
It is hard enough to collect a homogeneous set of project data within one organization; it is
extremely difficult to homogenize data across different organizations with different process,
languages, domains, and so on.
The exact door definition of a function point or a SLOC is not very important, just as the exact
length of a foot or a mater is equally arbitrary. It is simply important that everyone uses the
same definition.
Three topics of these debates are of particular interest here:
Which cost estimation model to use
Whether to measure software size in source lines of code (SLOC) or function points.
What constitutes a good estimate.
54. There are several popular cost estimation models, as well as numerous organization-
specific models.
COCOMO is also one of many of the software economics arguments and perspectives.
Many software experts have argued that SLOC is a lousy measure of size.
However, when a code segment is described as a 1000-source-line program, most
people feel comfortable with its general “mass”.
If the description were 20 function points, 6 classes, 5 use cases, 4 object points, 6
files, 2 subsystems, 1 component, or 6000 bytes, most people, including software
experts , would ask further questions to gain an understanding of the subject code.
So SLOC is one measure that still has some value.
55. Software project management framework
A project management framework consists of the processes, tasks, and tools used to
take a project from start to finish. It encompasses all the key components required
for planning, managing, and governing projects.
Project lifecycle: This is the cycle a project goes through from beginning to end. It
consists of five phases:
Initiation
Planning
Execution
Monitoring & controlling
Closure
56. 3PR Framework for Software Project Management:
People,
Process,
Product, and
Risk
57. 6 project management frameworks
There are many project management frameworks you can choose to use.
Here are 6 of the most common ones:
1. PRINCE2: This framework is highly structured with a heavy emphasis on upfront planning.
2. CCPM (critical chain project management): Critical chain focuses primarily on resource
allocation across the project.
3. Lean: A lean framework focuses on minimizing wasted effort and resources. Process improvement
techniques are often incorporated into this framework.
4. XPM (extreme project management): XPM was designed for complex projects that occur in fast-
changing environments. Emphasis is on stakeholder management as plans and schedules are
rapidly changing.
5. Scrum: This framework was also designed for industries undergoing rapid change. Using this
framework, projects are often broken down and planned in 2-4 week sprints.
6. Waterfall: This framework is one of the traditional approaches to project management. Waterfall
requires a project to be planned beginning to end, with no phase of a project beginning until the
previous one has ended.
58. Q) How to choose a project management framework?
One single framework does not work for all projects, which is why so many of them have been
created over the years. When deciding which framework is best for your project, consider the
following:
If your industry, technology, or product is fast-changing, an adaptable framework such as XPM or
scrum is recommended.
If the project deliverable is not well defined and is intangible in nature (such as software), a sprint
approach (such as scrum) may work best.
If the project is well-defined and stable, planning it out in its entirety decreases risks. Therefore,
PRINCE2 or waterfall should work best.
Frameworks may be chosen based on what your organization and stakeholders are familiar with. If
your company has never completed an XPM project before, introducing one may be difficult.
The priorities of your stakeholders will impact your framework. If waste is a critical concern, a lean
framework may be chosen.
Frameworks are designed to be flexible and adapt to the needs of a project. It may be that you will
end up borrowing pieces of separate frameworks as the circumstances of your project change.
59. Assignment Questions
Explain the Software Development Life Cycle (SDLC) phases?
What is Spiral model- advantages, disadvantages and when to use it?
What is V-model- advantages, disadvantages and when to use it?
What are the two important elements of the Waterfall Model?
What are the seven products described by the Waterfall Model?
When is software testing performed in the Waterfall Model?
What is software verification?
What is software validation?
Explain the purpose of iteration in the Waterfall Model.
Which process is the only process that does not involve iteration?