Software Project Management
Software Project Management
Software Project Management
UNIT 1
Short note on Project Scheduling
Project schedule simply means a mechanism that is used to communicate and know about that tasks are
needed and has to be done or performed and which organizational resources will be given or allocated to
these tasks and in what time duration or time frame work is needed to be performed. Effective project
scheduling leads to success of project, reduced cost, and increased customer satisfaction. Scheduling in
project management means to list out activities, deliverables, and milestones within a project that are
delivered. It contains more notes than your average weekly planner notes. The most common and important
form of project schedule is Gantt chart.
Problems arise during Project Development Stage:
Human effort
Sufficient disk space on server
Specialized hardware
Software technology
Travel allowance required by project staff, etc.
Task Set
A task set is a collection of individual tasks that need to be completed. Each task is a unit of work that
contributes to the overall goal of a project. The task set is essentially a list of all tasks, including their
descriptions, durations, and any other relevant attributes.
Components of a Task Set:
1. Task ID: A unique identifier for each task.
2. Task Description: A brief explanation of what the task involves.
3. Duration: The estimated time required to complete the task.
4. Dependencies: Other tasks that must be completed before this task can start.
5. Resources: The personnel, equipment, or materials required to complete the task.
6. Start Date: When the task is scheduled to begin.
7. End Date: When the task is expected to be finished.
8. Priority: The importance or urgency of the task.
9. Status: The current state of the task (e.g., not started, in progress, completed).
Task Network
A task network, also known as a project network diagram or task dependency diagram, is a graphical
representation of the tasks in a project and the dependencies between them. It shows the sequence in which
tasks must be completed and helps identify the critical path, which is the longest sequence of dependent
tasks that determines the shortest possible duration to complete the project.
Components of a Task Network:
Planned Value (PV): The total planned cost of the work scheduled to be completed at a given point
in time.
Earned Value (EV): The total cost of the work actually completed at a given point in time.
Actual Cost (AC): The total actual cost incurred to complete the work at a given point in time.
EVA provides a clear picture of the project's performance, indicating whether the project is ahead of
schedule and under budget or behind schedule and over budget. It helps project managers to identify
potential issues early on and take corrective actions to keep the project on track.
Work Breakdown Structure (WBS)
A Work Breakdown Structure (WBS) is a hierarchical decomposition of a project into smaller, more
manageable components. It breaks down the project into deliverables and work packages, helping to
organize and define the total scope of the project.
Purpose of WBS
Scope Management: Clearly defines the scope of the project, ensuring all necessary work is included.
Task Management: Breaks down complex activities into smaller tasks that are easier to manage and
assign.
Resource Allocation: Helps in the allocation and tracking of resources and responsibilities.
Cost Estimation: Provides a framework for estimating costs and budgeting.
Schedule Planning: Facilitates detailed scheduling and timeline development.
Performance Measurement: Enables tracking of progress and performance using techniques like
Earned Value Management (EVM
Structure of WBS
A WBS typically has multiple levels, with the project goal or deliverable at the top and progressively finer
levels of detail below. Here is a common hierarchical structure:
Level 1: Project Goal/Deliverable
Level 2: Major Deliverables/Phases
Level 3: Sub-deliverables/Work Packages, Level 4: Tasks/Activities
UNIT 2
Software Project Estimation
Software project estimation involves predicting the effort, time, and resources required to complete a
software development project. Accurate estimation is crucial for planning, budgeting, scheduling, and
managing projects effectively. It helps stakeholders set realistic expectations and manage risks associated
with the project.
Techniques for Software Project Estimation
1. Expert Judgment
Description: Relies on the experience and intuition of experts who have handled similar projects in the past.
Advantages: Quick, leverages expert knowledge, useful for novel projects.
Disadvantages: Subjective, may lack consistency, and can be biased.
Application: Used in initial stages or when historical data is limited.
2. Algorithmic Models
Description: Algorithmic models use mathematical formulas and historical data to estimate project effort,
time, and cost. These models often involve parameters such as project size, complexity, and team
productivity.
Advantages:
Can be highly accurate if the model is well-calibrated.
Provides a repeatable and systematic approach.
Disadvantages:
Requires detailed historical data and calibration.
Initial setup and learning curve can be time-consuming.
Application: Projects where sufficient historical data and parameters are available.
3. Estimation by Analogy
Description: Estimation by analogy involves comparing the current project with similar past projects and
using their actual effort, duration, and cost data to estimate the new project.
Advantages:
Based on real project data, which can increase accuracy.
Relatively quick compared to detailed bottom-up approaches.
Disadvantages:
Requires access to detailed data from past projects.
Accuracy depends on the similarity between projects.
Application:
Projects where detailed historical data from similar projects is available.
Describe empirical estimation models and their use in software project management.
Empirical estimation models are based on the statistical analysis of data collected from previous software
development projects. These models use historical data to make predictions about future software
development projects. The most commonly used empirical estimation models are COCOMO (Constructive
Cost Model) and its variants, such as COCOMO II and COCOMO 81.
COCOMO is a regression-based model that estimates the effort required to develop a software system based
on the size and complexity of the project. COCOMO II is an updated version of COCOMO that includes
additional factors such as team experience, software reuse, and development environment. COCOMO 81 is
a simplified version of COCOMO that uses only three factors to estimate the effort required to develop a
software system: size, complexity, and development environment.
Empirical estimation models are useful in software project management because they provide a more
accurate estimate of the effort and resources required for software development projects. However, these
models are only as good as the historical data used to build them, and they may not be accurate for projects
that are significantly different from the projects used to develop the model.
Explain estimation techniques for object-oriented projects, Agile development, and Web engineering
projects.
Object-oriented projects: In object-oriented projects, estimation is based on the size and complexity of
classes and objects. A common technique used for estimation in object-oriented projects is Function Point
Analysis (FPA), which takes into account the number of inputs, outputs, inquiries, files, and interfaces in the
system. Other techniques used for estimation in object-oriented projects include Object Points, Use Case
Points, and Feature Points.
Agile development: Agile development is a methodology that emphasizes iterative and incremental
development, where requirements and solutions evolve through the collaborative effort of self-organizing
and cross-functional teams. Estimation in Agile development is typically done using story points, which are
a measure of the relative size and complexity of user stories. A user story is a high-level definition of a
requirement, expressed in a way that can be understood by both the development team and the customer.
Web engineering projects: Estimation in Web engineering projects is based on the size and complexity of
the website or web application. A common technique used for estimation in Web engineering projects is
Web Function Point Analysis (WebFPA), which takes into account the number of pages, forms, and other
web-specific features in the system. Other techniques used for estimation in Web engineering projects
include Web Object Points and Web Use Case Points.
Define cost-benefit analysis and its importance in software project management.
Cost-benefit analysis is a decision-making technique used in software project management to determine the
economic feasibility of a project by comparing the costs of implementing the project with the benefits it will
generate. It involves identifying and quantifying all costs and benefits associated with a project and then
analyzing them to determine if the benefits justify the costs.
Steps in Cost-Benefit Analysis
1. Identify Costs:
Direct Costs: Costs that are directly attributable to the project, such as salaries, software, hardware,
and training.
Indirect Costs: Overhead costs not directly linked to the project, such as utilities and office space.
2. Identify Benefits:
Tangible Benefits: Measurable benefits like increased revenue, reduced costs, and improved
productivity.
Intangible Benefits: Benefits that are harder to quantify, such as improved customer satisfaction,
better decision-making, and enhanced company reputation.
Explain the objectives of activity planning and the importance of project scheduling.
The objectives of activity planning in project management are to effectively organize and sequence project
activities, allocate resources efficiently, and ensure timely completion of the project.
Activity planning helps in identifying the specific tasks or activities required to achieve project goals and
objectives.
It provides a structured approach to prioritize and schedule activities, ensuring that they are completed in the
right order and at the right time.
Project scheduling is important as it helps in allocating resources effectively and managing dependencies
between activities.
It enables project managers to create a timeline or project schedule, outlining the start and end dates for each
activity and the overall project.
Project scheduling helps in identifying critical activities and the critical path, which are essential for
completing the project on time.
It allows for better coordination and communication among project team members and stakeholders by
providing a clear timeline of activities.
Effective activity planning and project scheduling contribute to improved project control, resource
utilization, and overall project success.