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
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
- Early and continuous delivery.
- Embrace changing requirements.
- Frequent delivery of working software.
- Collaboration between business and developers.
- Build around motivated individuals.
- Face-to-face conversation is best.
- Working software is the primary measure of progress.
- Sustainable development.
- Technical excellence and good design.
- Simplicity—the art of maximizing work not done.
- Self-organizing teams.
- Regular reflection and adjustment.
Agile Methodologies
Method | Key Features |
---|---|
Scrum | Work in fixed sprints, daily standups, product backlog management. |
Kanban | Visualize work, limit work-in-progress, continuous delivery. |
Extreme Programming (XP) | Focus on engineering practices like pair programming, TDD. |
Lean Development | Minimize waste, maximize value. |
Scrum Framework
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
- 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
- What is the difference between the Triple and Quadruple Constraint Models?
- Why is Agile better suited for rapidly changing requirements?
- What are the three key roles in Scrum?
- 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.