# Portfolio management: deciding which projects get funded

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

- 16 steps across 2 layers
- Persona: Executives, Portfolio office, Project sponsors, Delivery teams

## Pain points

Where this process hurts, worst first:

- **Stop it and redirect the money** (Portfolio management: deciding which projects get funded; painful): Stopping projects is politically hard, but it frees capacity for better ones

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

## Portfolio management: deciding which projects get funded

Lanes:
- Executives: person / role (id `exec`)
- Portfolio office: person / role (id `pmo`)
- Project sponsors: person / role (id `sponsors`)
- Delivery teams: person / role (id `teams`)

Steps, in the order they run:

1. **Set the strategy and the budget for the year** [start; Executives; id `f1`]
   - then Submit project proposals
2. **Submit project proposals** [task; Project sponsors; id `f2`]
   - then Score each one for value, risk, cost and strategic fit
3. **Score each one for value, risk, cost and strategic fit** [subprocess; Portfolio office; id `f3`], opens the detail layer "Scoring a proposal"
   - then Rank them
4. **Rank them** [task; Portfolio office; id `f4`]
   - then Fit the ranked list into the budget and the capacity
5. **Fit the ranked list into the budget and the capacity** [task; Executives; id `f5`]
   - then Is the proposal funded?
6. **Is the proposal funded?** [decision; Executives; id `f6`]
   - if "Yes" go to Start the work; if "No" go to Defer it, rework it or stop
7. **Start the work** [task; Delivery teams; id `f7`]
   - then Review the portfolio every quarter
8. **Review the portfolio every quarter** [task; Portfolio office; id `f9`]
   - then Is each project still delivering value?
9. **Is each project still delivering value?** [decision; Portfolio office; id `f10`]
   - if "Yes" go to Continue and report; if "No" go to Stop it and redirect the money
10. **Continue and report** [task; Delivery teams; id `f11`]
   - then Review the portfolio every quarter
11. **Stop it and redirect the money** [task; Executives; id `f12`] ⚠ PAIN POINT (painful): Stopping projects is politically hard, but it frees capacity for better ones
   - then Review the portfolio every quarter
12. **Defer it, rework it or stop** [end; Project sponsors; id `f8`]

```mermaid
flowchart LR
  subgraph l_exec["Executives"]
    n_f1(["Set the strategy and the budget for the year"])
    n_f5["Fit the ranked list into the budget and the capacity"]
    n_f6{"Is the proposal funded?"}
    n_f12["Stop it and redirect the money"]
  end
  subgraph l_pmo["Portfolio office"]
    n_f3[["Score each one for value, risk, cost and strategic fit"]]
    n_f4["Rank them"]
    n_f9["Review the portfolio every quarter"]
    n_f10{"Is each project still delivering value?"}
  end
  subgraph l_sponsors["Project sponsors"]
    n_f2["Submit project proposals"]
    n_f8(["Defer it, rework it or stop"])
  end
  subgraph l_teams["Delivery teams"]
    n_f7["Start the work"]
    n_f11["Continue and report"]
  end
  n_f1 --> n_f2
  n_f2 --> n_f3
  n_f3 --> n_f4
  n_f4 --> n_f5
  n_f5 --> n_f6
  n_f6 -->|"Yes"| n_f7
  n_f6 -->|"No"| n_f8
  n_f7 --> n_f9
  n_f9 --> n_f10
  n_f10 -->|"Yes"| n_f11
  n_f10 -->|"No"| n_f12
  n_f12 --> n_f9
  n_f11 --> n_f9
```

### Scoring a proposal (detail of step "Score each one for value, risk, cost and strategic fit")

Lanes:
- Portfolio office: person / role (id `pmo`)

Steps, in the order they run:

1. **Rate the strategic fit** [start; Portfolio office; id `s1`]
   - then Estimate the benefit and the cost
2. **Estimate the benefit and the cost** [task; Portfolio office; id `s2`]
   - then Assess the risk
3. **Assess the risk** [task; Portfolio office; id `s3`]
   - then Combine them into one weighted score
4. **Combine them into one weighted score** [end; Portfolio office; id `s4`]

```mermaid
flowchart LR
  subgraph l_pmo["Portfolio office"]
    n_s1(["Rate the strategic fit"])
    n_s2["Estimate the benefit and the cost"]
    n_s3["Assess the risk"]
    n_s4(["Combine them into one weighted score"])
  end
  n_s1 --> n_s2
  n_s2 --> n_s3
  n_s3 --> n_s4
```

## Full data (JSON)

```json
{
  "title": "Portfolio management: deciding which projects get funded",
  "maps": {
    "m_root": {
      "id": "m_root",
      "lanes": [
        {
          "id": "exec",
          "name": "Executives",
          "type": "person"
        },
        {
          "id": "pmo",
          "name": "Portfolio office",
          "type": "person"
        },
        {
          "id": "sponsors",
          "name": "Project sponsors",
          "type": "person"
        },
        {
          "id": "teams",
          "name": "Delivery teams",
          "type": "person"
        }
      ],
      "steps": [
        {
          "id": "f1",
          "kind": "start",
          "lane": "exec",
          "next": [
            {
              "to": "f2"
            }
          ],
          "uses": [],
          "label": "Set the strategy and the budget for the year"
        },
        {
          "id": "f2",
          "kind": "task",
          "lane": "sponsors",
          "next": [
            {
              "to": "f3"
            }
          ],
          "uses": [],
          "label": "Submit project proposals"
        },
        {
          "id": "f3",
          "kind": "subprocess",
          "lane": "pmo",
          "next": [
            {
              "to": "f4"
            }
          ],
          "uses": [],
          "child": "m_score",
          "label": "Score each one for value, risk, cost and strategic fit"
        },
        {
          "id": "f4",
          "kind": "task",
          "lane": "pmo",
          "next": [
            {
              "to": "f5"
            }
          ],
          "uses": [],
          "label": "Rank them"
        },
        {
          "id": "f5",
          "kind": "task",
          "lane": "exec",
          "next": [
            {
              "to": "f6"
            }
          ],
          "uses": [],
          "label": "Fit the ranked list into the budget and the capacity"
        },
        {
          "id": "f6",
          "kind": "decision",
          "lane": "exec",
          "next": [
            {
              "to": "f7",
              "label": "Yes"
            },
            {
              "to": "f8",
              "label": "No"
            }
          ],
          "uses": [],
          "label": "Is the proposal funded?"
        },
        {
          "id": "f8",
          "kind": "end",
          "lane": "sponsors",
          "next": [],
          "uses": [],
          "label": "Defer it, rework it or stop"
        },
        {
          "id": "f7",
          "kind": "task",
          "lane": "teams",
          "next": [
            {
              "to": "f9"
            }
          ],
          "uses": [],
          "label": "Start the work"
        },
        {
          "id": "f9",
          "kind": "task",
          "lane": "pmo",
          "next": [
            {
              "to": "f10"
            }
          ],
          "uses": [],
          "label": "Review the portfolio every quarter"
        },
        {
          "id": "f10",
          "kind": "decision",
          "lane": "pmo",
          "next": [
            {
              "to": "f11",
              "label": "Yes"
            },
            {
              "to": "f12",
              "label": "No"
            }
          ],
          "uses": [],
          "label": "Is each project still delivering value?"
        },
        {
          "id": "f12",
          "kind": "task",
          "lane": "exec",
          "next": [
            {
              "to": "f9"
            }
          ],
          "pain": {
            "note": "Stopping projects is politically hard, but it frees capacity for better ones",
            "level": 2
          },
          "uses": [],
          "label": "Stop it and redirect the money"
        },
        {
          "id": "f11",
          "kind": "task",
          "lane": "teams",
          "next": [
            {
              "to": "f9"
            }
          ],
          "uses": [],
          "label": "Continue and report"
        }
      ],
      "title": "Portfolio management: deciding which projects get funded",
      "parent": null
    },
    "m_score": {
      "id": "m_score",
      "lanes": [
        {
          "id": "pmo",
          "name": "Portfolio office",
          "type": "person"
        }
      ],
      "steps": [
        {
          "id": "s1",
          "kind": "start",
          "lane": "pmo",
          "next": [
            {
              "to": "s2"
            }
          ],
          "uses": [],
          "label": "Rate the strategic fit"
        },
        {
          "id": "s2",
          "kind": "task",
          "lane": "pmo",
          "next": [
            {
              "to": "s3"
            }
          ],
          "uses": [],
          "label": "Estimate the benefit and the cost"
        },
        {
          "id": "s3",
          "kind": "task",
          "lane": "pmo",
          "next": [
            {
              "to": "s4"
            }
          ],
          "uses": [],
          "label": "Assess the risk"
        },
        {
          "id": "s4",
          "kind": "end",
          "lane": "pmo",
          "next": [],
          "uses": [],
          "label": "Combine them into one weighted score"
        }
      ],
      "title": "Scoring a proposal",
      "parent": {
        "map": "m_root",
        "step": "f3"
      }
    }
  }
}
```
