Skip to main content

Software Project Management

Introduction

Managing software projects effectively requires technical, organizational, and interpersonal skills. This lecture explores traditional and agile project management models, success criteria, and best practices.


What is a Project?

A project is:

  • A temporary endeavor
  • With a defined beginning and end
  • That creates a unique product, service, or result

Projects are different from operations (ongoing work) because they are finite.


Software Development Lifecycle

sdlc


Defining Project Success

Triple Constraint:

  • Time: Completed within schedule.
  • Cost: Delivered within budget.
  • Scope: Met agreed-upon goals.

Quadruple Constraint:

  • Adds Quality: Was the outcome satisfactory?

Success = Balancing Time, Cost, Scope, and Quality


Key Factors for Successful Project Management

  • Clear, achievable objectives
  • Strong leadership and communication
  • Stakeholder engagement
  • Risk management and adaptability
  • Regular monitoring and feedback

Traditional Approach: Waterfall Model

Waterfall Model

  • Linear and sequential development process.
  • Each phase must complete before the next starts.
  • Best for well-defined, stable projects.

Phases: Requirements → Design → Implementation → Testing → Maintenance

Limitations:

  • Hard to accommodate changes late in the cycle.
  • Feedback only comes after significant project milestones.

Agile Development

Agile Overview

  • Developed to address the shortcomings of Waterfall.
  • Iterative and incremental development.
  • Welcomes changing requirements.
  • Prioritizes customer collaboration and working software.

Agile Manifesto

  • Individuals and interactions OVER Processes and tools
  • Working software OVER Comprehensive documentation
  • Customer collaboration OVER Contract negotiation
  • Responding to change OVER Following a plan

12 Key Principles of Agile

  1. Early and continuous delivery.
  2. Embrace changing requirements.
  3. Frequent delivery of working software.
  4. Collaboration between business and developers.
  5. Build around motivated individuals.
  6. Face-to-face conversation is best.
  7. Working software is the primary measure of progress.
  8. Sustainable development.
  9. Technical excellence and good design.
  10. Simplicity—the art of maximizing work not done.
  11. Self-organizing teams.
  12. Regular reflection and adjustment.

Agile Methodologies

MethodKey Features
ScrumWork in fixed sprints, daily standups, product backlog management.
KanbanVisualize work, limit work-in-progress, continuous delivery.
Extreme Programming (XP)Focus on engineering practices like pair programming, TDD.
Lean DevelopmentMinimize waste, maximize value.

Scrum Framework

scrum

Key Meetings

  • Sprint Planning: Plan upcoming sprint.
  • Daily Standup: Sync and address blockers.
  • Sprint Review: Demonstrate finished work.
  • Sprint Retrospective: Discuss and improve processes.

Scrum Roles

  • Product Owner: Manages product backlog.
  • Scrum Master: Facilitates the process.
  • Development Team: Builds and delivers the product.

Agile estimates work using User Stories and Story Points.


Kanban Approach

kanban

  • Visualize workflow on a board (Planned → In-Progress → Done).
  • Limit Work In Progress (WIP) to increase efficiency.
  • Continuous flow instead of fixed-length sprints.

Kanban is flexible and great for ongoing maintenance and support projects.


Best Practices in Agile Project Management

  • Maintain a prioritized, regularly updated backlog.
  • Deliver incremental value to users.
  • Emphasize team ownership and self-management.
  • Measure performance (Velocity, Burndown Charts).
  • Promote continuous improvement.

Reflection Questions

  1. What is the difference between the Triple and Quadruple Constraint Models?
  2. Why is Agile better suited for rapidly changing requirements?
  3. What are the three key roles in Scrum?
  4. How does Kanban help teams manage work more efficiently?

Summary

  • Effective software project management balances time, cost, scope, and quality.
  • Waterfall is suitable for projects with stable, well-defined requirements.
  • Agile methodologies like Scrum and Kanban are better for dynamic, evolving projects.
  • Strong communication, iteration, and customer feedback are central to modern project success.

Disclaimer: Generative AI was used in part to generate these lecture notes.