Das Konzept  vom Software Development Waste


Wie uns das Konzept vom Software Development Waste weiter hilft

"Software Development Waste" ist ein Konzept, welches aus dem Lean Management stammt. Es beruht auf der Idee Verschwendung in Wertschöpfungsketten zu vermeiden. Beispiele von Verschwendung (englisch Waste; japanisch muda) in Industrieprozessen sind Lagerbestände, Materialbewegungen oder Überproduktion. Diese Verschwendung gilt es zu reduzieren oder zu vermeiden. Die aus der Industrieproduktion bekannten Kategorien von Verschwendung lassen sich jedoch nicht direkt auf die Herstellung von Software übertragen. Doch auch in der Softwareentwicklung gibt es Tätigkeiten, die nicht wertschöpfend sind und die vermieden werden sollten, um sich auf die für Kunden und Nutzer relevanten Werte zu fokussieren.

Waste-Kategorien in der Softwareentwicklung

Das falsche Produkt/Feature entwickeln – Der Wert der Arbeit steht in Frage!
Fehler bei der Anforderungserhebung, indem Business- Stakeholder- oder Nutzerbedürfnisse nicht gesehen oder vernachlässigt werden.

Backlog-Missmanagement – Äußert sich in unkoordiniertem Arbeiten
Zu wenig refined Backlog Items, Stories die nicht ready sind; Schlecht gesetzte Prioritäten zwischen Planung, Featureentwicklung, Fehlerbehebung, Refinement, Testing etc.

Rework – Aufgaben müssen einmal zu viel angefasst werden
Unklare Definition of Done / Akzeptanzkriterien, Bugs, technische Schuld; Backlog Items, in die Arbeit geflossen ist, die dann jedoch nicht umgesetzt werden.

Zu komplexe Lösungen – Chancen etwas zu vereinfachen werden liegen gelassen
Unnötige Komplexität aus fachlicher oder technischer Sicht.

Überbordender „cognitive load“ – Gefühl der Überforderung
Auseinandersetzung mit unnötiger Komplexität durch zu große Anforderungspakete, mangelnde technische Infrastruktur, ungenügende technische Standards, technische Schuld, ineffiziente Abläufe, unnötige Kontextwechsel.

Psychologisches Leid – Stress, Unsicherheit im Umgang mit anderen
Konflikte; zu viel Druck, Eile

Warten – Häufig kaschiert durch Multitasking!
Timings stimmen nicht, da Informationen, Feedback, Freigaben o.ä. fehlen.

Verlust von vorhandenem Wissen – Wissen fehlt überraschenderweise;
Wechsel im Team in Verbindung mit nicht verteiltem Wissen

Ineffektive Kommunikation – Innerhalb des Teams und darüber hinaus
Es läuft nicht in Sachen wer spricht mit wem, wie häufig über welche Kommunikations-Kanäle?

Die Kategorien und ihre Beschreibungen beruhen auf dem Paper Software Development Waste von Todd Sedano, Paul Ralph und Cécile Péraire aus dem Jahr 2017 veröffentlicht in IEEE/ACM 39th International Conference on Software Engineering (ICSE)