# The drive to work

> A process map exported from forks.world (https://forks.world). Author: Brian. Source: https://forks.world/p/cmv0iei26005yjw06qqtz33a7
> 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: You
- Technology / systems: Your car, Maps app, The road

## Pain points

Where this process hurts, worst first:

- **Text ahead that you will be a few minutes late** (The drive to work; painful): Stuck in traffic with nothing to do about it
- **Stop for gas (always on the day you are late)** (The drive to work; annoying): Always on the day you are late

## 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 drive to work

Lanes:
- You: person / role (id `me`)
- Your car: technology / system (id `car`)
- Maps app: technology / system (id `nav`)
- The road: technology / system (id `road`)

Steps, in the order they run:

1. **Get in the car and buckle up** [start; You; id `d1`]
   - then Is there enough gas?
2. **Is there enough gas?** [decision; Your car; id `d2`]
   - if "Yes" go to Check traffic and pick a route; if "No" go to Stop for gas (always on the day you are late)
3. **Check traffic and pick a route** [task; Maps app; id `d3`]
   - then Accident or a big delay ahead?
4. **Accident or a big delay ahead?** [decision; Maps app; id `d4`]
   - if "Yes" go to Reroute; if "No" go to Drive, with a podcast or music
5. **Reroute** [task; Maps app; id `d5`]
   - then Drive, with a podcast or music
6. **Drive, with a podcast or music** [task; You; id `d6`]
   - then Red light, green light, merge...
7. **Red light, green light, merge...** [task; The road; id `d7`]
   - then Is traffic worse than expected?
8. **Is traffic worse than expected?** [decision; You; id `d8`]
   - if "Yes" go to Text ahead that you will be a few minutes late; if "No" go to Park and walk in
9. **Text ahead that you will be a few minutes late** [task; You; id `d9`] ⚠ PAIN POINT (painful): Stuck in traffic with nothing to do about it
   - then Park and walk in
10. **Park and walk in** [subprocess; You; id `d10`], opens the detail layer "Parking"
   - then At work
11. **At work** [end; You; id `d11`]
12. **Stop for gas (always on the day you are late)** [task; You; id `d2a`] ⚠ PAIN POINT (annoying): Always on the day you are late
   - then Check traffic and pick a route

```mermaid
flowchart LR
  subgraph l_me["You"]
    n_d1(["Get in the car and buckle up"])
    n_d2a["Stop for gas (always on the day you are late)"]
    n_d6["Drive, with a podcast or music"]
    n_d8{"Is traffic worse than expected?"}
    n_d9["Text ahead that you will be a few minutes late"]
    n_d10[["Park and walk in"]]
    n_d11(["At work"])
  end
  subgraph l_car["Your car"]
    n_d2{"Is there enough gas?"}
  end
  subgraph l_nav["Maps app"]
    n_d3["Check traffic and pick a route"]
    n_d4{"Accident or a big delay ahead?"}
    n_d5["Reroute"]
  end
  subgraph l_road["The road"]
    n_d7["Red light, green light, merge..."]
  end
  n_d1 --> n_d2
  n_d2 -->|"Yes"| n_d3
  n_d2 -->|"No"| n_d2a
  n_d2a --> n_d3
  n_d3 --> n_d4
  n_d4 -->|"Yes"| n_d5
  n_d4 -->|"No"| n_d6
  n_d5 --> n_d6
  n_d6 --> n_d7
  n_d7 --> n_d8
  n_d8 -->|"Yes"| n_d9
  n_d8 -->|"No"| n_d10
  n_d9 --> n_d10
  n_d10 --> n_d11
```

### Parking (detail of step "Park and walk in")

Lanes:
- You: person / role (id `me`)
- Your car: technology / system (id `car`)

Steps, in the order they run:

1. **Look for a spot near the entrance** [start; You; id `p1`]
   - then Is there a free spot?
2. **Is there a free spot?** [decision; You; id `p2`]
   - if "Yes" go to Park, lock up, and remember where you left it; if "No" go to Circle once, then try the far lot
3. **Park, lock up, and remember where you left it** [end; Your car; id `p3`]
4. **Circle once, then try the far lot** [task; You; id `p4`]
   - then Is there a free spot?

```mermaid
flowchart LR
  subgraph l_me["You"]
    n_p1(["Look for a spot near the entrance"])
    n_p2{"Is there a free spot?"}
    n_p4["Circle once, then try the far lot"]
  end
  subgraph l_car["Your car"]
    n_p3(["Park, lock up, and remember where you left it"])
  end
  n_p1 --> n_p2
  n_p2 -->|"Yes"| n_p3
  n_p2 -->|"No"| n_p4
  n_p4 --> n_p2
```

## Full data (JSON)

```json
{
  "title": "The drive to work",
  "maps": {
    "m_park": {
      "id": "m_park",
      "lanes": [
        {
          "id": "me",
          "name": "You",
          "type": "person"
        },
        {
          "id": "car",
          "name": "Your car",
          "type": "system"
        }
      ],
      "steps": [
        {
          "id": "p1",
          "kind": "start",
          "lane": "me",
          "next": [
            {
              "to": "p2"
            }
          ],
          "uses": [],
          "label": "Look for a spot near the entrance"
        },
        {
          "id": "p2",
          "kind": "decision",
          "lane": "me",
          "next": [
            {
              "to": "p3",
              "label": "Yes"
            },
            {
              "to": "p4",
              "label": "No"
            }
          ],
          "uses": [],
          "label": "Is there a free spot?"
        },
        {
          "id": "p4",
          "kind": "task",
          "lane": "me",
          "next": [
            {
              "to": "p2"
            }
          ],
          "uses": [],
          "label": "Circle once, then try the far lot"
        },
        {
          "id": "p3",
          "kind": "end",
          "lane": "car",
          "next": [],
          "uses": [],
          "label": "Park, lock up, and remember where you left it"
        }
      ],
      "title": "Parking",
      "parent": {
        "map": "m_root",
        "step": "d10"
      }
    },
    "m_root": {
      "id": "m_root",
      "lanes": [
        {
          "id": "me",
          "name": "You",
          "type": "person"
        },
        {
          "id": "car",
          "name": "Your car",
          "type": "system"
        },
        {
          "id": "nav",
          "name": "Maps app",
          "type": "system"
        },
        {
          "id": "road",
          "name": "The road",
          "type": "system"
        }
      ],
      "steps": [
        {
          "id": "d1",
          "kind": "start",
          "lane": "me",
          "next": [
            {
              "to": "d2"
            }
          ],
          "uses": [],
          "label": "Get in the car and buckle up"
        },
        {
          "id": "d2",
          "kind": "decision",
          "lane": "car",
          "next": [
            {
              "to": "d3",
              "label": "Yes"
            },
            {
              "to": "d2a",
              "label": "No"
            }
          ],
          "uses": [],
          "label": "Is there enough gas?"
        },
        {
          "id": "d2a",
          "kind": "task",
          "lane": "me",
          "next": [
            {
              "to": "d3"
            }
          ],
          "pain": {
            "note": "Always on the day you are late",
            "level": 1
          },
          "uses": [],
          "label": "Stop for gas (always on the day you are late)"
        },
        {
          "id": "d3",
          "kind": "task",
          "lane": "nav",
          "next": [
            {
              "to": "d4"
            }
          ],
          "uses": [],
          "label": "Check traffic and pick a route"
        },
        {
          "id": "d4",
          "kind": "decision",
          "lane": "nav",
          "next": [
            {
              "to": "d5",
              "label": "Yes"
            },
            {
              "to": "d6",
              "label": "No"
            }
          ],
          "uses": [],
          "label": "Accident or a big delay ahead?"
        },
        {
          "id": "d5",
          "kind": "task",
          "lane": "nav",
          "next": [
            {
              "to": "d6"
            }
          ],
          "uses": [],
          "label": "Reroute"
        },
        {
          "id": "d6",
          "kind": "task",
          "lane": "me",
          "next": [
            {
              "to": "d7"
            }
          ],
          "uses": [],
          "label": "Drive, with a podcast or music"
        },
        {
          "id": "d7",
          "kind": "task",
          "lane": "road",
          "next": [
            {
              "to": "d8"
            }
          ],
          "uses": [],
          "label": "Red light, green light, merge..."
        },
        {
          "id": "d8",
          "kind": "decision",
          "lane": "me",
          "next": [
            {
              "to": "d9",
              "label": "Yes"
            },
            {
              "to": "d10",
              "label": "No"
            }
          ],
          "uses": [],
          "label": "Is traffic worse than expected?"
        },
        {
          "id": "d9",
          "kind": "task",
          "lane": "me",
          "next": [
            {
              "to": "d10"
            }
          ],
          "pain": {
            "note": "Stuck in traffic with nothing to do about it",
            "level": 2
          },
          "uses": [],
          "label": "Text ahead that you will be a few minutes late"
        },
        {
          "id": "d10",
          "kind": "subprocess",
          "lane": "me",
          "next": [
            {
              "to": "d11"
            }
          ],
          "uses": [],
          "child": "m_park",
          "label": "Park and walk in"
        },
        {
          "id": "d11",
          "kind": "end",
          "lane": "me",
          "next": [],
          "uses": [],
          "label": "At work"
        }
      ],
      "title": "The drive to work",
      "parent": null
    }
  }
}
```
