Understanding the Project Life Cycle and the various project management methodologies is fundamental to successfully delivering any project, especially in software engineering. This topic explores the systematic phases a project traverses from concept to completion and introduces common frameworks used to guide these processes.
The project management life cycle is a structured approach that divides a project into several sequential phases, making it easier to manage and control. While variations exist, most frameworks recognize five core phases:
This is the very first stage where the project's feasibility and overarching goals are determined. The primary objective is to define the project at a high level and obtain authorization to proceed.
Once initiated, the project moves into the planning phase, where a detailed roadmap is developed to guide the team towards achieving the defined goals. This involves elaborating on the "what," "when," and "who" of the project.
This phase is where the planned work is carried out to achieve the project's objectives. Teams perform the tasks defined in the planning phase, while the project manager coordinates resources, manages stakeholder engagement, and facilitates team collaboration.
This phase runs concurrently with project execution. Its purpose is to track, review, and regulate the progress and performance of the project; identify any areas where the project plan is deviating; and take corrective actions.
Here's a C++ example demonstrating a simple project status tracker that could be used during the monitoring phase:
The final phase involves formally completing the project, releasing the project team, and handing over the final deliverables. It's also an opportunity to review the project's performance and document lessons learned for future projects.
Different projects call for different approaches. Project management methodologies provide frameworks to structure the project life cycle, each with its own strengths and weaknesses.
The Waterfall model is a traditional, linear-sequential approach where tasks and phases are completed in a distinct, predefined order. Each stage must be fully completed and reviewed before the next stage can begin, with no overlapping.
Diagrammatic Representation: Requirements -> Design -> Implementation -> Testing -> Deployment -> Maintenance
Advantages:
Disadvantages:
Agile methodology is an iterative and incremental approach that breaks projects down into smaller, dynamic phases, typically called sprints. It emphasizes flexibility, customer collaboration, cross-functional teams, and responding to change over following a rigid plan.
Agile Life Cycle (within a sprint/iteration):
Diagrammatic Representation (Iterative Nature): Sprint 1: Plan -> Design -> Develop -> Test -> Deploy -> Review | | V V Sprint 2: Plan -> Design -> Develop -> Test -> Deploy -> Review | | V V (and so on...)
Advantages:
Limitations:
The Spiral Model, proposed by Barry Boehm, is a risk-driven iterative software development model that combines aspects of the Waterfall model with prototyping. It provides systematic, iterative development with a strong emphasis on risk handling at every phase.
Phases of Each Loop in the Spiral:
Diagrammatic Representation: (Start) +-------------------------------------+ | (Review & Plan Next Phase) | | | V | Objectives ---> Risk Analysis ---> Development ---> (Customer Eval) ^ ^ | ^ | | V | | Risk Handling <----- Prototype | | +-------------------------------------+ (Next Iteration)
Advantages:
Disadvantages:
| Feature | Waterfall Methodology | Agile Methodology | | :---------------------- | :-------------------------------------------------- | :--------------------------------------------------------- | | Approach | Linear, sequential | Iterative, incremental | | Flexibility | Low; difficult to change requirements after early phases | High; adapts to changes throughout the project | | Requirements | Fixed and well-defined at the start | Evolving; can be refined throughout development | | Customer Involvement| Early phases (requirements) | Continuous throughout the project | | Deliverables | One large delivery at the end | Frequent, small deliveries of working software (sprints) | | Risk Management | Addressed mostly in early planning | Continuous; risks are identified and mitigated in each sprint | | Documentation | Extensive and comprehensive | Minimal, focuses on working software | | ** เหมาะสำหรับ ** | Projects with stable requirements, clear scope | Projects with evolving requirements, high uncertainty, innovation |
The sequence of distinct phases that a project passes through from its inception to its closure, providing a structured approach to managing work.
The five main stages—Initiation, Planning, Execution, Monitoring & Control, and Closure—that define the workflow of a project, each with specific objectives and deliverables.
A traditional, linear-sequential approach to software development where each phase must be completed and signed off before the next phase can begin, with no overlapping.
An iterative and incremental approach that breaks projects down into small, manageable 'sprints,' emphasizing flexibility, continuous feedback, and rapid adaptation to changing requirements.
A risk-driven iterative software development process model that combines elements of the Waterfall model with prototyping, focusing heavily on risk analysis and management throughout its numerous cycles.
Test your understanding with 5 questions
Which of the following is NOT typically considered one of the five core phases of the Project Management Life Cycle?
The Waterfall model is best suited for projects where:
Which project management methodology is characterized by short, iterative cycles known as 'sprints' and emphasizes customer collaboration and responding to change?
A project manager's task to define the 'What, When, and Who' for a project primarily occurs during which project management phase?
A significant advantage of the Spiral Model over the Waterfall model is its strong emphasis on:
6 Modules
6 Modules