# The project lifecycle: initiate, plan, execute, monitor, close

> A process map exported from forks.world (https://forks.world). Author: Brian. Source: https://forks.world/p/cmv0kq0wj001njv06zo9y4l2b
> It describes who does what, in what order, and with which technology. Read the plain-language sections first; the JSON at the end is the exact, complete data.

## Summary

- 43 steps across 7 layers
- Persona: Sponsor, Project manager, The team, Stakeholders, PMO and governance

## Pain points

Where this process hurts, worst first:

- **Take corrective action, or raise a change request** (The project lifecycle: initiate, plan, execute, monitor, close; painful): Scope creep and late surprises are the top reasons projects miss their goals

## How to read this file

- A process is made of **layers**. The main layer is the top level; any step of kind `subprocess` opens a detail layer with its own lanes and steps.
- **Lanes** are either persona (people/roles) or technology (systems). Each step belongs to one lane; `using` lists tools a person uses for that step.
- Step kinds: `start`, `task`, `decision` (its arrows carry the answer as a label), `subprocess`, `end`.

## The project lifecycle: initiate, plan, execute, monitor, close

Lanes:
- Sponsor: person / role (id `sponsor`)
- Project manager: person / role (id `pm`)
- The team: person / role (id `team`)
- Stakeholders: person / role (id `stake`)
- PMO and governance: person / role (id `pmo`)

Steps, in the order they run:

1. **A business need or an idea appears** [start; Sponsor; id `p1`]
   - then Initiate: write the business case and the charter
2. **Initiate: write the business case and the charter** [subprocess; Project manager; id `p2`], opens the detail layer "Initiating"
   - then Approved to proceed?
3. **Approved to proceed?** [decision; PMO and governance; id `p3`]
   - if "Yes" go to Plan: scope, schedule, budget, risks and communication; if "No" go to Rework the case, or drop the idea
4. **Plan: scope, schedule, budget, risks and communication** [subprocess; Project manager; id `p4`], opens the detail layer "Planning"
   - then The plan is reviewed and baselined
5. **The plan is reviewed and baselined** [task; Stakeholders; id `p5`]
   - then Kickoff meeting
6. **Kickoff meeting** [task; The team; id `p6`]
   - then Execute: do the work
7. **Execute: do the work** [subprocess; The team; id `p7`], opens the detail layer "Executing"
   - then Monitor: track progress, cost, quality and risks
8. **Monitor: track progress, cost, quality and risks** [subprocess; Project manager; id `p8`], opens the detail layer "Monitoring"
   - then On track against the baseline?
9. **On track against the baseline?** [decision; Project manager; id `p9`]
   - if "Yes" go to Is there more work to do?; if "No" go to Take corrective action, or raise a change request
10. **Is there more work to do?** [decision; The team; id `p10`]
   - if "Yes" go to Execute: do the work; if "No" go to Acceptance: the customer signs off
11. **Acceptance: the customer signs off** [task; Stakeholders; id `p11`]
   - then Close: handover, lessons learned, release the team
12. **Close: handover, lessons learned, release the team** [subprocess; Project manager; id `p12`], opens the detail layer "Closing"
   - then Benefits are measured later
13. **Benefits are measured later** [end; Sponsor; id `p13`]
14. **Take corrective action, or raise a change request** [subprocess; Project manager; id `p9a`] ⚠ PAIN POINT (painful): Scope creep and late surprises are the top reasons projects miss their goals, opens the detail layer "A change request"
   - then Is there more work to do?
15. **Rework the case, or drop the idea** [end; Sponsor; id `p3a`]

```mermaid
flowchart LR
  subgraph l_sponsor["Sponsor"]
    n_p1(["A business need or an idea appears"])
    n_p3a(["Rework the case, or drop the idea"])
    n_p13(["Benefits are measured later"])
  end
  subgraph l_pm["Project manager"]
    n_p2[["Initiate: write the business case and the charter"]]
    n_p4[["Plan: scope, schedule, budget, risks and communication"]]
    n_p8[["Monitor: track progress, cost, quality and risks"]]
    n_p9{"On track against the baseline?"}
    n_p9a[["Take corrective action, or raise a change request"]]
    n_p12[["Close: handover, lessons learned, release the team"]]
  end
  subgraph l_team["The team"]
    n_p6["Kickoff meeting"]
    n_p7[["Execute: do the work"]]
    n_p10{"Is there more work to do?"}
  end
  subgraph l_stake["Stakeholders"]
    n_p5["The plan is reviewed and baselined"]
    n_p11["Acceptance: the customer signs off"]
  end
  subgraph l_pmo["PMO and governance"]
    n_p3{"Approved to proceed?"}
  end
  n_p1 --> n_p2
  n_p2 --> n_p3
  n_p3 -->|"Yes"| n_p4
  n_p3 -->|"No"| n_p3a
  n_p4 --> n_p5
  n_p5 --> n_p6
  n_p6 --> n_p7
  n_p7 --> n_p8
  n_p8 --> n_p9
  n_p9 -->|"Yes"| n_p10
  n_p9 -->|"No"| n_p9a
  n_p9a --> n_p10
  n_p10 -->|"Yes"| n_p7
  n_p10 -->|"No"| n_p11
  n_p11 --> n_p12
  n_p12 --> n_p13
```

### Executing (detail of step "Execute: do the work")

Lanes:
- The team: person / role (id `team`)
- Project manager: person / role (id `pm`)
- Stakeholders: person / role (id `stake`)

Steps, in the order they run:

1. **Build the deliverables** [start; The team; id `e1`]
   - then Is the quality acceptable?
2. **Is the quality acceptable?** [decision; The team; id `e2`]
   - if "Yes" go to Hold regular status meetings; if "No" go to Rework
3. **Hold regular status meetings** [task; Project manager; id `e3`]
   - then Receive the updates
4. **Receive the updates** [end; Stakeholders; id `e4`]
5. **Rework** [task; The team; id `e2a`]
   - then Is the quality acceptable?

```mermaid
flowchart LR
  subgraph l_team["The team"]
    n_e1(["Build the deliverables"])
    n_e2{"Is the quality acceptable?"}
    n_e2a["Rework"]
  end
  subgraph l_pm["Project manager"]
    n_e3["Hold regular status meetings"]
  end
  subgraph l_stake["Stakeholders"]
    n_e4(["Receive the updates"])
  end
  n_e1 --> n_e2
  n_e2 -->|"Yes"| n_e3
  n_e2 -->|"No"| n_e2a
  n_e2a --> n_e2
  n_e3 --> n_e4
```

### Initiating (detail of step "Initiate: write the business case and the charter")

Lanes:
- Project manager: person / role (id `pm`)

Steps, in the order they run:

1. **Define the problem and the goals** [start; Project manager; id `i1`]
   - then Estimate the costs and the benefits
2. **Estimate the costs and the benefits** [task; Project manager; id `i2`]
   - then Identify the stakeholders
3. **Identify the stakeholders** [task; Project manager; id `i3`]
   - then Draft the charter: scope, authority, sponsor
4. **Draft the charter: scope, authority, sponsor** [end; Project manager; id `i4`]

```mermaid
flowchart LR
  subgraph l_pm["Project manager"]
    n_i1(["Define the problem and the goals"])
    n_i2["Estimate the costs and the benefits"]
    n_i3["Identify the stakeholders"]
    n_i4(["Draft the charter: scope, authority, sponsor"])
  end
  n_i1 --> n_i2
  n_i2 --> n_i3
  n_i3 --> n_i4
```

### Planning (detail of step "Plan: scope, schedule, budget, risks and communication")

Lanes:
- Project manager: person / role (id `pm`)
- The team: person / role (id `team`)

Steps, in the order they run:

1. **Break the scope into work packages (a WBS)** [start; Project manager; id `pl1`]
   - then Estimate the effort for each package
2. **Estimate the effort for each package** [task; The team; id `pl2`]
   - then Sequence the work and find the critical path
3. **Sequence the work and find the critical path** [task; Project manager; id `pl3`]
   - then Set the budget and the schedule baseline
4. **Set the budget and the schedule baseline** [task; Project manager; id `pl4`]
   - then List the risks and the communication plan
5. **List the risks and the communication plan** [end; Project manager; id `pl5`]

```mermaid
flowchart LR
  subgraph l_pm["Project manager"]
    n_pl1(["Break the scope into work packages (a WBS)"])
    n_pl3["Sequence the work and find the critical path"]
    n_pl4["Set the budget and the schedule baseline"]
    n_pl5(["List the risks and the communication plan"])
  end
  subgraph l_team["The team"]
    n_pl2["Estimate the effort for each package"]
  end
  n_pl1 --> n_pl2
  n_pl2 --> n_pl3
  n_pl3 --> n_pl4
  n_pl4 --> n_pl5
```

### Closing (detail of step "Close: handover, lessons learned, release the team")

Lanes:
- Project manager: person / role (id `pm`)
- The team: person / role (id `team`)

Steps, in the order they run:

1. **Confirm all deliverables are accepted** [start; Project manager; id `cl1`]
   - then Hand over to operations
2. **Hand over to operations** [task; The team; id `cl2`]
   - then Hold a lessons-learned session
3. **Hold a lessons-learned session** [task; Project manager; id `cl3`]
   - then Archive the records and close the contracts
4. **Archive the records and close the contracts** [end; Project manager; id `cl4`]

```mermaid
flowchart LR
  subgraph l_pm["Project manager"]
    n_cl1(["Confirm all deliverables are accepted"])
    n_cl3["Hold a lessons-learned session"]
    n_cl4(["Archive the records and close the contracts"])
  end
  subgraph l_team["The team"]
    n_cl2["Hand over to operations"]
  end
  n_cl1 --> n_cl2
  n_cl2 --> n_cl3
  n_cl3 --> n_cl4
```

### A change request (detail of step "Take corrective action, or raise a change request")

Lanes:
- Stakeholders: person / role (id `stake`)
- Project manager: person / role (id `pm`)
- PMO and governance: person / role (id `pmo`)

Steps, in the order they run:

1. **Request a change** [start; Stakeholders; id `c1`]
   - then Assess the impact on scope, cost and schedule
2. **Assess the impact on scope, cost and schedule** [task; Project manager; id `c2`]
   - then Approve?
3. **Approve?** [decision; PMO and governance; id `c3`]
   - if "Yes" go to Update the baseline; if "No" go to Decline and explain
4. **Update the baseline** [task; Project manager; id `c4`]
   - then Informed
5. **Informed** [end; Stakeholders; id `c6`]
6. **Decline and explain** [task; Project manager; id `c5`]
   - then Informed

```mermaid
flowchart LR
  subgraph l_stake["Stakeholders"]
    n_c1(["Request a change"])
    n_c6(["Informed"])
  end
  subgraph l_pm["Project manager"]
    n_c2["Assess the impact on scope, cost and schedule"]
    n_c4["Update the baseline"]
    n_c5["Decline and explain"]
  end
  subgraph l_pmo["PMO and governance"]
    n_c3{"Approve?"}
  end
  n_c1 --> n_c2
  n_c2 --> n_c3
  n_c3 -->|"Yes"| n_c4
  n_c3 -->|"No"| n_c5
  n_c4 --> n_c6
  n_c5 --> n_c6
```

### Monitoring (detail of step "Monitor: track progress, cost, quality and risks")

Lanes:
- Project manager: person / role (id `pm`)

Steps, in the order they run:

1. **Compare actual progress to the plan** [start; Project manager; id `m1`]
   - then Is the variance over the threshold?
2. **Is the variance over the threshold?** [decision; Project manager; id `m2`]
   - if "Yes" go to Escalate to the sponsor; if "No" go to Update the forecast
3. **Escalate to the sponsor** [task; Project manager; id `m3`]
   - then Update the forecast
4. **Update the forecast** [end; Project manager; id `m4`]

```mermaid
flowchart LR
  subgraph l_pm["Project manager"]
    n_m1(["Compare actual progress to the plan"])
    n_m2{"Is the variance over the threshold?"}
    n_m3["Escalate to the sponsor"]
    n_m4(["Update the forecast"])
  end
  n_m1 --> n_m2
  n_m2 -->|"Yes"| n_m3
  n_m2 -->|"No"| n_m4
  n_m3 --> n_m4
```

## Full data (JSON)

```json
{
  "title": "The project lifecycle: initiate, plan, execute, monitor, close",
  "maps": {
    "m_exec": {
      "id": "m_exec",
      "lanes": [
        {
          "id": "team",
          "name": "The team",
          "type": "person"
        },
        {
          "id": "pm",
          "name": "Project manager",
          "type": "person"
        },
        {
          "id": "stake",
          "name": "Stakeholders",
          "type": "person"
        }
      ],
      "steps": [
        {
          "id": "e1",
          "kind": "start",
          "lane": "team",
          "next": [
            {
              "to": "e2"
            }
          ],
          "uses": [],
          "label": "Build the deliverables"
        },
        {
          "id": "e2",
          "kind": "decision",
          "lane": "team",
          "next": [
            {
              "to": "e3",
              "label": "Yes"
            },
            {
              "to": "e2a",
              "label": "No"
            }
          ],
          "uses": [],
          "label": "Is the quality acceptable?"
        },
        {
          "id": "e2a",
          "kind": "task",
          "lane": "team",
          "next": [
            {
              "to": "e2"
            }
          ],
          "uses": [],
          "label": "Rework"
        },
        {
          "id": "e3",
          "kind": "task",
          "lane": "pm",
          "next": [
            {
              "to": "e4"
            }
          ],
          "uses": [],
          "label": "Hold regular status meetings"
        },
        {
          "id": "e4",
          "kind": "end",
          "lane": "stake",
          "next": [],
          "uses": [],
          "label": "Receive the updates"
        }
      ],
      "title": "Executing",
      "parent": {
        "map": "m_root",
        "step": "p7"
      }
    },
    "m_init": {
      "id": "m_init",
      "lanes": [
        {
          "id": "pm",
          "name": "Project manager",
          "type": "person"
        }
      ],
      "steps": [
        {
          "id": "i1",
          "kind": "start",
          "lane": "pm",
          "next": [
            {
              "to": "i2"
            }
          ],
          "uses": [],
          "label": "Define the problem and the goals"
        },
        {
          "id": "i2",
          "kind": "task",
          "lane": "pm",
          "next": [
            {
              "to": "i3"
            }
          ],
          "uses": [],
          "label": "Estimate the costs and the benefits"
        },
        {
          "id": "i3",
          "kind": "task",
          "lane": "pm",
          "next": [
            {
              "to": "i4"
            }
          ],
          "uses": [],
          "label": "Identify the stakeholders"
        },
        {
          "id": "i4",
          "kind": "end",
          "lane": "pm",
          "next": [],
          "uses": [],
          "label": "Draft the charter: scope, authority, sponsor"
        }
      ],
      "title": "Initiating",
      "parent": {
        "map": "m_root",
        "step": "p2"
      }
    },
    "m_plan": {
      "id": "m_plan",
      "lanes": [
        {
          "id": "pm",
          "name": "Project manager",
          "type": "person"
        },
        {
          "id": "team",
          "name": "The team",
          "type": "person"
        }
      ],
      "steps": [
        {
          "id": "pl1",
          "kind": "start",
          "lane": "pm",
          "next": [
            {
              "to": "pl2"
            }
          ],
          "uses": [],
          "label": "Break the scope into work packages (a WBS)"
        },
        {
          "id": "pl2",
          "kind": "task",
          "lane": "team",
          "next": [
            {
              "to": "pl3"
            }
          ],
          "uses": [],
          "label": "Estimate the effort for each package"
        },
        {
          "id": "pl3",
          "kind": "task",
          "lane": "pm",
          "next": [
            {
              "to": "pl4"
            }
          ],
          "uses": [],
          "label": "Sequence the work and find the critical path"
        },
        {
          "id": "pl4",
          "kind": "task",
          "lane": "pm",
          "next": [
            {
              "to": "pl5"
            }
          ],
          "uses": [],
          "label": "Set the budget and the schedule baseline"
        },
        {
          "id": "pl5",
          "kind": "end",
          "lane": "pm",
          "next": [],
          "uses": [],
          "label": "List the risks and the communication plan"
        }
      ],
      "title": "Planning",
      "parent": {
        "map": "m_root",
        "step": "p4"
      }
    },
    "m_root": {
      "id": "m_root",
      "lanes": [
        {
          "id": "sponsor",
          "name": "Sponsor",
          "type": "person"
        },
        {
          "id": "pm",
          "name": "Project manager",
          "type": "person"
        },
        {
          "id": "team",
          "name": "The team",
          "type": "person"
        },
        {
          "id": "stake",
          "name": "Stakeholders",
          "type": "person"
        },
        {
          "id": "pmo",
          "name": "PMO and governance",
          "type": "person"
        }
      ],
      "steps": [
        {
          "id": "p1",
          "kind": "start",
          "lane": "sponsor",
          "next": [
            {
              "to": "p2"
            }
          ],
          "uses": [],
          "label": "A business need or an idea appears"
        },
        {
          "id": "p2",
          "kind": "subprocess",
          "lane": "pm",
          "next": [
            {
              "to": "p3"
            }
          ],
          "uses": [],
          "child": "m_init",
          "label": "Initiate: write the business case and the charter"
        },
        {
          "id": "p3",
          "kind": "decision",
          "lane": "pmo",
          "next": [
            {
              "to": "p4",
              "label": "Yes"
            },
            {
              "to": "p3a",
              "label": "No"
            }
          ],
          "uses": [],
          "label": "Approved to proceed?"
        },
        {
          "id": "p3a",
          "kind": "end",
          "lane": "sponsor",
          "next": [],
          "uses": [],
          "label": "Rework the case, or drop the idea"
        },
        {
          "id": "p4",
          "kind": "subprocess",
          "lane": "pm",
          "next": [
            {
              "to": "p5"
            }
          ],
          "uses": [],
          "child": "m_plan",
          "label": "Plan: scope, schedule, budget, risks and communication"
        },
        {
          "id": "p5",
          "kind": "task",
          "lane": "stake",
          "next": [
            {
              "to": "p6"
            }
          ],
          "uses": [],
          "label": "The plan is reviewed and baselined"
        },
        {
          "id": "p6",
          "kind": "task",
          "lane": "team",
          "next": [
            {
              "to": "p7"
            }
          ],
          "uses": [],
          "label": "Kickoff meeting"
        },
        {
          "id": "p7",
          "kind": "subprocess",
          "lane": "team",
          "next": [
            {
              "to": "p8"
            }
          ],
          "uses": [],
          "child": "m_exec",
          "label": "Execute: do the work"
        },
        {
          "id": "p8",
          "kind": "subprocess",
          "lane": "pm",
          "next": [
            {
              "to": "p9"
            }
          ],
          "uses": [],
          "child": "m_monitor",
          "label": "Monitor: track progress, cost, quality and risks"
        },
        {
          "id": "p9",
          "kind": "decision",
          "lane": "pm",
          "next": [
            {
              "to": "p10",
              "label": "Yes"
            },
            {
              "to": "p9a",
              "label": "No"
            }
          ],
          "uses": [],
          "label": "On track against the baseline?"
        },
        {
          "id": "p9a",
          "kind": "subprocess",
          "lane": "pm",
          "next": [
            {
              "to": "p10"
            }
          ],
          "pain": {
            "note": "Scope creep and late surprises are the top reasons projects miss their goals",
            "level": 2
          },
          "uses": [],
          "child": "m_change",
          "label": "Take corrective action, or raise a change request"
        },
        {
          "id": "p10",
          "kind": "decision",
          "lane": "team",
          "next": [
            {
              "to": "p7",
              "label": "Yes"
            },
            {
              "to": "p11",
              "label": "No"
            }
          ],
          "uses": [],
          "label": "Is there more work to do?"
        },
        {
          "id": "p11",
          "kind": "task",
          "lane": "stake",
          "next": [
            {
              "to": "p12"
            }
          ],
          "uses": [],
          "label": "Acceptance: the customer signs off"
        },
        {
          "id": "p12",
          "kind": "subprocess",
          "lane": "pm",
          "next": [
            {
              "to": "p13"
            }
          ],
          "uses": [],
          "child": "m_close",
          "label": "Close: handover, lessons learned, release the team"
        },
        {
          "id": "p13",
          "kind": "end",
          "lane": "sponsor",
          "next": [],
          "uses": [],
          "label": "Benefits are measured later"
        }
      ],
      "title": "The project lifecycle: initiate, plan, execute, monitor, close",
      "parent": null
    },
    "m_close": {
      "id": "m_close",
      "lanes": [
        {
          "id": "pm",
          "name": "Project manager",
          "type": "person"
        },
        {
          "id": "team",
          "name": "The team",
          "type": "person"
        }
      ],
      "steps": [
        {
          "id": "cl1",
          "kind": "start",
          "lane": "pm",
          "next": [
            {
              "to": "cl2"
            }
          ],
          "uses": [],
          "label": "Confirm all deliverables are accepted"
        },
        {
          "id": "cl2",
          "kind": "task",
          "lane": "team",
          "next": [
            {
              "to": "cl3"
            }
          ],
          "uses": [],
          "label": "Hand over to operations"
        },
        {
          "id": "cl3",
          "kind": "task",
          "lane": "pm",
          "next": [
            {
              "to": "cl4"
            }
          ],
          "uses": [],
          "label": "Hold a lessons-learned session"
        },
        {
          "id": "cl4",
          "kind": "end",
          "lane": "pm",
          "next": [],
          "uses": [],
          "label": "Archive the records and close the contracts"
        }
      ],
      "title": "Closing",
      "parent": {
        "map": "m_root",
        "step": "p12"
      }
    },
    "m_change": {
      "id": "m_change",
      "lanes": [
        {
          "id": "stake",
          "name": "Stakeholders",
          "type": "person"
        },
        {
          "id": "pm",
          "name": "Project manager",
          "type": "person"
        },
        {
          "id": "pmo",
          "name": "PMO and governance",
          "type": "person"
        }
      ],
      "steps": [
        {
          "id": "c1",
          "kind": "start",
          "lane": "stake",
          "next": [
            {
              "to": "c2"
            }
          ],
          "uses": [],
          "label": "Request a change"
        },
        {
          "id": "c2",
          "kind": "task",
          "lane": "pm",
          "next": [
            {
              "to": "c3"
            }
          ],
          "uses": [],
          "label": "Assess the impact on scope, cost and schedule"
        },
        {
          "id": "c3",
          "kind": "decision",
          "lane": "pmo",
          "next": [
            {
              "to": "c4",
              "label": "Yes"
            },
            {
              "to": "c5",
              "label": "No"
            }
          ],
          "uses": [],
          "label": "Approve?"
        },
        {
          "id": "c4",
          "kind": "task",
          "lane": "pm",
          "next": [
            {
              "to": "c6"
            }
          ],
          "uses": [],
          "label": "Update the baseline"
        },
        {
          "id": "c5",
          "kind": "task",
          "lane": "pm",
          "next": [
            {
              "to": "c6"
            }
          ],
          "uses": [],
          "label": "Decline and explain"
        },
        {
          "id": "c6",
          "kind": "end",
          "lane": "stake",
          "next": [],
          "uses": [],
          "label": "Informed"
        }
      ],
      "title": "A change request",
      "parent": {
        "map": "m_root",
        "step": "p9a"
      }
    },
    "m_monitor": {
      "id": "m_monitor",
      "lanes": [
        {
          "id": "pm",
          "name": "Project manager",
          "type": "person"
        }
      ],
      "steps": [
        {
          "id": "m1",
          "kind": "start",
          "lane": "pm",
          "next": [
            {
              "to": "m2"
            }
          ],
          "uses": [],
          "label": "Compare actual progress to the plan"
        },
        {
          "id": "m2",
          "kind": "decision",
          "lane": "pm",
          "next": [
            {
              "to": "m3",
              "label": "Yes"
            },
            {
              "to": "m4",
              "label": "No"
            }
          ],
          "uses": [],
          "label": "Is the variance over the threshold?"
        },
        {
          "id": "m3",
          "kind": "task",
          "lane": "pm",
          "next": [
            {
              "to": "m4"
            }
          ],
          "uses": [],
          "label": "Escalate to the sponsor"
        },
        {
          "id": "m4",
          "kind": "end",
          "lane": "pm",
          "next": [],
          "uses": [],
          "label": "Update the forecast"
        }
      ],
      "title": "Monitoring",
      "parent": {
        "map": "m_root",
        "step": "p8"
      }
    }
  }
}
```
