Software Project Management (SPM) involves planning, monitoring, and controlling software projects to ensure they are delivered on time, within budget, and to the required quality.
๐ฏ Introduction to SPM
Software projects are unique โ they are intangible, complex, and subject to rapid changes in requirements. Project management provides the discipline to handle this complexity.
Scope
What to build
Schedule
When to deliver
Cost
Resources needed
Iron Triangle: Scope, Time, and Cost are interdependent. Fix two and the third must vary โ you can't have all three without trade-offs.
๐ Project Planning
Project planning is the core activity of SPM. It defines what needs to be done, who does it, when, and with what resources.
Work Breakdown Structure (WBS): Decompose the project into manageable tasks
Scheduling: Assign tasks to timelines (Gantt charts, PERT charts)
Resource Planning: Identify and assign human and material resources
Risk Planning: Identify potential risks and mitigation strategies
Quality Planning: Define quality standards and review checkpoints
๐ Software Project Management Plan (SPMP)
The SPMP is the formal document that describes how the project will be managed. It is the master plan that guides the entire project team.
The simplest size metric โ count the number of source code lines in the program. Usually excludes comments and blank lines.
Advantages of LOC
Easy to count automatically
Well-understood historically
Useful for calibrating other metrics
Disadvantages of LOC
Language-dependent โ 1 Java LOC โ 1 Assembly LOC
Penalizes programmers who write concise code
Cannot be measured before coding
No quality indicator
KLOC
Kilo Lines of Code โ simply LOC รท 1000. Used for expressing larger systems more conveniently. E.g., a 50,000-line system = 50 KLOC.
Function Points (FP)
Measures software size in terms of functionality delivered to the user, independent of programming language. Developed by Allan Albrecht at IBM (1979).
Function Point Components
Component
Description
Weight (Simple/Avg/Complex)
External Inputs (EI)
Data entering the system from outside
3 / 4 / 6
External Outputs (EO)
Data leaving the system
4 / 5 / 7
External Inquiries (EQ)
Input/output combinations (queries)
3 / 4 / 6
Internal Logical Files (ILF)
Data files maintained by system
7 / 10 / 15
External Interface Files (EIF)
Files used but not maintained
5 / 7 / 10
Function Point Calculation Steps
๐งฎ Project Estimation Techniques
Expert Judgment Technique
Uses the knowledge and experience of domain experts to estimate project size and effort. Often combined with Delphi technique โ multiple experts independently estimate, then discuss and converge.
Fast and low-cost
Works when similar projects exist in experience
Subjective โ bias risk
Software Metrics: LOC, KLOC, PM
Key Estimation Metrics at a Glance
COCOMO Model (Bonus)
COnstructive COst MOdel โ Barry Boehm (1981). Estimates effort and duration from KLOC.