SPM Unit - 1
SPM Unit - 1
SPM Unit - 1
Software Project Management is the process of planning, organizing, and overseeing the
development of software applications from inception to completion. It involves tasks such as
scheduling, resource allocation, risk management, communication, and quality assurance to
ensure that software projects are completed on time, within budget, and meet the specified
requirements.
For example: Development of a Mobile Banking Application
Suppose, a bank decides to develop a mobile banking application to provide its customers with
convenient access to their accounts, transfers, and other banking services.
Need for software project management
Software project management is crucial for several reasons:
1. Effective use of resources: Software project management ensures that resources such
as time, money, and personnel are used efficiently and effectively.
2. Better communication: Software project management involves effective
communication among team members, stakeholders, and clients, ensuring everyone is
on the same page.
3. Improved quality: Software project management focuses on delivering high-quality
software products that meet customer needs and expectations.
4. On-time delivery: With software project management, projects are completed on time,
meeting deadlines and ensuring timely delivery to clients.
5. Cost savings: Software project management helps to identify and mitigate risks
associated with software development, reducing the likelihood of costly mistakes or
rework.
6. Scope management: Software project management ensures that the project scope is
well-defined, and any changes are properly documented and approved, preventing
scope creep.
7. Risk management: Software project management identifies and mitigates risks
associated with software development, reducing the likelihood of project delays or
failures.
8. Improved team collaboration: Software project management fosters better
collaboration and communication among team members, ensuring everyone works
towards a common goal.
9. Enhanced transparency and accountability: Software project management provides
stakeholders with regular updates, ensuring transparency and accountability throughout
the project lifecycle.
10. Better decision-making: Software project management provides valuable insights and
data to make informed decisions and adjust project strategies accordingly.
2. Project Planning: This phase begins after the project receives a green light in the Initiation
phase.
The Project Planning phase is most critical and requires complete diligence as it lays out the
project’s roadmap. It involves defining the work to be done and figuring out how to accomplish
it. This is especially true for large and/ or complex projects, which are typically executed using
traditional methodologies.
The project manager begins setting goals with a project plan. A well-crafted project plan
outlines a detailed project schedule, communication plan to give direction to the team for
producing quality output and handling risks.
During the planning stage, the Project Manager defines the scope of the project and project
management plan that involves the cost, quality, resources and project timeline. The scope is
defined by the project manager with a scope statement and Work Breakdown Structure (WBS)
(the deliverables for the project).
3. Project Execution: The execution phase involved actually carrying out the activities that
are identified in the project plan. This is where the rubber hits the road and the project
ultimately comes to reality!
This is the stage where planning is turned into action. The project team is built. Specific people
and other resources are assigned to the tasks identified in the project plan. The project work is
carried out in the required sequence in order to complete all of the work in the most efficient
manner possible.
The key outcome of the Execution phase are the various deliverables that are produced in line
with the defined project plan. The project manager organizes the team members, establishes
workflow and constantly monitors progress, ensuring that work is done as per plan, while
maintaining effective collaboration between the project team and various stakeholders.
4. Project Monitoring & Control: This phase typically runs in parallel with the Project
Execution phase and involves keeping the project on track and ensuring that objectives and
project deliverables are met.
The project manager reports on the performance of the project and makes sure the project is
going according to plan. This helps track any deviations from the planned budget, timeline and
quality goals of the project.
Any necessary changes to the project goals are implemented after formal evaluation of the
potential impact to the project goals and acceptance/ approval of the impact by the project
stakeholders.
This phase also involves continuously monitoring the project environment for any risks or
issues that are likely to impact the project performance, and taking the necessary steps to
prevent or mitigate them as proactively as possible, to minimize impact to any of the project
goals.
5. Project Closure: Project Closure is the final phase of the project management life cycle,
which indicates the end of the project and the final delivery of the project deliverables.
Project Closure involves completion of the final delivery of a project and its approval by the
stakeholders. Once the project’s closure is formally approved, other aspects of the closure can
be carried out.
Once the above activities are completed, the project team members are released to other
projects.
In this step we Analyze and refine software requirements, software architecture, and
programmatic constraints. The Output of step1:
The purpose of this step is to define the work elements and procurements for the software
project that will be included in the software estimate. The Output of step2:
Below are 4 major steps (from Step 3 to Step 6) that play an important role in the estimation
of the software project:
Step 3: Estimating the size of the project
Estimating the size of the software to be developed is the very first step to make an effective
estimation of the project. A customer's requirements and system specification forms a baseline
for estimating the size of a software. At a later stage of the project, a system design document
can provide additional details for estimating the overall size of software.
• The ways to estimate project size can be through past data from an earlier
developed system. This is called estimation by analogy.
• The other way of estimation is through product feature/functionality. The system
is divided into several subsystems depending on functionality, and the size of each
subsystem is calculated.
When we are finished with the size estimation process, the next step is to estimate the effort
based on the size. The estimation of effort can be made from the organisational specifics of the
software development life cycle. The development of any application software system is more
than just coding of the system. Depending on deliverable requirements, the estimation of effort
for project will vary. Efforts are estimated in the number of man-months:
• The best way to estimate effort is based on the organisation's own historical data
of development process. Organizations follow similar development life cycle for
developing various applications.
• If the project is of a different nature which requires the organisation to adopt a
different strategy for development then different models based on algorithmic
approach can be devised to estimate effort.
After estimating the efforts, estimating the project schedule from the effort estimated is the
next step in the estimation process. The schedule for a project will generally depend on human
resources involved in a process. Efforts in man-months are translated to calendar months.
The parameter 3.0 is variable, used depending on the situation which works best for the
organisation. The outputs of step 5 are:
To estimate the total cost of the software project is the purpose of this step. The cost of a project
is derived not only from the estimates of effort and size but from other parameters such as
hardware, travel expenses, telecommunication costs, training cost etc. should also be taken into
account.
If a client tells you the project has to be done within six months, a top-down
approach allows you to take that overall timeline and estimate how much time you
can take for each activity within the project and still complete it on time.
6. Bottom-up estimate: A bottom-up estimate is the reverse of top-down. Using this
estimation technique, you start by estimating each individual task or aspect of the
project. Then you combine all those separate estimates to build up the overall
project estimate.
Since each activity is being assessed individually, this type of estimate tends to be
more accurate than the top-down approach. But it also takes more time.
Cost Estimation Models
Cost estimation models encompass mathematical algorithms or parametric equations utilized
to predict the cost of a product or project. Multiple techniques or models exist for cost
estimation, co mmonly referred to as Cost Estimation Models, as depicted below: