Kognitive Belastung limitieren
Es hilft nicht, Komplexität herunterzureden. Die Kognitive Belastung wird durch schlechte Performance und reduzierte Effektivität sichtbar. Zu hoch eingeschätzte Komplexität hingegen, wirkt sich nicht negativ auf das Team aus.
Identifikation von Schwierigkeitsgraden
Identifiziere die verschiedenen Domänen eindeutig und ordne sie nach folgenden Schwierigkeitsgraden ein:
- simpel: der Weg ist meistens klar
- kompliziert: Änderungen müssen analysiert werden und können einige Interaktionen benötigen
- komplex: Lösung benötigt mehrere Experimente, Entdeckungen und Iterationen
Vor allem die Domänen gegeneinander einzuordnen, wird das Verständnis schärfen.
Heuristiken zur Domänenwahl
Folgende Heuristiken können helfen, die Domänen Teams zuzuordnen und sollten lediglich als Hilfen, jedoch nicht als Gesetze, verstanden werden:
- Weise jeder Domain ein einziges Team zu. Ist eine Domäne zu groß, wird sie zerlegt in Unterdomänen, welche jeweils einem Teams zugewiesen werden
- Jedes Team sollte fähig sein, 2-3 simple Domänen zu übernehmen, da sie wenig Belastung durch Kontextwechsel erzeugen.
- Ein Team, welches eine komplexe Domäne betreut, sollte keine weiteren Domänen betreuen, nicht mal eine simple. Dies folgt daraus, dass die teaminterne Priorisierung meist zugunsten der simplen ausfällt, sowie komplexe Domänen unüberschaubar sind.
- Verhindere, dass ein Team für 2 komplizierte Domänen verantwortlich ist. Das Team wird sich sonst aufspalten, was die kognitive Belastung erhöht. Dann zerlege das Team eher (Beachte: 5-9 Personen / Team).
Möglichkeiten zur Reduzierung von kognitiver Belastung
Weitere Möglichkeiten die kognitive Belastung (v.a. intrinsisch und extrinsisch) zu reduzieren:
- Stelle eine team-first Umgebung bereit (physisch oder virtuell)
- Minimiere Teamablenkungen während der Arbeitswoche durch die Limitierung von Meetings, Mails, weise Supportanfragen dediziert Leuten oder Teams zu, ...
- Wechsel den Managementstil, indem Ziele und Outcomes kommuniziert werden, statt auf das "Wie" zu bestehen
- McChrystal nennt dies "Eyes on, Hands off" in Team of Teams
- Erhöhe die Qualität der Developer-Experience (DevEx) für andere Teams, welche deinen Teamcode verwenden und stelle gute Dokumentation für APIs bereit, erschaffe konsistente und gute User Experience und andere DevEx Praktiken
- Setze auf eine Plattform, welche explizit zur Reduzierung der kognitiven Belastung konzipiert ist und baue Teamsoftware darauf auf
"Minimize cognitive load for others" is one of the most useful heuristics for good software development.
Durch die Reduzierung der kognitiven Belastung und den Team-First Mindset bei der Bildung von Softwaregrenzen, wird das Team schneller ein gemeinsames mentales Modell entwickeln, welches nach Forschung ein guter Indikator für Teamperformance und weniger Fehlern ist.