CHAPTER FOUR
SOFTWARE PROJECT MANAGEMENT
By: Senbetu Abebe
Dec, 2022
JKU, Jinka, Ethiopia
Software project management
• Concerned with activities involved in ensuring that software is delivered on
time and on budget and in accordance with the requirements of the
organisations developing and procuring the software.
• Project management is needed because software development is always
subject to budget and schedule constraints that are set by the organisation
developing the software.
• Software project management is an essential part of software engineering
Experienced professional, Plenty of time, Enough budget
These all will leads to success if there would be good management.
Good management can not guarantee project success, however bad
management usually results in project failure.
Bad management may result: Late delivery, Increased cost, To fail to meet
customer requirement
The project managers are responsible :
• For planning and scheduling the development process.
What to do
When to do
How to do
Who will do
What to use
• For supervision to ensure that the project is going on
To the required standard
According to the schedule
Within budget
Basics of software engineering 12/22/2024 3
Software project management is a bit challenging than
managing other types of projects because :
• The product is intangible: - It is hard to claim a bridge is 90%
complete if there is not 90% of the bridge there.
It is easy to claim that a software project is 90% complete, even
if there are no visible outcomes.
• There are no standard software process: The technology
changes very quickly.
We don’t have much experience on large software projects.
• Large software projects are often "bespoke”.
Most large software systems are never-to-be-repeated, with
Basics of software engineering 12/22/2024 4
Management activities
• Project managers take responsibility for some or all of the
following activities according to the situation.
Proposal writing
Project scheduling and planning
project cost estimation
Project monitoring and reviews
Personnel selection and evaluation
Report writing and presentation
Basics of software engineering 12/22/2024 5
Project planning
• The biggest single problem that afflicts software developing
is that of underestimating resources required for a project.
• Developing a realistic project plan is essential to gain an
understanding of the resources required, and how these
should be applied.
Basics of software engineering 12/22/2024 6
Types of plan
• Software development plan: The central plan, which describes how the
system will be developed.
Specifies the order of work to be carried out, resources, responsibilities,
and so on.
• Quality assurance plan: Specifies the quality procedures & standards to be
used.
• Validation plan: Defines how a client will validate the system that has been
developed.
• Configuration management plan: Defines how the system will be
configured and installed.
• Maintenance plan: Defines how the system will be maintained.
• Staff development plan: Describes how the skills of the participants will be
Basics of software engineering 12/22/2024 7
Development plan should contain
1. Introduction: brief introduction to project
2. Project organization: intro to organizations, people, and their
roles
3. Risk Analysis: what are the key risks to the project?
4. Hardware and software resources: what h/ware and s/ware
resources will be required for the project and when
5. Work breakdown: the project divided into activities, milestones,
deliverables; dependencies between tasks etc
6. Project schedule: actual time required - allocation of dates
7. Reporting and progress measurement: mechanisms to monitor
Basics of software engineering 12/22/2024 8
Activity organization
• Activities in a project should be organised to produce
tangible outputs for management to judge progress.
• Milestones are the end-point of a process activity.
• Deliverables are project results delivered to customers.
• The waterfall process allows for the straightforward
definition of progress milestones.
Milestones in requirement process
ACTIVITIES
Feasibility Require ments Prototype Design Require ments
study analy sis development study specifica
tion
Feasibility User Evaluation Architectur
al System
report requirements report design requirements
MILESTONES
Software Engineering Concepts
Project
*
Activity
is produced by * consumes
WorkProduct * Task * Resources
System Participant
Model Time
Document Equipment
Basics of software engineering 12/22/2024 11
Project scheduling
• Split project into tasks and estimate time and resources
required to complete each task.
• Organize tasks concurrently to make optimal use of workforce.
• Minimize task dependencies to avoid delays caused by one
task waiting for another to complete.
• Dependent on project managers intuition and experience.
The project scheduling process
Identify Identify activity Estimate resources Allocate people Create project
activities dependencies for activities to activities charts
Software Activity charts
requirements and bar charts
Scheduling problems
• Estimating the difficulty of problems and hence the cost of
developing a solution is hard.
• Productivity is not proportional to the number of people working
on a task.
• Adding people to a late project makes it later because of
communication overheads.
• The unexpected always happens. Always allow contingency in
planning.
(+30% for anticipated possible problems, and +20% for
unexpected)
Bar charts
• Graphical notations used to illustrate the project schedule.
• Show project breakdown into tasks.
• Tasks should not be too small.
• They should take about a week or two.
• Activity charts show task dependencies and the critical path.
• Bar charts show schedule against calendar time.
Task durations and dependencies
Activity Duration (days) Dependencies
T1 8
T2 15
T3 15 T1 (M1)
T4 10
T5 10 T2, T4 (M2)
T6 5 T1, T2 (M3)
T7 20 T1 (M1)
T8 25 T4 (M5)
T9 15 T3, T6 (M4)
T10 15 T5, T7 (M7)
T11 7 T9 (M6)
T12 10 T11 (M8)
Activity timeline (Gantt chart)
4/7 11/7 18/7 25/7 1/8 8/8 15/8 22/8 29/8 5/9 12/9 19/9
Star
t
T4
T1
T2
M1
T7
T3
M5
T8
M3
M2
T6
T5
M4
T9
M7
T10
M6
T11
M8
T12
Finish
Staff allocation
4/7 11/7 18/7 25/7 1/8 8/8 15/8 22/8 29/8 5/9 12/9 19/9
Fred T4
T8 T11
T12
Jane T1
T3
T9
Anne T2
T6 T10
Jim T7
Mary T5
Put dependable staff on critical tasks
Risk management
• Involves anticipating risks that might affect the project schedule
or the quality of the software being developed and taking action
to avoid these risks.
• The results of risk analysis should be documented in the project
plan along with an analysis of the consequences of a risk
occurring.
• There are three categories of risks
Project risks: risks that affect the project schedule or resources
Product risks: risks that affect the quality or performance of the
software being developed.
Business risks: risks that affect the organization developing the
Basics of software engineering 12/22/2024 19
Risk management activities
• Risk identification: possible project, product and business
risks are identified.
• Risk analysis: consequences of the risks are identified
• Risk planning : plan then to address the risks by avoiding or
minimizing its impact on the project
• Risk monitoring: the risk is constantly assessed and plans
for risk mitigation are revised as more information about the
risk is gained.
Basics of software engineering 12/22/2024 20
• When planning a project, it is critically important to know what
the key risks are, and is possible plan for them:
Staff turnover
Management change
Hardware unavailability
Requirements change
Specification delays
Size underestimate
Technology change
Product competition
Basics of software engineering 12/22/2024 21
End of the Thank you!
Chapter!
22