Effective Software Project Planning Guide
Effective Software Project Planning Guide
Ian Sommerville,
Software Engineering, 9th Edition
Pearson Education, Addison-Wesley
1
Topics covered
Project planning
Software pricing
Plan-driven development
Project scheduling
Agile planning
Estimation techniques
2
Project planning
3
Planning stages
Planning is done:
At the proposal stage, when you are bidding for a contract to
develop or provide a software system
A client needs a hospital management system, and your company submits a proposal describing
the features, cost, and timeline to win the contract.
During the project startup phase, when you have to plan who will
work on the project, how the project will be broken down into
increments, how resources will be allocated across your company,
etc.
One team is assigned to design the database, another to develop the user interface, and a tester
is allocated to handle quality checks.
Periodically throughout the project, when you modify your plan in
the light of experience gained and information from monitoring the
progress of the work
If the testing phase takes longer than expected, you adjust the schedule or assign more
developers to complete it on time.
4
Proposal planning
5
Software pricing
6
Factors affecting software pricing
Factor Description
Market opportunity A development organization may quote a low price because
it wishes to move into a new segment of the software
market. Accepting a low profit on one project may give the
organization the opportunity to make a greater profit later.
The experience gained may also help it develop new
products.
Cost estimate If an organization is unsure of its cost estimate, it may
uncertainty increase its price by a contingency over and above its
normal profit.
Contractual terms A customer may be willing to allow the developer to retain
ownership of the source code and reuse it in other projects.
The price charged may then be less than if the software
source code is handed over to the customer.
1.A new company develops a mobile banking app at a low price to gain recognition in the fintech
market. Later, it gets more profitable contracts from other banks.
3.A client allows a developer to reuse parts of an e-
[Link] a company is not sure how long testing will
learning platform in other projects, so the developer
take, it adds an extra 10% to the project cost to
charges ₹80,000 instead of ₹1,00,000.
stay safe.
7
Factors affecting software pricing
Factor Description
Requirements volatility If the requirements are likely to change, an organization
may lower its price to win a contract. After the contract is
awarded, high prices can be charged for changes to the
requirements.
Financial health Developers in financial difficulty may lower their price to
gain a contract. It is better to make a smaller than normal
profit or break even than to go out of business. Cash flow
is more important than profit in difficult economic times.
A client asks for a basic school management system.
The company gives a low quote to get the project. A startup struggling to pay salaries lowers its
Later, when the client requests adding online fee project price to get continuous work from clients.
payment and attendance tracking, the company Though profit is less, the steady income keeps the
charges extra for those new requirements. company running.
8
Plan-driven development
10
Project plans
11
Project plan supplements
Plan Description
Quality plan Describes the quality procedures and standards that
will be used in a project.
Validation plan Describes the approach, resources, and schedule used
for system validation.
Configuration management plan Describes the configuration management procedures
and structures to be used.
Maintenance plan Predicts the maintenance requirements, costs, and
effort.
Staff development plan Describes how the skills and experience of the project
team members will be developed.
13
The project planning process
14
Step Description Purpose
Determine limitations such as time,
1. Identify To understand what factors may restrict project
budget, manpower, and resources
Constraints activities.
before starting the project.
Recognize possible risks like delays,
To be prepared for problems that could impact
2. Identify Risks technical issues, or requirement
success.
changes.
Specify major stages (milestones) and
3. Define Milestones To track progress and ensure each phase has
expected outputs (deliverables) for
and Deliverables measurable results.
each stage.
4. Define Project Use a project planner tool to create a
To organize the sequence and timing of all tasks.
Schedule detailed timeline for all activities.
Execute tasks according to the project
5. Do the Work To begin development or implementation.
plan.
Continuously track project progress
6. Monitor Progress To ensure the project stays on time and within
and compare it with the planned
Against Plan scope.
schedule.
7. Minor Problems If small issues or delays occur, make
To correct small deviations early.
and Slippages adjustments without major changes.
If major issues arise, take corrective
8. Serious Problems To prevent project failure or severe delays.
actions.
Apply strategies to reduce or control
9. Initiate Risk
risks (e.g., add resources, change To minimize impact of serious risks. 15
Mitigation Actions
methods).
Project scheduling
16
Project scheduling activities
17
Point Explanation Purpose / Benefit
18
Milestones and deliverables
19
The project scheduling process
20
Step Activity Explanation Example
List all tasks that must be
completed in the project.
Designing UI, coding modules,
1 Identify Activities Activities are derived from
testing components, etc.
software requirements and
design information.
Determine the order of
Identify Activity Testing can start only after coding
2 tasks — find which activities
Dependencies is completed.
depend on others.
Estimate the resources
Estimate Resources for Coding may require 3 developers
3 needed for each task — like
Activities and 2 weeks.
time, manpower, and tools.
Assign team members to
Allocate People to Assign frontend developers for UI
4 specific activities based on
Activities design, testers for quality checks.
their skills.
Develop project schedules
(like Gantt charts) showing A bar chart showing all project
5 Create Project Charts
timelines, dependencies, phases and their timelines.
and responsibilities.
21
Scheduling problems
22
No Point Explanation Example
It is difficult to correctly
Estimating the difficulty of
estimate how complex a A team plans to build an app in 2
problems and hence the cost
1 problem is and how much months, but due to hidden issues and
of developing a solution is
time or cost will be needed changes, it actually takes 5 months.
hard
before starting the project.
Adding more people doesn’t
One developer can complete a website
Productivity is not always increase
in 10 days, but adding 9 more doesn’t
2 proportional to the number productivity. Coordination
make it finish in 1 day because of
of people working on a task and communication reduce
coordination time.
efficiency.
When a project is already
Adding people to a late A project is 2 weeks late. The manager
delayed, bringing new
project makes it later adds 3 new people to help, but senior
3 members adds more delay
because of communication developers spend time teaching them,
since existing members
overheads so the project becomes 4 weeks late.
must train and guide them.
Unexpected problems A project is planned for 3 months with 2
The unexpected always
always occur, so always weeks buffer. When a server fails for a
4 happens. Always allow
keep some extra time and week, the team still finishes on time due
contingency in planning.
budget as backup. to backup time.
23
Schedule representation
24
Tasks, durations, and dependencies
26
Staff allocation chart
Jane is handling several core tasks — starts with T1, later takes T3 and T9, then moves to T10
27 and
Agile planning
28
Concept Explanation Example
Agile methods are iterative approaches Example: Suppose you are
to software development — this means developing a food delivery app.
the project is done in small parts Instead of building the entire app at
Agile methods
(increments) instead of all at once. Each once, you first build the login
part adds new features that are tested module, then restaurant listing, then
and shown to the customer. order tracking, and so on.
In Agile, the exact features for each part Example: Initially, the team planned
Not planned
are not fixed at the beginning. The only “cash payment.” But after
fully in
team decides during development customer feedback, they add “UPI
advance
based on feedback and changing needs. payment” in the next increment.
Customer What goes into the next increment Example: The customer says tracking
priorities depends on the customer’s most is more important than offers, so the
decide the important needs and the project’s team works on order tracking before
features progress. discount coupons.
Example: If the customer later wants
Agile follows a flexible plan that can
“dark mode” or “voice ordering,” the
Flexible plan adjust to changes in requirements or
plan changes to include those in
priorities.
future increments.
29
Agile planning stages
31
Stage Description Example (Online Food Delivery App)
Identify user stories — short Example: “As a user, I want to track
1. Story
descriptions of what the user wants my food order so that I know when it
Identification
the software to do. will arrive.”
The team estimates time and effort
2. Initial for each story (using story points, Example: “Order tracking feature”
Estimation days, etc.) to understand the may take 8 story points or 2 weeks.
workload.
Example: Release 1 – Login & Browse
Decide which stories or features will
3. Release Restaurants, Release 2 – Order &
go into each release (months
Planning Payment, Release 3 – Order Tracking
ahead).
& Feedback
Short-term (2–4 weeks) plan
Example: In this 2-week iteration →
4. Iteration focusing on which stories to
work only on Order Tracking screens
Planning complete in the next iteration or
& backend.
sprint.
Break each user story into smaller Example: For “Order Tracking”: •
technical tasks (like coding, testing, Design tracking screen • Connect to
5. Task Planning
UI design). Assign them to team GPS API • Write backend service •
members. Test feature
32
Story-based planning
33
Estimation techniques
34
Experience-based approaches
36
Estimation accuracy
37
Estimate uncertainty
38
The COCOMO 2 model
39
COCOMO 2 models
40
COCOMO estimation models- four different software effort estimation
models and the metrics they use, along with the specific scenarios for which each model is best
suited .
41
Purpose/
Estimati
Metric (Input) Application Example Application
on Model
(Context)
Systems developed
Applicati using dynamic Estimating a low-code web portal
Number of on languages, DB where a visual builder is used to
application composit programming, etc. assemble $80\%$ of the components
points ion (suitable for (screens, database calls, reports)
model component-based rather than writing code manually.
assembly).
Initial effort
estimation based Calculating the complexity of a
Number of Early on system system based on its required inputs,
function design requirements and outputs, and stored data files to get a
points model design options preliminary effort estimate before
(used early in the any coding or detailed design begins.
lifecycle).
A new mobile application is planned
Effort to integrate to reuse a $20,000$-line
Number of
reusable authentication module from an
lines of code Reuse
components or existing project. The model estimates
reused or model
automatically the time needed to adapt, integrate,
generated
generated code. and test that existing code, not the
time to write it new.
Development effort After the architecture is finalized, the 42
Post- based on detailed team estimates the final product will
Number of
Key points
The price charged for a system does not just depend on its estimated
development costs; it may be adjusted depending on the market and
organizational priorities
Plan-driven development is organized around a complete project plan
that defines the project activities(task), the planned
effort(time&people), the activity schedule(start/finish) and who is
responsible for each activity
Project scheduling involves the creation of graphical representations
the project plan. Bar charts show the activity duration and staffing
timelines, are the most commonly used schedule representations.
The agile planning game involves the whole team in project planning.
The plan is developed incrementally and, if problems arise, is
adjusted. Software functionality(feature) is reduced instead of
delaying delivery of an increment.
43
Key points
44