# From strategy to shipped: portfolio, program, project and sprint

> A process map exported from forks.world (https://forks.world). Author: Brian. Source: https://forks.world/p/cmv0kqa020045jv064fyyqzna
> 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

- 10 steps across 1 layer
- Persona: Executives, Portfolio office, Program manager, Project manager, Delivery team

## 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`.

## From strategy to shipped: portfolio, program, project and sprint

Lanes:
- Executives: person / role (id `exec`)
- Portfolio office: person / role (id `pmo`)
- Program manager: person / role (id `pgm`)
- Project manager: person / role (id `pm`)
- Delivery team: person / role (id `team`)

Steps, in the order they run:

1. **A strategy for the year** [start; Executives; id `s1`]
   - then Choose what to fund
2. **Choose what to fund** [subprocess; Portfolio office; id `s2`], links to the published process "Portfolio management: deciding which projects get funded" (https://forks.world/p/cmv0kq3ha002cjv06y87h2yxc; full text at https://forks.world/api/public/cmv0kq3ha002cjv06y87h2yxc/export)
   - then Coordinate the related projects
3. **Coordinate the related projects** [subprocess; Program manager; id `s3`], links to the published process "How program management coordinates many projects" (https://forks.world/p/cmv0kq30l0027jv06342ezamt; full text at https://forks.world/api/public/cmv0kq30l0027jv06342ezamt/export)
   - then Run each project
4. **Run each project** [subprocess; Project manager; id `s4`], links to the published process "The project lifecycle: initiate, plan, execute, monitor, close" (https://forks.world/p/cmv0kq0wj001njv06zo9y4l2b; full text at https://forks.world/api/public/cmv0kq0wj001njv06zo9y4l2b/export)
   - then Deliver in sprints
5. **Deliver in sprints** [subprocess; Delivery team; id `s5`], links to the published process "A Scrum sprint, from planning to retrospective" (https://forks.world/p/cmv0kq1g3001sjv06pdm7531l; full text at https://forks.world/api/public/cmv0kq1g3001sjv06pdm7531l/export)
   - then Manage the risks
6. **Manage the risks** [subprocess; Delivery team; id `s6`], links to the published process "Managing a project risk" (https://forks.world/p/cmv0kq3x4002hjv06juu5yuck; full text at https://forks.world/api/public/cmv0kq3x4002hjv06juu5yuck/export)
   - then Handle the changes
7. **Handle the changes** [subprocess; Project manager; id `s7`], links to the published process "Handling a change request (and scope creep)" (https://forks.world/p/cmv0kq4io002mjv06mvqc8o41; full text at https://forks.world/api/public/cmv0kq4io002mjv06mvqc8o41/export)
   - then Did the strategy move the needle?
8. **Did the strategy move the needle?** [decision; Executives; id `s8`]
   - if "Yes" go to Success; if "Partly" go to Rebalance the portfolio
9. **Success** [end; Executives; id `s9`]
10. **Rebalance the portfolio** [task; Portfolio office; id `s10`]
   - then Choose what to fund

```mermaid
flowchart LR
  subgraph l_exec["Executives"]
    n_s1(["A strategy for the year"])
    n_s8{"Did the strategy move the needle?"}
    n_s9(["Success"])
  end
  subgraph l_pmo["Portfolio office"]
    n_s2[["Choose what to fund"]]
    n_s10["Rebalance the portfolio"]
  end
  subgraph l_pgm["Program manager"]
    n_s3[["Coordinate the related projects"]]
  end
  subgraph l_pm["Project manager"]
    n_s4[["Run each project"]]
    n_s7[["Handle the changes"]]
  end
  subgraph l_team["Delivery team"]
    n_s5[["Deliver in sprints"]]
    n_s6[["Manage the risks"]]
  end
  n_s1 --> n_s2
  n_s2 --> n_s3
  n_s3 --> n_s4
  n_s4 --> n_s5
  n_s5 --> n_s6
  n_s6 --> n_s7
  n_s7 --> n_s8
  n_s8 -->|"Yes"| n_s9
  n_s8 -->|"Partly"| n_s10
  n_s10 --> n_s2
```

## Full data (JSON)

```json
{
  "title": "From strategy to shipped: portfolio, program, project and sprint",
  "maps": {
    "m_root": {
      "id": "m_root",
      "lanes": [
        {
          "id": "exec",
          "name": "Executives",
          "type": "person"
        },
        {
          "id": "pmo",
          "name": "Portfolio office",
          "type": "person"
        },
        {
          "id": "pgm",
          "name": "Program manager",
          "type": "person"
        },
        {
          "id": "pm",
          "name": "Project manager",
          "type": "person"
        },
        {
          "id": "team",
          "name": "Delivery team",
          "type": "person"
        }
      ],
      "steps": [
        {
          "id": "s1",
          "kind": "start",
          "lane": "exec",
          "next": [
            {
              "to": "s2"
            }
          ],
          "uses": [],
          "label": "A strategy for the year"
        },
        {
          "id": "s2",
          "kind": "subprocess",
          "lane": "pmo",
          "link": {
            "id": "cmv0kq3ha002cjv06y87h2yxc",
            "scope": "public",
            "title": "Portfolio management: deciding which projects get funded"
          },
          "next": [
            {
              "to": "s3"
            }
          ],
          "uses": [],
          "label": "Choose what to fund"
        },
        {
          "id": "s3",
          "kind": "subprocess",
          "lane": "pgm",
          "link": {
            "id": "cmv0kq30l0027jv06342ezamt",
            "scope": "public",
            "title": "How program management coordinates many projects"
          },
          "next": [
            {
              "to": "s4"
            }
          ],
          "uses": [],
          "label": "Coordinate the related projects"
        },
        {
          "id": "s4",
          "kind": "subprocess",
          "lane": "pm",
          "link": {
            "id": "cmv0kq0wj001njv06zo9y4l2b",
            "scope": "public",
            "title": "The project lifecycle: initiate, plan, execute, monitor, close"
          },
          "next": [
            {
              "to": "s5"
            }
          ],
          "uses": [],
          "label": "Run each project"
        },
        {
          "id": "s5",
          "kind": "subprocess",
          "lane": "team",
          "link": {
            "id": "cmv0kq1g3001sjv06pdm7531l",
            "scope": "public",
            "title": "A Scrum sprint, from planning to retrospective"
          },
          "next": [
            {
              "to": "s6"
            }
          ],
          "uses": [],
          "label": "Deliver in sprints"
        },
        {
          "id": "s6",
          "kind": "subprocess",
          "lane": "team",
          "link": {
            "id": "cmv0kq3x4002hjv06juu5yuck",
            "scope": "public",
            "title": "Managing a project risk"
          },
          "next": [
            {
              "to": "s7"
            }
          ],
          "uses": [],
          "label": "Manage the risks"
        },
        {
          "id": "s7",
          "kind": "subprocess",
          "lane": "pm",
          "link": {
            "id": "cmv0kq4io002mjv06mvqc8o41",
            "scope": "public",
            "title": "Handling a change request (and scope creep)"
          },
          "next": [
            {
              "to": "s8"
            }
          ],
          "uses": [],
          "label": "Handle the changes"
        },
        {
          "id": "s8",
          "kind": "decision",
          "lane": "exec",
          "next": [
            {
              "to": "s9",
              "label": "Yes"
            },
            {
              "to": "s10",
              "label": "Partly"
            }
          ],
          "uses": [],
          "label": "Did the strategy move the needle?"
        },
        {
          "id": "s10",
          "kind": "task",
          "lane": "pmo",
          "next": [
            {
              "to": "s2"
            }
          ],
          "uses": [],
          "label": "Rebalance the portfolio"
        },
        {
          "id": "s9",
          "kind": "end",
          "lane": "exec",
          "next": [],
          "uses": [],
          "label": "Success"
        }
      ],
      "title": "From strategy to shipped: portfolio, program, project and sprint",
      "parent": null
    }
  }
}
```
