Suchen

Agilität weitergedacht Design Thinking in der Softwareentwicklung

Autor / Redakteur: Matthias Müller und Stephan Kern-Bixenstein * / Stephan Augsten

Design Thinking hat zum Ziel, Innovationen zu entwickeln, die sich am Nutzer orientieren und dessen Bedürfnisse erfüllen. Auch die agile Softwareentwicklung kann sich dieses Konzept zunutze machen, wie dieser Beitrag erörtert.

Firmen zum Thema

Design Thinking versucht, mithilfe eines kontinuierlichen Dialogs Ideen zu generieren, die sich ausschließlich am Nutzer orientieren.
Design Thinking versucht, mithilfe eines kontinuierlichen Dialogs Ideen zu generieren, die sich ausschließlich am Nutzer orientieren.
(Bild: Mr. Gray - flickr.com / CC0 )

In Zeiten der Digitalen Transformation benötigen Unternehmen Ansätze und Methoden, um das weit verbreitete Silo-Denken zu überwinden und kundenorientierte Lösungen zu entwickeln. Als eine der größten Herausforderungen in der Softwareentwicklung gilt das Requirement Engineering. Zwar kommen in den meisten Unternehmen zu Beginn die Anwender zu Wort – doch ihre Wüsche, Anregungen und Probleme landen dann bei der IT-Abteilung.

Hier treffen sich oft zwei Welten: Anwender, denen es schwerfällt, ihr Anliegen auszudrücken und Techniker, die grundsätzlich eine andere Sprache sprechen, die sehr schnell eine technische Lösung und ihre perfekte Umsetzung im Kopf haben.

Planung und Projektmanagement werden dann stringent durchgezogen, solide dokumentiert und führen letztlich doch zu einem unbefriedigenden Ergebnis: Eine technisch wohldurchdachte Lösung, die aber keiner nutzen mag und auch nicht den erhofften Nutzen bringt. Die Anwender stehen dann vor einer Lösung, an der sie nicht wirklich beteiligt waren und mit der sie sich nicht identifizieren.

Dieses Problem setzt sich auch in der agilen Softwareentwicklung fort. Auch reinen Scrum-Projekten liegt genau an dieser Stelle oft eine klassische Falle: Die entwickelte Lösung entspricht zwar den Vorgaben der IT-Abteilung – sie wurde von der technischen Seite her erdacht und perfekt realisiert - die Anwender werden aber kaum mehr involviert als bei der klassischen Softwareentwicklung.

Design Thinking versucht, einen kontinuierlichen Dialog sicherzustellen. Der Grundgedanke dieser Kreativitätstechnik ist es, Ideen zu generieren, die sich ausschließlich am Nutzer orientieren. Für die Softwareentwicklung bedeutet das, alle diejenigen Mitarbeiter an der Lösungsfindung zu beteiligen, die an der Software arbeiten bzw. an einer Aufgabe beteiligt sind – unabhängig von ihrer Abteilung oder ihrem Status.

Gemeinsam wird mit möglichst niedrigem Aufwand ein Problem betrachtet und mögliche Lösungsansätze entwickelt, die in einem „Minimum Viable Product“ resultieren. Dieses erste, bereits einsatzfähige Produkt ist dann die Basis für die Weiterentwicklung in einem steten Diskurs mit allen Beteiligten. In Kombination mit Design Thinking wird die agile Softwareentwicklung zu einer echten Alternative zum klassischen Requirement Engineering.

Beide Ansätze teilen den iterativen Grundgedanken, kommen aber an jeweils anderen Stellen des Projekts zum Einsatz. Design Thinking dient der Ideenfindung, während die agile Entwicklung eine Methode für das Projektmanagement darstellt. In den DT-Workshops, die cellent mit Kunden bzw. deren Mitarbeitern durchführt, entsteht schon vor dem eigentlichen Entwicklungsprojekt Klarheit darüber, welche Ziele mit der Software überhaupt angestrebt werden und welchen Nutzen sie für den Anwender haben soll.

In wenigen Tagen vom Workshop zu den Sprints

Es muss nicht immer gleich der ganz große Wurf sein. Oft ist eine einfache, kleine Lösung hilfreicher für die Betroffenen als ein umfassendes Lösungspaket, das wenig Bezug zur Praxis hat. Wie so etwas ungefähr aussehen könnte, wird unter der Leitung eines Design Thinking Coaches diskutiert. Daran teilnehmen sollten Anwender ebenso wie Entwickler, IT-Betrieb bzw. Support und die „Finanziers“ für die Lösung.

In einer kurzen Spezifikationsphase entstehen die grundlegenden Ziele, die Design Challenge. Erst dann fängt man an das Produkt zu entwickeln, das inkrementell verbessert wird. Der Vorteil dieser Art der Softwareentwicklung ist die klare Kommunikation aller Beteiligten miteinander. Die Anwender haben die Gelegenheit, die Techniker über das eigentliche Problem zu informieren – in allen Dimensionen wie Software, Hardware und auch Schulungsbedarf.

Kennt man die tägliche Praxis, ist es deutlich einfacher die richtige Lösung zu entwickeln. Im Workshop können Benutzer und Techniker gemeinsam die Anforderungen festlegen, die Prozesse vor Ort beschreiben und die Lösung in ein erstes Rohprodukt – Sprint 1 – bringen. Die Akzeptanz einer solchen Lösung ist von Anfang an unvergleichbar höher als beim traditionellen Requirement Engineering.

Das SAP-Google für Instandhalter

Wie einfach eine perfekte Lösung aussehen kann, zeigt ein Projekt aus dem SAP-Umfeld: cellent sollte für ein Industrieunternehmen eine Lösung entwickeln, die der Instandhaltung die Materialsuche inklusive der Verfügbarkeitsprüfung erleichtert, zum Beispiel bei einem Austausch von Komponenten. Hauptziel war es, die Anwender optimal zu unterstützen und eine intensive Nutzung der Lösung zu garantieren. In einem Design Thinking Workshop vor Ort wurde in wenigen Stunden eine Google-ähnliche Suchfunktion als Lösung festgelegt.

Als Basis dieser Entwicklung diente die Beschreibung der betroffenen Instandhalter, wie sie tatsächlich agieren und welches Instrument für sie am einfachsten wäre. Am Ende der Lösungsphase stand eine bildhafte Darstellung (Mockup) der Lösung. Was in der Theorie eher unkompliziert klingt, ist im SAP-Umfeld mit relativ starren Prozessen jedoch nicht ganz so einfach umzusetzen. Deshalb wurden agile Entwicklungsmethoden mit Design Thinking Ansätzen kombiniert. So ließ sich sicherstellen, dass die Entwicklung nahe am Anwenderbedarf blieb.

Design Thinking: Hürden und Grenzen

Bei allen Vorteilen bieten auch Design Thinking Workshops kein Patentrezept. Geht es zum Beispiel um größere Projekte, hat die Lösung zwar immer noch einen relativ niedrigen Iterationsaufwand und eine hohe Anwenderzufriedenheit. Je mehr Stakeholder an dem Projekt beteiligt sind, desto größer sind auch Kosten und Aufwand.

Die DT-Methode mag zwar auf lange Frist ein kostengünstigerer Weg zu einer akzeptierten Lösung sein. Für ein kleines Unternehmen ist es jedoch häufig schwer, die Beteiligten für den Workshop, der manchmal über mehrere Tage geht, und die regelmäßige Abstimmung im Projekt freizustellen. Hier gilt es, im Vorfeld die Machbarkeit zu bewerten, den Aufwand festzulegen und schließlich die Aufgabe des Workshops genau abzustimmen.

Auch gefällt die extrem kommunikative Arbeit nicht jedem. So möchte beispielsweise nicht jeder Entwickler direkt mit dem Kunden oder gar mit dem Endanwender reden. Selbst wenn er es tut, mag es ihm schwerfallen, seinen Hintergrund hintenan zu stellen und nicht gleich die technische Lösung mit- bzw. vorzudenken.

So entsteht sehr schnell eine Lösung, die nicht unbedingt auch die beste Umsetzung für den Kunden ist. In einem klassischen Ansatz spricht der Requirement Engineer direkt mit der IT-Abteilung, dokumentiert und konzeptioniert weitgehend im Alleingang. Anhand dieses Konzepts arbeiten dann die Entwickler – selbständig, aber isoliert.

Dieser „isolierte“ Ansatz ist in den Strukturen und auch emotional noch relativ fest verankert. Deshalb besteht die Gefahr, dass nach einem Anfang mit Design Thinking, wenn das grobe Ziel feststeht, sich wieder das klassische und „nicht agile“ Requirement Engineering einschleicht. Ein Ausweg aus diesem Dilemma können wiederholte Workshops sein. In diesem Fall wäre die Involvierung der Beteiligten unabdingbar. Die Führung durch den kompletten Design Thinking Prozess könnte aber auch die Aufgabe eines Projekt-Coaches sein.

Fazit

Wer ein Softwareprojekt plant, sollte Design Thinking als Methode unbedingt in Betracht ziehen. Angewendet mit agilen Entwicklungsmethoden wie Scrum sorgt Design Thinking dafür, dass die Lösung letztlich so wird, wie es sich diejenigen wünschen, die damit arbeiten.

Ein Anwender, der ein Produkt gerne und gut nutzt und zufrieden ist, benötigt wiederum keinen Support. Die Expertise und das Know-how aus vielen Bereichen, direkte Anwender, Fachabteilungen, IT und Management, fließen in die Lösung ein, und der Geist dieser engen Zusammenarbeit reicht oft weit über ein einzelnes Projekt hinaus.

* Matthias Müller und Stephan Kern-Bixenstein arbeiten als Entwickler und Coaches für Design Thinking und Agile Methoden bei cellent, einem Tochterunternehmen von Wipro.

(ID:44833866)