Schlanke modellgetriebene Entwicklung in agilen Projekten

Lean ist in

Bernd Linowski

Ein neues Projekt startet bald. Die Analyse der Anforderungen hat bereits begonnen. Sie sind überzeugt, dass ein modellgetriebener Ansatz in diesem Fall genau das Richtige ist. Aber wie üblich sind die Geschäftsszenarien noch im Fluss. Dennoch muss ein erstes Teilsystem schon nach kurzer Zeit in Betrieb gehen. Was ist nun Ihre Antwort auf die Frage: Sind Sie sicher, dass mit modellgeriebener Entwicklung das Projekt ein Erfolg wird?

„Ja, warum denn nicht!“ sollte die Antwort sein. Doch wie stellt man sicher, dass man dieses Versprechen auch halten kann? Dazu kann die Berücksichtigung der Prinzipien der schlanken Entwicklung (Lean Development) einen nützlichen Beitrag leisten. Model-driven Software Development (MDSD) umfasst nicht nur das reine Anwenden eines Entwicklungsprozesses, sondern auch das Design eines Produktionsprozesses. Daher profitiert es ganz besonders von einem Gedankengut, das ursprünglich im Rahmen der Lean Production entwickelt wurde.

MDSD als schlanker Entwicklungsprozess

Schlanke Produktionsprozesse haben ihren Ursprung im Toyota-Production-System [1], dessen Anfänge bis in die Zeit kurz nach dem zweiten Weltkrieg zurückreichen. Damals sah sich Toyota vor die Aufgabe gestellt, einen Fertigungsprozess für Automobile zu entwickeln, der die Anforderungen des japanischen Markts erfüllte. Dieser verlangte zu dieser Zeit nach vielen unterschiedlichen Arten von preiswerten Autos, allerdings in eher bescheidenen Mengen. Auch wollte man sich schnell an veränderte Marktbedingungen anpassen können. Die Nachahmung der zu dieser Zeit von US-Automobilkonzernen betriebenen Massenproduktion erschien daher nicht erstrebenswert. Stattdessen entwickelten die Verantwortlichen bei Toyota eine völlig neue Art von Produktionsprozess: Statt große Mengen auf Halde zu produzieren, wird immer nur so viel produziert, wie gerade nachgefragt wird (Just in Time). Um die Kosten niedrig zu halten, konzentriert man sich auf die Vermeidung von Abfall (Elimination of Waste). Statt mit Ausschuss zu leben oder fehlerhafte Produkte nachzubearbeiten, sorgt man für durchgängig hohe Qualität (Built-in Quality). Statt sich mit Problemen im Betriebsablauf abzufinden, hält man alle Mitarbeiter dazu an, ständig zur Verbesserung des Produktionsprozesses beizutragen (Kaizen) und das so gewonnene Wissen festzuhalten (Standard-Worksheet).

Allerdings muss bei Übertragung schlanker Entwicklungsmethoden der fundamentale Unterschied zwischen industrieller Produktion und Softwareentwicklung bedacht werden. Letztere ist ein Designprozess, der hauptsächlich Informationen produziert, die nahezu ohne weitere Kosten beliebig oft repliziert werden können [2]. Das verschiebt den Fokus weg von einem Produktionsprozess hin zu einem Produktdesignprozess. Allerdings hat MDSD hier eine Sonderstellung inne. Es verlagert das Zentrum der Aufmerksamkeit teilweise zurück zu Produktionsprozessen und dem damit einhergehenden Prozessdesign (MDSD als Produzent großer Mengen abgeleiteter Artefakte).

Beim herkömmlichen Implementieren von Anwendungsfunktionalität mit einer Programmiersprache (z. B. Java) muss weder die Sprache selbst entwickelt noch muss ein Compiler geschrieben werden. Auch stellen Build-Werkzeuge wie Maven oder Ant fertige Workflows zum Erzeugen gängiger abgeleiteter Artefakte bereit (JAR, RMIC-Code etc.). Bei modellgetriebener Entwicklung ist jedoch Sprach- oder Metamodelldesign und das Entwickeln von Transformationen, die die Artefakte aus den entsprechenden Modellen generieren, ein wesentlicher Teil der Entwicklung. Auch das Erstellen von Workflows zur Orchestrierung der Generierung sowie die Einbettung in einen übergeordneten Build-Prozess sind oftmals Teil eines modellgetriebenen Entwicklungsprozesses.

Man kann also festhalten, dass MDSD eine höhere Ähnlichkeit zu industriellen Produktionsprozessen aufweist, als Softwareentwicklung im Allgemeinen. Das kann dazu führen, dass die negativen Eigenschaften von Massenproduktion (hohe Anfangsinvestitionen, lange Anlaufzeit, schwer änderbar) bei MDSD wieder in Erscheinung treten. Aufgrund des nachhaltigen Erfolgs dieses Ansatzes und der Kompatibilität seiner Zielsetzung mit der Produktion von Software werden seit Längerem die Prinzipien der Lean Production auch auf Softwareentwicklung angewendet. So befinden sich in den bekannten agilen Entwicklungsmethoden wie Scrum oder XP viele Elemente schlanker Entwicklung. Wenn MDSD (als inhärent „schwerfälliger“ im Vergleich zu normaler Softwareentwicklung) nicht ein Opfer der zunehmenden Nachfrage nach agiler Entwicklung werden soll, muss es selbst agil betrieben werden. In diesem Artikel werden daher einige der Prinzipien der schlanken Entwicklung auf ihre Anwendung im Bereich der modellgetriebenen Softwareentwicklung untersucht. Hierbei steht der Prozess des Generierens von Artefakten aus Modellen im Fokus. Diese Prinzipien sind im Einzelnen [3]:

  • Vermeidung von Abfall
  • Schnelle Entwicklung
  • Innewohnende Qualität
  • Gewinnung von Wissen
  • Optimieren des Ganzen
Geschrieben von
Bernd Linowski
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.