Spmbit 1

Download as pdf or txt
Download as pdf or txt
You are on page 1of 18

1.

Activities Covered by Software Project Management


Software Project Management (SPM) encompasses a set of activities
designed to plan, execute, and monitor software projects to meet their
objectives efficiently. These activities include:
1. **Project Planning**: Establishing project goals, objectives, scope,
and defining the project strategy. This includes understanding client
requirements, setting deliverables, determining the timeline, and resource
allocation.
2. **Project Scheduling**: Creating a timeline for the project's
completion. Tools like Gantt charts or PERT charts are used to define when
each task will be started and finished, ensuring that the project adheres to
deadlines.
3. **Resource Allocation**: Identifying and assigning the necessary
resources such as human resources (developers, testers), hardware,
software tools, and budget.
4. **Risk Management**: Assessing risks that might affect the project
(e.g., budget overruns, delayed deadlines, technology failures), developing
mitigation strategies, and preparing contingency plans to minimize
impact.
5. **Cost Management**: Estimating project costs accurately and
managing the project within the assigned budget. This involves cost
estimation, budgeting, and controlling costs.
6. **Quality Management**: Ensuring that the project meets the client’s
quality expectations. This involves defining quality standards, creating a
quality plan, and implementing testing and review procedures.
7. **Communication Management**: Facilitating clear communication
among stakeholders (clients, developers, testers, management) by setting
up regular meetings, reporting, and feedback loops to ensure alignment
with project goals.
8. **Project Monitoring and Control**: Regularly reviewing progress,
identifying deviations from the plan, and implementing corrective
measures. Tools like Earned Value Management (EVM) are used to
compare the actual progress against the planned progress.
9. **Project Closure**: Formal closure of the project after deliverables
are met. This includes creating project documentation, final reports,
conducting post-project analysis (lessons learned), and ensuring client
acceptance.
SPM ensures that the project stays within scope, time, and budget
constraints while meeting quality requirements.
2. Overview of Stepwise Project Planning
Stepwise Project Planning is a systematic process for organizing and
managing the development of a software project. The stepwise approach
ensures that a project progresses through logical stages, improving the
chances of its success. The key steps involved in this approach are:
1. **Define Project Objectives and Scope**: Establish clear goals that the
project must achieve. Defining the scope helps prevent scope creep,
ensuring the project team only works on the agreed tasks.
2. **Project Feasibility Analysis**: Evaluate whether the project is viable in
terms of technical, financial, and resource requirements. Feasibility
studies assess whether the project can be completed with the available
technology, time, and budget.
3. **Establish Project Milestones**: Break down the project into phases or
stages, and set up milestones that act as checkpoints to review progress
and make necessary adjustments. Examples of milestones include
completing the design phase, developing core functionality, and
completing the testing phase.
4. **Breakdown of Tasks (WBS)**: Decompose the project into manageable
tasks through a **Work Breakdown Structure (WBS)**. WBS organizes
tasks hierarchically, providing a visual representation of the project’s
components.
5. **Resource Allocation and Assignment**: Allocate necessary resources
(human resources, hardware, software tools) and assign responsibilities
to team members. A resource plan ensures that every task is equipped
with the resources needed for successful completion.
6. **Risk Analysis and Management**: Identify potential risks (technical,
financial, or schedule-related), assess their likelihood and impact, and
devise mitigation strategies. This proactive approach ensures
preparedness for uncertainties and minimizes disruptions.
7. **Estimation of Effort and Cost**: Use software estimation techniques
like Function Points or COCOMO to calculate the required effort in
terms of person-hours and budget. Accurate effort and cost estimation
is critical for setting realistic timelines and budgets.
8. **Schedule Development**: Create a project schedule that outlines
when tasks will start and end. Tools like **Gantt Charts** and
**PERT/CPM diagrams** help in visualizing the timeline and
dependencies between tasks.
9. **Communication Plan**: Define how and when communication will
occur among project stakeholders. Regular updates, meetings, and
reports ensure that all stakeholders remain informed and engaged.
10. **Project Execution and Monitoring**: Execute the project as per the
plan while monitoring progress continuously. Compare actual progress
with the planned progress and use corrective actions when necessary to
keep the project on track.
Stepwise project planning reduces uncertainties and ensures the project
progresses smoothly by breaking it down into manageable steps.
3. Project Evaluation
Project evaluation is an essential step to determine a project’s feasibility
and viability before significant resources are committed. It involves
assessing the project from various perspectives to ensure it aligns with
organizational goals, can be executed within time and budget, and
delivers value. The key elements of project evaluation include:
1. **Strategic Assessment**: This evaluates whether the project aligns
with the overall business goals and strategy of the organization. Projects
that contribute directly to organizational objectives are given priority. For
example, a project that automates a key business process could be
strategically important.
2. **Technical Assessment**: It assesses the technical feasibility of the
project. This includes determining whether the technology required for
the project is available, whether the team has the necessary expertise, and
whether the infrastructure supports the project’s needs. The project must
also evaluate the technology stack's compatibility with existing systems.
3. **Cost-Benefit Analysis (CBA)**: This evaluates the financial viability
of the project by comparing its expected benefits against its costs. CBA
includes:
- **Tangible Benefits**: Increased revenue, reduced costs, and
productivity improvements.
- **Intangible Benefits**: Improved customer satisfaction, better
brand value.
Costs are assessed in terms of development, hardware, software, and
human resources. The project is considered viable if the benefits outweigh
the costs.
4. **Cash-Flow Forecasting**: This predicts the inflow and outflow of
money over the project’s lifecycle. It helps in understanding when the
project will require additional funding and when it will start generating
revenue or savings. Regular forecasting ensures that the project remains
financially sustainable.
5. **Cost-Benefit Evaluation Techniques**: Several methods are used to
evaluate the financial aspects of a project:
- **Net Present Value (NPV)**: This method discounts future cash
flows to their present value to determine whether the project will
generate a positive return.
- **Internal Rate of Return (IRR)**: Calculates the discount rate at
which the project’s net present value becomes zero.
- **Payback Period**: This measures how long it will take to
recoup the initial investment from the project’s cash inflows.
6. **Risk Evaluation**: This involves identifying, analyzing, and
prioritizing risks. Key risks include financial risks (cost overruns), technical
risks (technology failures), and operational risks (staff shortages). Risk
management strategies include risk avoidance, risk reduction, and risk
transfer (e.g., through insurance).
Project evaluation ensures that all key aspects—strategic, technical,
financial, and risk-related—are carefully assessed before the project
proceeds.
4. Software Effort Estimation Techniques
Effort estimation techniques help project managers predict the amount of
effort (in terms of person-hours or person-months) required to complete
a software project. Accurate effort estimation is critical for creating
realistic project schedules and budgets. Several widely used techniques
include:
1. **COCOMO (Constructive Cost Model)**:

COCOMO is an algorithmic model that estimates effort based on the


size of the software project measured in Lines of Code (LOC). It considers
different project types (organic, semi-detached, embedded) and adjusts
for factors such as complexity, reliability, and team experience. The basic
formula is:
- **Effort = A × (KLOC)^B**, where A and B are constants based on
the project type.
2. **Function Point Analysis (FPA)**:

Function Point Analysis estimates effort based on the software's


functionality rather than its size. It counts the number of inputs, outputs,
user interactions, files, and external interfaces. FPA adjusts for factors such
as data complexity and transaction types. This technique is particularly
useful for estimating the effort required for projects with high user
interaction.
3. **Delphi Technique**:

This is a group-based estimation method that gathers estimates from


multiple experts. The experts provide independent estimates, and the
results are iteratively refined until a consensus is reached. Delphi is useful
for reducing bias and improving the accuracy of estimates.
4. **Expert Judgment**:

Expert judgment relies on the experience and intuition of seasoned


professionals to estimate effort. Experts use their knowledge of similar
past projects to predict how much effort will be required for the current
project.
5. **Estimation by Analogy**:

This method compares the current project with similar past projects to
estimate effort. By identifying the similarities in project scope, size, and
complexity, effort estimates are adjusted based on historical data.
6. **PERT (Program Evaluation and Review Technique)**:

PERT uses probabilistic time estimates to calculate effort. It requires


estimating three values for each task:
- **Optimistic time (O)**: The best-case scenario.
- **Pessimistic time (P)**: The worst-case scenario.

- **Most Likely time (M)**: The most probable scenario.

The expected time (TE) is calculated using the formula:


- **TE = (O + 4M + P) / 6**.

PERT helps in estimating effort when there is uncertainty in task


durations.
Effort estimation techniques provide project managers with essential tools
to predict the required resources and timeline, contributing to effective
project planning and execution.
5. COCOMO Model
The **COCOMO (Constructive Cost Model)** is a widely used software
cost estimation model developed by Barry Boehm. It uses mathematical
formulas to predict the cost and effort required for software development.
The model estimates the number of person-months required to develop a
software system based on the size of the software measured in Lines of
Code (LOC). COCOMO comes in three main variations:
1. **Basic COCOMO**:

This is the simplest version of the COCOMO model, which estimates


effort as a function of software size. It is suitable for small, simple projects.
The formula for effort in Basic COCOMO is:
- **Effort (person-months) = A × (KLOC)^B**, where:

- **A** and **B** are constants based on the project type.

- **KLOC** represents the size of the software in thousands of lines


of code.
There are three types of projects in Basic COCOMO:
- **Organic**: Simple projects with small teams and low complexity
(e.g., payroll systems).
- **Semi-Detached**: Intermediate complexity with moderate-sized
teams (e.g., transaction processing systems).
- **Embedded**: Complex systems with real-time constraints (e.g.,
avionics software).
2. **Intermediate COCOMO**:

This version adds additional cost drivers to account for factors such as:
- **Product attributes**: Complexity, reliability, database size.

- **Hardware attributes**: Memory constraints, execution time.

- **Personnel attributes**: Experience level of the team, development


capability.
- **Project attributes**: Tools and methods used, schedule
constraints.
Intermediate COCOMO adjusts the basic formula based on these cost
drivers, making it more accurate for medium and large projects.
3. **Detailed COCOMO**:

Detailed COCOMO breaks the software project into phases


(requirements, design, coding, testing) and applies the COCOMO formula
to each phase separately. It uses multiple effort multipliers for each phase,
increasing the accuracy of the estimates. The model also allows for the
adjustment of the effort for each project phase, making it useful for large,
complex systems with varying requirements at different stages of
development.
The effort calculated in COCOMO is usually measured in person months,
which can then be translated into the total time and cost for the project.
4. **Limitations of COCOMO**:

- COCOMO relies heavily on the accuracy of the estimated Lines of


Code (LOC), which can be difficult to determine early in the project.
- The model assumes that effort and productivity are linearly related,
which may not always be the case.
- It may not account for modern development methodologies like
Agile, which focus on incremental delivery rather than traditional
project phases.
COCOMO remains a valuable tool for effort and cost estimation, especially
for large, well-defined projects. Its flexibility to account for various factors
(in Intermediate and Detailed versions) allows for more accurate
estimates.
6. Activity Planning: Projects and Activities
Activity planning is a critical step in project management that involves
organizing and scheduling tasks to ensure that a project progresses
smoothly and is completed on time. It ensures that the project’s
objectives are met by defining, sequencing, and scheduling tasks
effectively.
1. **Project Breakdown into Activities**:

Activity planning begins by breaking down the project into a series of


manageable tasks or activities. These activities represent the work that
needs to be completed to meet the project's objectives. The process often
involves creating a **Work Breakdown Structure (WBS)**, a hierarchical
decomposition of the project into smaller components.
2. **Defining Dependencies**:

Each activity in the project may depend on the completion of other


activities. These dependencies must be identified early in the planning
process to ensure tasks are scheduled in the correct sequence. For
example, coding can only begin after the design phase is completed.
3. **Time Estimation**:

Once the activities are defined, the next step is to estimate the time
required to complete each activity. This involves considering factors such
as the complexity of the task, the availability of resources, and potential
delays. Tools like **PERT** (Program Evaluation and Review Technique) or
expert judgment are used to estimate time.
4. **Resource Allocation**:

Resources such as team members, tools, and materials must be assigned


to each activity. Resource constraints (e.g., limited staff, budget, or
hardware) may affect the scheduling of tasks, so it’s important to allocate
resources optimally to ensure the project stays on track.
5. **Sequencing Activities**:

Activities must be sequenced based on their dependencies.


Sequencing ensures that tasks are completed in the right order, with no
bottlenecks or delays. **Critical Path Method (CPM)** is a common
technique used to identify the longest path of dependent activities and
calculate the minimum time required to complete the project.
6. **Creating the Project Schedule**:

After sequencing the tasks and estimating their durations, a project


schedule is created. Tools like **Gantt Charts** and **Network
Diagrams** visually represent the schedule, showing when each task will
start and finish, as well as the overall project timeline.
7. **Adjusting for Constraints**:

During activity planning, it’s important to adjust for constraints like


deadlines, budget limits, or resource availability. Some tasks may need to
be rescheduled or shortened to meet external deadlines or fit within a
limited budget.
8. **Monitoring and Adjusting the Plan**:

Once the project is underway, the activity plan must be continuously


monitored. Progress should be compared against the schedule, and any
deviations should be addressed immediately. If a task falls behind
schedule, adjustments like reassigning resources or extending deadlines
may be necessary.
9. **Critical Path Identification**:

The critical path is the longest sequence of dependent tasks that


determines the project’s minimum completion time. Delays in any critical
path activities will delay the overall project, so managing these tasks is
critical.
10. **Contingency Planning**:

It’s important to have contingency plans in place for high-risk activities.


If an activity is delayed, alternate plans should be ready to avoid
cascading delays in the project.
Activity planning is a systematic approach that ensures the project’s tasks
are well-organized, efficiently sequenced, and completed within the
defined timeline and budget.
7. Sequencing and Scheduling Activities
Sequencing and scheduling activities are critical elements in project
management. They ensure that the project’s tasks are completed in the
correct order and within the planned timeframe, leading to the successful
completion of the project.
1. **Identifying Activities**:

Before tasks can be sequenced, they must be identified. Activities


represent the work that needs to be done to complete the project. This
process often involves creating a **Work Breakdown Structure (WBS)**,
which breaks the project into smaller, manageable components.
2. **Defining Dependencies**:

Dependencies between tasks must be identified to determine the


correct sequence. Dependencies can be of several types:
- **Finish-to-Start (FS)**: Task A must finish before Task B can
start (e.g., design must be completed before development).
- **Start-to-Start (SS)**: Task A must start before Task B can start
(e.g., initial testing can begin as soon as a portion of development is
complete).
- **Finish-to-Finish (FF)**: Task A must finish before Task B can
finish (e.g., documentation can only be completed once testing is
done).
3. **Estimating Task Durations**:

Each task’s duration must be estimated to create an accurate schedule.


Techniques like **PERT** (Program Evaluation and Review Technique) or
**Expert Judgment** can be used. PERT uses three time estimates
(Optimistic, Pessimistic, and Most Likely) to calculate the expected time
for each task, making it particularly useful when there is uncertainty in
task durations.
4. **Sequencing Activities**:

After identifying dependencies, tasks are sequenced in the correct order.


This process ensures that tasks with dependencies are completed in a
logical sequence. **Network Diagrams** (also known as **Activity on
Node** diagrams) can be used to visualize task sequencing. These
diagrams show the relationships between tasks and highlight the order in
which tasks must be completed.
5. **Critical Path Method (CPM)**:

CPM is used to identify the **critical path** in the project, which is the
longest sequence of dependent tasks that determines the project’s
minimum completion time. Any delay in critical path tasks will delay the
entire project. Identifying the critical path helps project managers focus
on the most important tasks and allocate resources accordingly.
6. **Creating a Project Schedule**:

After sequencing tasks and estimating durations, the project schedule is


created. **Gantt Charts** are commonly used to display the project
schedule visually, showing task start and end dates and highlighting task
dependencies. **Milestones** (key points in the project) are also included
to track significant achievements.
7. **Adjusting for Resource Constraints**:

Resource availability may affect the scheduling of tasks. If resources


(e.g., team members, equipment) are limited, tasks may need to be
rescheduled or stretched out over a longer period. **Resource leveling**
is a technique used to adjust the schedule to match the availability of
resources.
8. **Handling Time Constraints**:

Time constraints such as deadlines or mandatory completion dates must


be considered when creating the schedule. If the project has strict
deadlines, tasks may need to be accelerated or additional resources may
be allocated to meet the deadline. Techniques like **Crashing** (adding
more resources to speed up tasks) or **Fast Tracking** (working on tasks
in parallel) can be used to shorten the project duration.
9. **Monitoring Progress**:

Once the schedule is in place, project managers must continuously


monitor progress. Regular comparisons between the actual progress and
the planned schedule help identify any deviations. **Earned Value
Management (EVM)** can be used to track progress by measuring project
performance against cost and schedule baselines.
10. **Updating the Schedule**:

The schedule may need to be updated as the project progresses. Delays,


unforeseen issues, or changes in project scope may require rescheduling
of tasks. Regular updates ensure the schedule remains accurate and
achievable.
Sequencing and scheduling activities ensure that project tasks are
completed in the right order, within the planned timeframe, and with
optimal use of resources, leading to the successful completion of the
project.
8. Network Planning Model
Network planning models play a vital role in project management by
helping project managers visualize, sequence, and schedule project
activities. They are used to ensure that all tasks are completed on time,
within the set budget, and with the available resources. Two of the most
widely used network planning models are **PERT (Program Evaluation and
Review Technique)** and **CPM (Critical Path Method)**. Both models
help in organizing project activities, identifying dependencies, and
calculating project completion time.
1. **Program Evaluation and Review Technique (PERT)**:
PERT is a statistical tool that was developed to manage complex and
uncertain projects, especially in research and development, where task
durations can be uncertain. It uses three time estimates to calculate the
expected duration of each task:
- **Optimistic Time (O)**: The shortest time in which a task can be
completed under ideal conditions.
- **Pessimistic Time (P)**: The longest time a task might take if things
go wrong.
- **Most Likely Time (M)**: The best estimate of how long the task will
usually take.
The expected duration of a task is calculated using the formula:
Expected Time (TE)=O+4M+P/6
Once the expected duration for each task is calculated, a network diagram
is constructed by sequencing tasks based on their dependencies. PERT
helps in identifying the **critical path**, which is the longest path through
the network, representing the minimum time required to complete the
project. Tasks on this path cannot be delayed without delaying the overall
project. PERT is especially useful in projects with high uncertainty in task
durations.
2. **Critical Path Method (CPM)**:
CPM is a deterministic network planning model primarily used in projects
with predictable and well-defined tasks. It focuses on determining the
critical path by identifying the longest sequence of tasks that must be
completed in sequence to finish the project on time. Tasks that are not on
the critical path have some flexibility (known as **slack**), meaning they
can be delayed without affecting the project’s completion date.
- **Critical Path**: The series of activities that determines the project’s
minimum completion time. Any delay in these activities will directly delay
the project.
- **Slack Time**: The amount of time that a task can be delayed
without delaying the project’s completion. Tasks with slack are not on the
critical path.
**CPM Steps**:
1. **List All Activities**: Break the project into tasks or activities.

2. **Sequence the Activities**: Identify dependencies and the order in


which tasks must be completed.
3. **Draw the Network Diagram**: Represent the activities and their
dependencies in a visual format using a network diagram.
4. **Estimate Duration**: Assign durations to each activity.

5. **Identify the Critical Path**: Calculate the longest path of dependent


tasks, which defines the project duration.
6. **Update the Plan**: As the project progresses, update the critical path
and make necessary adjustments.
CPM is highly effective in well-structured projects with clearly defined
tasks, such as construction projects or software development with well
established processes.
3. **Differences between PERT and CPM**:
- **Uncertainty**: PERT is better suited for projects with high
uncertainty (uses three time estimates), whereas CPM is used for projects
with predictable tasks (uses a single time estimate).
- **Flexibility**: PERT emphasizes task duration variability, while CPM
focuses on minimizing project duration.
- **Application**: PERT is used more in research and development or
innovative projects, while CPM is often used in construction,
manufacturing, or software projects with clear task structures.
4. **Advantages of Network Planning Models**:
- **Improved Visualization**: Both PERT and CPM provide a clear
visual representation of the project, showing task dependencies and
timelines.
- **Resource Optimization**: By identifying the critical path, managers
can focus on tasks that need the most attention, ensuring efficient
resource allocation.
- **Better Control**: Regular monitoring of the critical path helps in
maintaining control over the project schedule and costs.
- **Risk Identification**: Network models help in identifying potential
delays and risks by focusing on the critical path and tasks with little to no
slack.
5. **Limitations**:
- **Complexity**: For large projects, the network diagram can become
very complex, making it difficult to manage without specialized software
tools.
- **Estimation Challenges**: PERT relies on accurate time estimates,
which can be difficult to predict in some projects, leading to inaccurate
schedules.
- **Resource Constraints**: Neither PERT nor CPM directly accounts for
resource limitations, although they can be integrated with resource
allocation techniques.
6. **Application in Modern Projects**:
Network planning models are widely used in various industries such as
construction, software development, and event planning. In modern agile
and iterative methodologies, these models are adapted to handle shorter
project cycles but still serve as valuable tools for managing complex,
multi-task projects.
In conclusion, network planning models like PERT and CPM are essential
for project managers to effectively plan, schedule, and control projects.
They provide structured approaches to handle task sequencing, manage
time constraints, and ensure projects are completed on time.
1. Effort Estimation: Problems with Over and Under Estimation
Over and underestimating effort can lead to project issues.
Overestimation results in inefficient use of resources and higher costs,
while underestimation causes delays, resource shortages, and project
failure. Accurate estimation is key to aligning project timelines and
budgets.
1. Albrecht Function Point Analysis

Albrecht's Function Point Analysis (FPA) is a method for measuring the


size of software based on its functionality from the user's perspective. It
quantifies software by evaluating inputs, outputs, user interactions, files,
and interfaces to estimate the effort required for development.
2. Function Points Mark II

Function Points Mark II is a refined version of the original Function Point


Analysis. It focuses more on business functionality and emphasizes
complexity, user interactions, and the impact of external factors, providing
a more modern approach to sizing software.
3. Object Points

Object Points are used to estimate the effort for object-oriented software
development. They focus on counting classes, user interfaces, and
database entities, providing a metric for the complexity and size of an
object-oriented system.
4. Activity Planning: Projects and Activities (Short Overview)

Activity planning involves breaking a project into smaller, manageable


tasks, defining dependencies, estimating durations, and scheduling them
to ensure timely completion. Proper planning aligns activities with
available resources and deadlines for smooth project execution.

You might also like