โ† Back to Cheat Sheets

๐Ÿ›ค๏ธ Delivery Approach Selector

Predictive vs Agile vs Hybrid โ€” decision tree and comparison
Process Domain ยท Methodology ยท Tailoring
๐ŸŒณ Decision Tree: Which Approach?
flowchart TD
  START["๐Ÿค” Choosing a delivery approach"]
  START --> Q1{"Are requirements
well-defined and stable?"} Q1 -->|"Yes โ€” clear scope"| Q2{"Is the technology
well-understood?"} Q1 -->|"No โ€” evolving"| Q3{"Is the customer
available for feedback?"} Q1 -->|"Partially"| HYBRID Q2 -->|"Yes"| PRED["๐Ÿ“ PREDICTIVE
(Waterfall)"] Q2 -->|"No โ€” new tech"| HYBRID["๐Ÿ”€ HYBRID"] Q3 -->|"Yes โ€” engaged"| AGILE["๐Ÿƒ AGILE"] Q3 -->|"No โ€” limited access"| HYBRID PRED --> P_USE["Use when:
โ€ข Construction, manufacturing
โ€ข Regulatory/compliance heavy
โ€ข Fixed-price contracts
โ€ข Clear deliverables"] AGILE --> A_USE["Use when:
โ€ข Software development
โ€ข Innovation/R&D
โ€ข Rapid market changes
โ€ข Customer collaboration"] HYBRID --> H_USE["Use when:
โ€ข Mixed certainty levels
โ€ข Some components clear, others not
โ€ข Organizational transition to agile
โ€ข Large programs with sub-projects"] style START fill:#fff7ed,stroke:#ea580c style Q1 fill:#fef3c7,stroke:#b45309 style Q2 fill:#fef3c7,stroke:#b45309 style Q3 fill:#fef3c7,stroke:#b45309 style PRED fill:#dbeafe,stroke:#2563eb style AGILE fill:#dcfce7,stroke:#16a34a style HYBRID fill:#ede9fe,stroke:#7c3aed style P_USE fill:#dbeafe,stroke:#2563eb style A_USE fill:#dcfce7,stroke:#16a34a style H_USE fill:#ede9fe,stroke:#7c3aed
๐Ÿ“Š Side-by-Side Comparison
Dimension๐Ÿ“ Predictive๐Ÿƒ Agile๐Ÿ”€ Hybrid
RequirementsFixed upfrontEvolving, emergentMix of fixed and evolving
PlanningDetailed upfrontJust-in-time, iterativeHigh-level upfront + iterative detail
DeliverySingle delivery at endIncremental every sprintPhased with incremental components
ChangeFormal change controlBacklog reprioritizationBoth mechanisms
Customer involvementBeginning and endContinuousVaries by component
Risk approachIdentify early, plan responsesReduce through short iterationsBoth strategies
Team structureFunctional, role-basedCross-functional, self-organizingMixed
DocumentationComprehensiveJust enoughTailored per component
Success measureScope delivered on time/budgetValue delivered to customerBoth
Best forConstruction, compliance, hardwareSoftware, innovation, R&DLarge programs, transitions
๐Ÿ—๏ธ When to Use Each

๐Ÿ“ Predictive (Waterfall)

Best when certainty is HIGH
  • Requirements are clear and stable
  • Technology is well-understood
  • Regulatory/compliance requirements
  • Fixed-price contracts
  • Sequential dependencies
  • Construction, manufacturing, infrastructure
  • Stakeholders want detailed plans upfront

๐Ÿƒ Agile

Best when uncertainty is HIGH
  • Requirements will evolve
  • Customer available for frequent feedback
  • Need to deliver value quickly
  • Innovation or R&D projects
  • Rapid market changes
  • Small, co-located teams
  • Software and digital products

๐Ÿ”€ Hybrid

Best when it's MIXED
  • Some components clear, others uncertain
  • Organization transitioning to agile
  • Large programs with diverse sub-projects
  • Need predictive governance + agile delivery
  • Hardware + software integration
  • Stakeholders need predictive reporting
  • Most real-world projects are hybrid
๐Ÿ’ก Exam Tips

~50% of the exam involves agile or hybrid. Don't prep waterfall-only.

Tailoring is key. PMI doesn't say one approach is always better โ€” the right answer is "tailor to the project context."

Hybrid is often the "safe" answer when the scenario describes mixed characteristics.

"Iterative" โ‰  "Agile". Iterative means repeating cycles. Incremental means delivering in pieces. Agile is both. Predictive can be iterative too (e.g., prototyping).

๐Ÿ”„ Life Cycle Patterns
flowchart LR
  subgraph pred ["๐Ÿ“ PREDICTIVE"]
    direction LR
    P1["Initiate"] --> P2["Plan"] --> P3["Execute"] --> P4["Close"]
  end
  subgraph iter ["๐Ÿ” ITERATIVE"]
    direction LR
    I1["Cycle 1
Build โ†’ Feedback"] --> I2["Cycle 2
Refine โ†’ Feedback"] --> I3["Cycle 3
Final โ†’ Deliver"] end subgraph incr ["๐Ÿ“ฆ INCREMENTAL"] direction LR N1["Increment 1
Feature A"] --> N2["Increment 2
Feature B"] --> N3["Increment 3
Feature C"] end subgraph agil ["๐Ÿƒ AGILE (Iterative + Incremental)"] direction LR A1["Sprint 1
Build + Deliver"] --> A2["Sprint 2
Build + Deliver"] --> A3["Sprint 3
Build + Deliver"] end style pred fill:#dbeafe,stroke:#2563eb style iter fill:#fef3c7,stroke:#b45309 style incr fill:#fce7f3,stroke:#c026d3 style agil fill:#dcfce7,stroke:#16a34a