Merge branch 'main' into development

This commit is contained in:
Stephan Lo 2025-06-08 13:32:18 +02:00
commit eea07c97cb

View file

@ -0,0 +1,820 @@
# Mobbing / Ensemble programming
Es gibt eine Reihe von Erfahrungen aus Teams, die (Remote-)Mob Programming oder ähnliches wie *ensemble programming*, *pair programming*, oder *swarming* praktizieren oft mit vergleichbarer Teamzusammensetzung und ähnlichen Dynamiken über die Zeit.
### Typischer Verlauf bei Mob Programming (grob in Phasen):
1. **Initiale Euphorie & hoher Output** durch hohe Energie, Fokus und enge Zusammenarbeit (oft durch starke Facilitator oder Leads getrieben).
2. **Erste Ermüdungserscheinungen** durch Daueraufmerksamkeit, Entscheidungsmüdigkeit, reduzierte Eigenverantwortung.
3. **Reflexion und Wunsch nach mehr Balance** Aufkommen von Fragen zur langfristigen Skalierung, individuellen Entwicklung, Ownership, usw.
## Annahme
Nach 3 Wochen Mobbing-Initialisierung steen wir jetzt in Phase 3. Das ist gesund und sogar notwendig, damit sich euer Arbeitsmodus weiterentwickeln kann.
---
## 🔁 Mögliche Strategien (aus der Praxis)
### 1. **Rotierende Mobs / kleinere Ensembles**
Statt alle 10 Personen in einem Mob:
* Aufteilung in 23 *kleinere Mobs* (z.B. 34 Personen), z.B. entlang von Features, Domänen oder Zielen.
* Wöchentlicher Austausch oder Cross-Sessions zum gegenseitigen Updaten („*Mob Review*“).
* Gute Rotation nach 12 Wochen, damit kein Wissen isoliert wird (Stichwort: *knowledge silos vermeiden*).
**Beispiel**: Ein Team bei [Spotify](https://spotify.design/article/2022-04-20_mob-programming-the-spotify-way) hat ab Woche 4 ihre Mobs in „Feature-Mobs“ aufgeteilt und alle 2 Wochen durchgemischt.
---
### 2. **Mob/Pair/Alone-Zyklen**
Einige Teams fahren gut mit einem **wechselnden Modus**:
| Wochentag | Modus |
| --------- | ------------------------------------- |
| Mo | Mob |
| DiMi | Pairs / Alone |
| Do | Mob |
| Fr | Review / Pair Debug / Wissenstransfer |
Das erlaubt *fokussiertes individuelles Arbeiten*, aber auch regelmäßige Syncs und gemeinsamen Code-Review mit Mob-Anteil.
---
### 3. **Wissenstransfer durch „Mob Review“ oder „Mob Replay“**
Wenn nicht alle ständig im Mob sind, kann man regelmäßig kurze Sessions einführen, z.B.:
* 30min-Session: „Was wurde erreicht?“, mit Screensharing & Walkthrough.
* Jeder darf Fragen stellen, Ideen einwerfen.
* So bleibt das Wissen verteilt, auch wenn nur 23 aktiv gecodet haben.
---
### 4. **Entlastung der Senior Leads (Coach statt Treiber)**
Gerade bei größeren Teams besteht sonst Burnout-Gefahr.
Empfehlung:
* Fokus auf Coaching: Fragen stellen, Perspektiven eröffnen, Review geben aber **nicht dauerhaft den Driver/Navigator machen**.
* Junioren moderieren lassen, auch wenns holprig wird. Wachstum passiert genau da.
---
### 5. **Explicit Mob Agreements & Retros**
Erfolgreiche Mobs leben von **klaren Erwartungen & Feedbackschleifen**:
* Wie lange dauert eine Session?
* Wer ist Driver? Navigator? Observer? Wer wechselt wann?
* Wie kommunizieren wir Entscheidungen?
→ Regelmäßige Miro-Retros oder kurze „Mob Health Checks“ (z.B. wöchentlich mit einem simplen Niko-Niko oder Stimmungsbarometer) helfen, frühzeitig Überlastung zu erkennen.
---
## 🧭 Vergleichbare Erfahrungsberichte
1. **Llewellyn Falco & Woody Zuill (Mob Programming Erfinder)**:
* Empfehlen *dauerhaft kleine Mobs* mit max. 45 Personen.
* Betonung auf "Mob Programming ist kein Dogma", sondern "Just a tool when it makes sense".
2. **Spotify**:
* Hat Mob Programming erfolgreich in verteilten Teams eingesetzt, aber mit hoher Rotation und wechselnden Modi (Mob/Pair/Individuell).
* Setzen stark auf „Mob Coaching“ durch Chapter Leads statt dauerhaftes Treiben.
3. **Basecamp / 37Signals**:
* Kein klassisches Mob Programming, aber stark auf kleine Units mit klarem Fokus und regelmäßigen Check-ins.
* Betonung auf Deep Work und wenig Synchronisation dafür aber bewusst geplante Sync-Zeiten.
---
## 🧠 Empfehlung für euer Team (konkret)
* 💬 **Retrospektive machen**: Was läuft gut? Was stresst? Wo braucht ihr Veränderung?
* 🔀 **Aufteilen in 23 Mobs mit Rotation** (z.B. alle 2 Wochen durchwechseln).
* 🧭 **Klare Erwartungen kommunizieren**: Wer darf wann auch allein arbeiten? Wie bleiben wir synchron?
* 🪴 **Rollendefinition anpassen**: Weniger Lead-Treiben, mehr Coaching und Selbstorganisation fördern.
* 📅 **Wöchentliche „Show & Tell“ Sessions** für Austausch und Teamgefühl.
Wenn du willst, kann ich ein konkretes Vorschlags-Template für eine neue Teamstruktur oder ein leichtgewichtiges Sync-Format liefern.
## Konzept: Parallel Hybrid Mobbing
### 🔁 **Kernidee des Konzepts (Hybrid-Modell Mob + individuell)**
#### 1. **Zwei Gruppen (A/B) arbeiten getrennt**, aber:
* **gleicher Wochentakt** (Weekly Sync, Review, Retro sind gemeinsam),
* **ähnliche Gesamtverteilung von Mob vs. individueller Arbeit** (z.B. 2 halbe Tage Mob, 2 halbe Tage individuell).
#### 2. **Asynchrone Reihenfolge**:
* Die Gruppen **arbeiten zeitversetzt**, um:
* Ermüdung durch gleichzeitiges Vollzeit-Mobbing zu vermeiden,
* gegenseitiges Code-Review oder Input zu ermöglichen (z.B. Mob A am Dienstag → Review durch Gruppe B am Mittwoch),
* Pairings gruppenübergreifend an Donnerstagen zu fördern.
Das ist also **bewusst nicht symmetrisch im Tagesplan**, aber **symmetrisch im Gesamtpensum**. Diese Asymmetrie ist ein bewusstes Werkzeug, um **mentale Erholung, Rollenrotation und Kontextwechsel** zu fördern.
### Fazit
> **Eine dynamische Balance aus Mob-Arbeit und individueller Arbeit**,
> **sinnvoll verteilt im Team, um Ermüdung zu vermeiden**, **Wissen zu teilen**, und **Feedback-Zyklen zu verbessern**.
Wenn ihr aktuell eine Ermüdung durch Mob-only spürt, ist **zeitliche Asynchronität zwischen den Gruppen ein Hebel**, der oft hilft muss aber nicht dauerhaft so bleiben. Ich kann euch auch gerne Varianten für 3er-Gruppen, Rollenrotationen oder Mob-Breakout-Strategien skizzieren.
```mermaid
graph TD
A["Montag: Weekly Sync"] --> B1["Mob Gruppe A: Task 1 starten"]
A --> B2["Mob Gruppe B: Task 2 starten"]
B1 --> C1["Dienstag Vormittag: Mob-Session A"]
B2 --> C2["Dienstag Vormittag: individuelle Arbeit B"]
C1 --> D1["Dienstag Nachmittag: individuelle Arbeit A"]
C2 --> D2["Dienstag Nachmittag: Mob-Session B"]
D1 --> E1["Mittwoch Vormittag: Mob-Session A"]
D2 --> E2["Mittwoch Vormittag: individuelle Arbeit B"]
E1 --> F1["Mittwoch Nachmittag: individuelle Arbeit A"]
E2 --> F2["Mittwoch Nachmittag: Mob-Session B"]
F1 --> G["Donnerstag: Fokuszeit / freies Pairing"]
F2 --> G
G --> H["Freitag: Mob Review"]
H --> I["Freitag: Team-Retro"]
I --> A
subgraph "Rotation (alle 2 Wochen)"
R1["Mob-Gruppen neu mischen"]
end
A --> R1
R1 --> B1
R1 --> B2
```
---
## 🧩 **Strukturvorschlag: Mob/Individuell Hybrid (2-Wochen-Zyklus)**
### 🧠 Grundprinzipien:
* Kleine, rotierende Mobs (max. 34 Personen)
* Bewusste Balance: Deep Work + Sync
* Teamgefühl & Wissensaustausch durch klare Formate
* Fokus auf Selbstorganisation (weniger getrieben, mehr gestaltet)
---
### 📅 **Beispiel-Woche (ab Woche 4)**
| Tag | Vormittag | Nachmittag |
| ---------- | ------------------------------ | ---------------------- |
| Montag | **Weekly Sync (30min)** | Start Mob-Zyklus |
| Dienstag | Mob-Session Gruppe A | Individuell (Gruppe B) |
| Mittwoch | Mob-Session Gruppe B | Individuell (Gruppe A) |
| Donnerstag | Individuell | ggf. Pairing |
| Freitag | **Mob Review + Retro (60min)** | Offene Zeit / Catch-up |
> 🧩 *Mob-Gruppen rotieren alle 2 Wochen*, sodass jeder mal mit jedem arbeitet und Wissen zirkuliert.
---
## 🔁 **Formate im Detail**
### 1. 🗓️ **Weekly Sync (Mo, 30 Min)**
* Alle zusammen im Call.
* Ziel: Was wollen wir erreichen? Welche Aufgaben priorisieren wir?
* Einteilung: Wer ist diese Woche in welcher Mob-Gruppe?
* Kurzer Check-In zur Stimmung & Energie.
---
### 2. 🧑‍🤝‍🧑 **Mob-Session (23x pro Woche, 90120min)**
* Feste Slots, jeweils mit 34 Leuten.
* Rollen wechseln regelmäßig: Driver, Navigator, Observer.
* Fokus: schwierige Tasks, neue Features, pair-learning.
* **Junior als Driver fördern**, Seniors eher als Navigators/Coaches.
---
### 3. 👤 **Individuelles Arbeiten (nachmittags/Do)**
* Fokuszeit für einzelne Tasks, Exploration, Refactoring, Dokumentation etc.
* Async-Kommunikation per Chat / Issues.
* Option: freiwilliges Pairing.
---
### 4. 📽️ **Mob Review + Retro (Fr, 60 Min)**
* Jedes Team zeigt kurz: „Was haben wir gebaut?“ (510 Minuten)
* Fragen, Diskussion, Feedback.
* Danach kurze Retro: Was lief gut? Was stressig? Was ändern?
---
### 5. 🔄 **Mob Rotation (alle 2 Wochen)**
* Nach zwei Wochen werden die Mobs neu gemischt.
* Ziel: Durchmischung, Silos vermeiden, soziales Lernen fördern.
> Optional: Ein kleines „Mob Memory“ führen wer war mit wem schon im Team, welche Themen hat man gemeinsam gebaut?
---
## 📌 Rollen & Verantwortungen
| Rolle | Aufgabe |
| --------------------- | ------------------------------------------------------------------------- |
| **Mob Facilitator** | Achtet auf Timebox, Pausen, Rollenwechsel (rollierend pro Session) |
| **Team Coach (Lead)** | Beobachtet, gibt Feedback, stellt Fragen aber nicht dauerhaft Navigator |
| **Wissensboten** | Person aus jedem Mob, die in der Review ihre Gruppe vertritt |
---
## 🧰 Tools & Hilfsmittel
* **Mob Timer App**: z.B. [mob.sh](https://mob.sh) oder ein Timer in VS Code.
* **Notion / Miro / GitHub Projects**: Für Wissensspeicher und Visualisierung von Aufgaben.
* **Daily Async Updates (optional)**: 1 Nachricht/Tag im Slack/Teams: "Heute arbeite ich an X, brauche Y."
---
Möchtest du eine passende Visualisierung (z.B. als Miro-Template oder Mermaid-Diagramm) oder einen Copy-Paste-fertigen Text für euer Confluence oder Onboarding-Dokument?
```mermaid
graph TD
A["Montag: Weekly Sync"] --> B1["Mob Gruppe A: Task 1 starten"]
A --> B2["Mob Gruppe B: Task 2 starten"]
B1 --> C1["Dienstag Vormittag: Mob A"]
B2 --> C2["Dienstag Vormittag: individuelle Arbeit B"]
C1 --> O1["Observer B beobachtet Mob A"]
C2 --> D2["Dienstag Nachmittag: Mob B"]
D2 --> O2["Observer A beobachtet Mob B"]
C1 --> D1["Dienstag Nachmittag: individuelle Arbeit A"]
D1 --> E1["Mittwoch Vormittag: Mob A"]
D2 --> E2["Mittwoch Vormittag: individuelle Arbeit B"]
E1 --> O3["Observer B beobachtet Mob A"]
E2 --> F2["Mittwoch Nachmittag: Mob B"]
F2 --> O4["Observer A beobachtet Mob B"]
E1 --> F1["Mittwoch Nachmittag: individuelle Arbeit A"]
F1 --> G["Donnerstag: Fokuszeit / freies Pairing"]
F2 --> G
G --> H["Freitag: Mob Review"]
H --> I["Freitag: Team-Retro"]
I --> A
subgraph "Rotation (alle 2 Wochen)"
R1["Mob-Gruppen neu mischen"]
end
A --> R1
R1 --> B1
R1 --> B2
style O1 fill:#f0f0f0,stroke:#333,stroke-dasharray: 5 5
style O2 fill:#f0f0f0,stroke:#333,stroke-dasharray: 5 5
style O3 fill:#f0f0f0,stroke:#333,stroke-dasharray: 5 5
style O4 fill:#f0f0f0,stroke:#333,stroke-dasharray: 5 5
```
## Erweitertes Konzept
Sehr gerne! Hier kommt eine **ausführliche Visualisierung und Beschreibung eines erweiterten Arbeitskonzepts mit mehreren Mobs**, inklusive der **Rollen Driver / Navigator / Observer**, sowie deren zeitlicher Einbettung über mehrere Tage. Dieses Modell ist für ein Team von **ca. 10 Personen** gedacht, das sich in **2 Gruppen (Mob A / Mob B)** aufteilt und **Fokus, Wissensaustausch und Nachhaltigkeit** ausbalancieren will.
---
## 🧱 Strukturprinzipien des Konzepts
1. **Zweiteilung in zwei Mobs (A & B)** zur Reduktion von Meeting-Fatigue
2. **Wechsel von synchronem und asynchronem Arbeiten**
3. **Explizite Rollenverteilung innerhalb der Mobs**:
* `Driver`: schreibt Code
* `Navigator`: denkt strategisch, gibt Richtung
* `Observer`: beobachtet Metaebene
4. **Rollenrotation alle 1530 Minuten**
5. **Feedback- & Sync-Loops:**
* tägliches Micro-Feedback
* Wochen-Review & Retro
---
## 🧭 Zeitlich-strukturelle Darstellung
```mermaid
gantt
dateFormat HH:mm
axisFormat %H:%M
title Mob Programming Woche (Gruppen A & B + Rollen)
section Montag
Weekly Sync :sync, 09:00, 00:30
Setup Mob A :a1, 10:00, 01:30
Setup Mob B :b1, 10:00, 01:30
Individuell A :a2, 13:00, 02:00
Individuell B :b2, 13:00, 02:00
section Dienstag
Mob A (D/N/O rollenweise) :a3, 09:00, 01:30
Mob B (D/N/O rollenweise) :b3, 11:00, 01:30
Fokuszeit (alle) :f1, 14:00, 02:00
section Mittwoch
Mob B (D/N/O rollenweise) :b4, 09:00, 01:30
Mob A (D/N/O rollenweise) :a4, 11:00, 01:30
Individuell A & B :ind, 14:00, 02:00
section Donnerstag
Observer Sync A/B :obs, 09:00, 00:45
Pairing/Fokuszeit :f2, 10:00, 03:00
section Freitag
Mob Review :rev, 09:00, 00:45
Retro (mit Observer-Inputs) :ret, 10:00, 01:00
Optional: Team-Lunch :lunch, 12:00, 01:00
```
---
## 🧑‍🤝‍🧑 Rollenverteilung im Mob
### Beispiel: Mob A am Dienstag Vormittag (1,5h Session)
| Time Slot | Driver | Navigator | Observer |
| ----------- | -------- | --------- | ---------------- |
| 09:0009:30 | Junior A | Senior A | Junior B (Mob B) |
| 09:3010:00 | Senior A | Junior A | Junior B (Mob B) |
| 10:0010:30 | Junior B | Senior B | Junior A (Mob B) |
> Rollen werden **rotierend** vergeben. Observer kommen *aus der anderen Gruppe*, um einen frischen Blick zu erhalten.
---
## 🔄 Feedback-Zyklen
### Täglich:
* Nach jeder Mob-Session: 5 Minuten "Observer Insight"
* Was ist aufgefallen?
* Gab es Kommunikationspausen, Rollenunklarheiten?
* Feedback, keine Bewertung
### Donnerstag:
* **Observer-Sync (45min)**: A & B Observer tauschen sich aus
* Sammlung von Mustern, Problemen, Positivem
### Freitag:
* **Mob-Review (Output)**
* **Team-Retro (mit strukturiertem Observer-Input)**
* z.B. Karten an der Wand: *Codequalität*, *Kommunikation*, *Timeboxing*, *Einbindung*, ...
---
## ✅ Vorteile
| Ziel | Wie dieses Modell hilft |
| ------------------------ | -------------------------------------- |
| Burnout vermeiden | Fokuszeit + individuelle Phasen |
| Wissensaustausch fördern | Rollenrotation + regelmäßige Observer |
| Teamgefühl stärken | Gemeinsamer Wochenrhythmus + Retros |
| Autonomie & Struktur | Asynchrone Slots + klar getaktete Mobs |
---
## 📌 Empfehlungen zur Umsetzung
* Nutzt Timer-Tools wie [Mobster](https://mobti.me/) oder VS Code Timer Plugins
* Führt ein einfaches **Mob-Logbuch** (z.B. Google Doc oder Notion)
* Macht **Retros auch zur Format-Retro** („Wollen wir 2x 45min statt 1x 90min?“)
* Nutzt eine einfache Visualisierung der Rollen und Rotation (z.B. Whiteboard, digital oder physisch)
---
Wenn du willst, kann ich dieses Modell auch als Markdown-Template, Confluence-Seite oder als ClickUp/Notion-Board strukturieren sag einfach Bescheid.
Super! Hier kommt eine **vollständige Markdown-Dokumentation**, die du als internes Arbeitskonzept in eurem Repo, Wiki oder Knowledge Base verwenden kannst. Außerdem beschreibe ich im Anschluss, wie du dasselbe in **Notion** oder **ClickUp** umsetzen könntest, damit du dir ein Bild machen kannst.
---
## ✅ Mob-Programming-Arbeitsmodell (2 Mobs, Rollen, Balance)
### 📌 Übersicht
Wir arbeiten mit zwei Mobs (A & B), einem Wochenrhythmus aus synchroner und individueller Arbeit, sowie mit rollierenden Rollen:
* **Driver**: Implementiert den aktuellen Code
* **Navigator**: Gibt strategische Richtung
* **Observer**: Beobachtet Muster & Metaebene
Rollen rotieren ca. alle **1530 Minuten**. Observer können von außen oder aus dem jeweils anderen Mob kommen.
---
### 🧭 Wöchentlicher Ablauf
| Tag | Vormittag | Nachmittag |
| ---------- | ----------------------- | --------------------- |
| Montag | Weekly Sync, Setup Mobs | Individuelle Arbeit |
| Dienstag | Mob A & B (mit Rollen) | Fokuszeit (alle) |
| Mittwoch | Mob B & A (umgekehrt) | Individuelle Arbeit |
| Donnerstag | Observer Sync (A & B) | Pairing / Fokuszeit |
| Freitag | Mob-Review, Retro | Team-Lunch (optional) |
---
### 🧑‍🤝‍🧑 Rollenplan (Beispiel: Mob A Dienstag)
| Zeit | Driver | Navigator | Observer (aus Mob B) |
| ----------- | -------- | --------- | -------------------- |
| 09:0009:30 | Junior A | Senior A | Junior B |
| 09:3010:00 | Senior A | Junior A | Junior B |
| 10:0010:30 | Junior B | Senior B | Junior A |
---
### 🔄 Feedback & Synchronisation
#### Täglich (Mini-Retro)
* Direkt nach Mob-Session: 5 Minuten
* Observer: kurzes strukturiertes Feedback
#### Donnerstag (Observer Sync)
* 45 Minuten Austausch der Observer von Mob A & B
* Sammeln von:
* Kommunikationsmustern
* Positivbeispielen
* möglichen Stolpersteinen
#### Freitag (Review & Retro)
* Gemeinsames Anschauen der Arbeitsergebnisse
* Retro mit Observer-Feedback
* Optional: Team-Lunch
---
### 🔧 Tools & Praktiken
* **Timer**: [Mobti.me](https://mobti.me), VS Code Mob-Timer Plugin
* **Logbuch**: Google Doc, Notion, Confluence, etc.
* **Kanban/Todo**: Notion / ClickUp Board (siehe unten)
* **Visualisierung**: Whiteboard / Figma / Miro zur Aufgabenübersicht
---
### 📊 Kanban-Struktur für Notion oder ClickUp
#### **Spalten im Board**
```
| Ideen / Backlog | In Mob A | In Mob B | Individuell | Review | Done |
```
#### **Kartenstruktur (pro Task)**
* **Titel**: Klarer, handlungsorientierter Titel
* **Beschreibung**: Kontext, ggf. Links
* **Rolle** (Multiselect): Driver, Navigator, Observer
* **Team** (Select): Mob A / Mob B
* **Tag**: Montag, Dienstag, …
* **Status** (Board-Spalte)
* **Kommentare**: für tägliche Mini-Retros
#### Beispiel-Karte:
```
**Titel**: „Login-Routing nach erfolgreichem Login optimieren“
**Beschreibung**:
Aktuell erfolgt Weiterleitung nicht bei JWT-Token Refresh → prüfen & anpassen.
**Rolle**: Navigator, Driver
**Team**: Mob A
**Tag**: Dienstag
```
---
### 📁 Optional: Struktur für Projektordner/Repo
```text
/docs/mob-model/
├── README.md ← (dieses Dokument)
├── mob-rollen.md
├── retros/
│ ├── 2025-05-16.md
│ ├── 2025-05-09.md
└── logbuch/
├── mob-a/
└── mob-b/
```
---
Wenn du willst, kann ich dir gerne ein **Notion Template** oder **ClickUp Export** vorbereiten, das du direkt importieren kannst. Möchtest du das? Und welches Tool nutzt ihr aktuell für eure Projektorganisation (z.B. GitHub Projects, Jira, Notion, ClickUp, ...)?
Klasse, danke für den Kontext! Dann bauen wir alles so auf, dass es sich optimal in **Forgejo** (also Git + Kanban + Tickets/Milestones) integrieren lässt. Ich erkläre dir trotzdem kurz, was **Notion** und **ClickUp** sind, damit du es einordnen kannst und danach bekommst du von mir ein angepasstes Setup, das direkt auf **Forgejo** zugeschnitten ist.
---
## 🧠 Was ist Notion?
**Notion** ist ein All-in-One-Workspace für Teams, mit dem du:
* Dokumentation (wie ein Wiki)
* Projektpläne
* Kanban-Boards
* Aufgabenlisten
* Kalender
* und sogar einfache Datenbanken
in einer sehr **visuell ansprechenden** Oberfläche erstellen kannst. Es ist wie eine Mischung aus Google Docs, Trello und Confluence aber stark modularisiert.
🔗 Beispiel:
Du könntest dort euer Mob-Setup als Tabelle pflegen, mit Rollenrotation, Notizen, Aufgaben und Beobachtungen alles an einem Ort.
---
## ⚙️ Was ist ClickUp?
**ClickUp** ist ein Projektmanagement-Tool wie Jira oder Trello, aber mit sehr vielen Anpassungsmöglichkeiten:
* Kanban + Gantt + Kalender + Mindmap
* Aufgaben mit Rollen, Zuständigkeiten, Zeittracking
* Workspaces und Docs
* Automation (z.B. „wenn Task erledigt, dann …“)
👉 Es ist ein mächtiges Tool für **Teams mit vielen parallelen Aufgaben**, braucht aber Einarbeitung.
---
## 🧩 Vergleich zu Forgejo
| Tool | Hauptfunktion | Vergleichbar in Forgejo |
| ------- | ------------------------------ | ---------------------------- |
| Notion | Dokumentation, Boards, Notizen | Wiki + Markdown-Files |
| ClickUp | Aufgaben, Planung, Rollen | Kanban + Milestones + Labels |
| Forgejo | Git + Issues + Kanban | ✔ Euer Setup passt perfekt |
---
## ✅ Empfehlung für euer Setup (Forgejo-basiert)
Hier ist, wie ihr das vorgestellte Mob-Konzept mit **Forgejo** umsetzen könnt:
### 📁 Git-Struktur im Repo
```text
/docs/mob-programming/
├── README.md ← Gesamtkonzept (siehe oben)
├── rollenrotation-2025.md ← Tabelle mit täglichem Ablauf
├── retros/
│ └── 2025-05-16.md ← Kurze Lessons Learned je Woche
├── feedback/
│ └── observer-insights.md ← Zusammenfassung der Beobachtungen
```
### 🏷️ Labels für Tickets (Issues)
* `mob:A`, `mob:B`
* `rolle:driver`, `rolle:navigator`, `rolle:observer`
* `status:ready`, `status:in mob`, `status:in review`, `status:done`
* `tag:montag`, `tag:dienstag`, ...
### 🗂️ Boards
**Beispiel: Board „Mob A“**
| Idee / Backlog | Nächste Session | In Arbeit | Review | Done |
| -------------- | --------------- | --------- | ------ | ---- |
* Nutzt hier Tickets mit Rollen- und Zeitangabe in der Beschreibung oder den Labels.
### 📅 Milestones
* `Woche 20/2025 Mob Rotation`
* `Sprint: UI Login`
* `Sprint: Refactor Auth`
---
Wenn du möchtest, kann ich dir:
* ein **README.md Grundgerüst** erzeugen (direkt zum Einfügen)
* eine **Beispiel-Ticketstruktur als YAML oder JSON** geben (zum Import in Forgejo oder zur Orientierung)
* ein **SVG-Diagramm** für Miro/Excalidraw erzeugen (auf Basis eures Wochenplans)
Sag einfach, was du brauchst 😊
Das freut mich sehr **ein leichtgewichtiges, aber wirkungsvolles Logbuch-System** ist perfekt, um Wissen zu sichern, Synchronisation zu verbessern und Eigenverantwortung im Team zu stärken **ohne Overhead**.
Hier kommt eine strukturierte **Zusammenfassung**, speziell für euer Setup mit **Forgejo**.
---
## 🧭 Ziel des Logbuchs
* 💡 **Wissenssicherung** trotz Rotation (Mob ⇄ individuell)
* 🔄 **Synchronisation** zwischen Strängen (A/B) und Tagen
* 👁️ **Beobachtungen nutzbar machen**, ohne langwierige Meetings
* ⏱️ **Minimaler Aufwand**, klar verteilt
---
## 🧑‍🤝‍🧑 Rollen & Logbuch-Verantwortung
| Rolle | Wann wird geloggt? | Wo? | Inhalt (Beispiele) |
| --------------------------- | --------------------------------------- | --------------------------------------------- | ---------------------------------------------------------- |
| 🧭 **Navigator** | Während Mob-Sessions (live) | Im Issue-Kommentar oder `mob-A/2025-05-19.md` | Kurzes Tagesprotokoll: *Was war Ziel? Was wurde gemacht?* |
| 👨‍💻 **Driver** | Optional, ergänzend (nur bei Problemen) | Im Kommentar oder per Commit-Message | *Technische Herausforderungen, „Tricks“, Bugs* |
| 👀 **Observer** | Nach Session (Dienstag/Mittwoch) | Datei `feedback/observer-2025-05-21.md` | *Beobachtungen zur Dynamik, Verbesserungsvorschläge* |
| 📋 **Teamlead** | Freitags in Retro | Datei `retros/2025-05-23.md` | *Knappe Lessons Learned, Entscheidungen* |
| 🧑‍🔧 **Individual Worker** | Nach Abschluss Task oder Review | Direkt im Ticket oder Commit | *„Ich habe X erledigt, Y gelernt“* oder „⚠️ Achtung bei Z“ |
---
## 🗂️ Struktur im Repo (Markdown-Dateien)
```plaintext
/docs/mob-programming/
├── README.md
├── mob-A/
│ ├── 2025-05-19.md ← Navigator-Log Montag
│ ├── 2025-05-20.md ← Navigator-Log Dienstag
│ └── ...
├── mob-B/
│ ├── 2025-05-19.md
│ └── ...
├── feedback/
│ └── observer-2025-05-21.md
├── retros/
│ └── 2025-05-23.md
```
---
## 🧾 Beispiel für ein Navigator-Log (`mob-A/2025-05-20.md`)
```markdown
# Mob A Dienstag, 20.05.2025
**Ziel:** Refactor Auth-Handler & testen edge cases
**Teilnehmer:** Alex (Driver), Robin (Navigator), Kim (Observer)
**Erreicht:**
- Code umgestellt auf `newAuthHandler`
- Edge Case mit expired token abgedeckt
- Test-Fall `auth.spec.ts` ergänzt
**Offen:**
- Token-Refresh behandeln (Ticket #123)
- Review durch Team B vor Merge
**Bemerkung:** Driver hat interessante Lösung für Middleware (siehe Commit f0e1d2)
```
---
## 🧠 Minimal-Checkliste für jeden Tag
| Rolle | Muss ich heute loggen? | Wo? |
| ----------- | ---------------------- | ------------------------------- |
| Navigator | ✅ Ja | Markdown-Datei im Tagesordner |
| Observer | ✅ Ja (Di/Mi) | feedback/observer-\*.md |
| Driver | 🟡 Optional | Commit-Message oder Kommentar |
| Teamlead | ✅ Freitag | retros/\*.md |
| Solo-Worker | ✅ Bei Abschluss | Kommentar im Ticket oder Commit |
---
## 💡 Optional: Forgejo Automatisierungsidee
Wenn ihr mit Git-Hooks oder CI rumspielen wollt:
* Label `log:missing` auf Tickets, wenn kein Log nach z.B. 24h
* Release-Milestone „Sprint Logbook 2025-W20“ als Sammelstelle
---
Wenn du möchtest, kann ich dir ein kleines Bash-Script machen, das eine neue Log-Datei automatisch erstellt (z.B. `./new-log.sh mob-A 2025-05-20`) mit vorbefülltem Template. Sag einfach Bescheid.
Perfekt! Hier ist ein kleines Bash-Skript, das dir automatisch ein Tages-Logbuch im gewünschten Format anlegt **inkl. Datum, Mob-Gruppe und Template**:
---
### 📄 `new-log.sh`
```bash
#!/usr/bin/env bash
# Usage: ./new-log.sh <mob-group> <yyyy-mm-dd>
# Example: ./new-log.sh mob-A 2025-05-20
set -e
MOB_GROUP="$1"
DATE="$2"
BASE_DIR="./docs/mob-programming"
TARGET_DIR="$BASE_DIR/$MOB_GROUP"
FILE="$TARGET_DIR/$DATE.md"
if [[ -z "$MOB_GROUP" || -z "$DATE" ]]; then
echo "Usage: $0 <mob-group> <yyyy-mm-dd>"
exit 1
fi
mkdir -p "$TARGET_DIR"
if [[ -f "$FILE" ]]; then
echo "⚠️ File already exists: $FILE"
exit 1
fi
cat <<EOF > "$FILE"
# ${MOB_GROUP^} $(date -d "$DATE" '+%A, %d.%m.%Y')
**Ziel:** _Was war heute das Ziel der Session?_
**Teilnehmer:**
- Driver: _Name_
- Navigator: _Name_
- Observer: _Name_ (optional)
**Erreicht:**
- Punkt 1
- Punkt 2
**Offen:**
- Punkt A
- Punkt B
**Bemerkung:**
- Commit-Referenz oder besondere Erkenntnisse
EOF
echo "✅ Logfile erstellt: $FILE"
```
---
### ✅ Vorteile
* Immer gleiches Format
* Kein Nachdenken mehr über Ordnerstruktur
* Schnell per `bash` oder `make` ausführbar
---
### 🔧 Optional: ausführbar machen
```bash
chmod +x new-log.sh
```
Und dann z.B.:
```bash
./new-log.sh mob-B 2025-05-21
```
---
Wenn ihr mögt, können wir auch eine Variante für Observer-Feedback oder die Retro-Logs bauen. Sag einfach Bescheid!