Translate

Wednesday, July 2, 2008

Swiss Life vergeigt Großprojekt Amarta

Ich habe schon mehrere große und sehr große Projekte persönlich kennengelernt. Und alle hatten dasselbe Problem: Software-Entwickler merken nicht, wenn sie die Grenzen ihrer Verständnisfähigkeit erreichen und überschreiten.

Software-Entwickler stellen sich ihre Rolle gerne so vor, dass sie etwas Neues erschaffen. Doch tun sie das wirklich? Ja, die Software, die sie schreiben ist neu. Das ist unbestreitbar. Doch das, was die Software macht, sollte besser nicht neu sein, sondern haargenau das, was die Anwender als Lösungswissen für die gestellte Aufgabe formuliert haben.

Also erschaffen Software-Entwickler nicht etwas Neues, sondern wandeln Wissen von einer Darstellungsform (Wissensdokumentation) in eine andere (Software) um. Das Wissen ist der Rohstoff, der von Software-Entwicklern verarbeitet wird. Doch was braucht man für die präzise Bearbeitung eines Rohstoffs?

(1) Man muss in der Lage sein, das fertige Produkt präzise zu beschreiben (spezifizieren)
(2) Man muss Produkte ebenso präzise fertigen können
(3) Man muss präzise messen können, ob erstellte Produkte ihre Spezifikation erfüllen

Diese Grundregeln werden in Software-Projekten heute noch gewohnheitsmäßig missachtet.

Stattdessen gilt das Prinzip "Gruppen-Konsens". Und das geht so: Eine Gruppe von Anwendern und Entwicklern beginnt mit der Entwicklung eines Teilprojekts. Sie bilden sich eine Gruppenmeinung und handeln anschließend danach. Andere Teilprojekte arbeiten ebenso. Das Ergebnis:

  1. Die Meinungen verschiedener Gruppen passen nicht nahtlos zusammen. Doch das merkt man erst, wenn die fertigen Software-Module nicht wie erwartet zusammenarbeiten.

  2. Noch verhängnisvoller: Eine Gruppe erstellt ein Teilprojekt und geht dann auseinander. Ein Jahr später bekommt eine andere Gruppe die Aufgabe, das Teilprojekt zu überarbeiten. Auch sie bilden sich einen Gruppenkonsens, auf dessen Basis sie handeln. Mit ganz viel Glück stimmt ihr gefundener Konsens mit dem der ersten Gruppe übereinstimmt, mit nur wenig Pech aber weicht er ab. Das ist der Zeitpunkt, wo Fehler entstehen.
Analyse

Großprojekte (> 10 Mio EUR) verarbeiten viel Wissen. Und zwar mehr als in einen Kopf passt. Und auch mehr, als eine Gruppe von Menschen als gemeinsames Gruppenwissen aufbauen kann. Deshalb muss Wissen einfach, kurz und klar beschrieben werden. Sowohl das eigene, als auch das, was man von anderen Gruppen erwartet oder ihnen zur Nutzung anbietet.

Anforderungen, Regeln, Fakten und Beispiele: So haben Menschen seit vielen Tausend Jahren Wissen weitergegeben. "Exemplum docet" (Das Beispiel lehrt) wussten schon die alten Römer. Warum soll das nicht auch für Software gelten?

Und wenn dann jede Gruppe ihr Wissen, eingebettet in die für sie sichtbare Umgebung, beschreibt, modelliert und mit Hilfe einer kleinen Simulation auf Richtigkeit prüft, dann können auch Software-Entwickler die Sicherheit bekommen, dass ihre Software richtig ist. Auch und grade dann, wenn sie Teil eines viel größeren Ganzen ist.

Mit diesem Vorgehen habe ich die besten Erfahrungen gemacht. Es funktioniert.

Doch die Rolle der Software-Entwickler wird ein kleines Stück entzaubert: Sie sind nicht mehr die gottgleichen Schöpfer grandioser Software-Systeme, sondern getreue Dokumentierer von Wissen und anschließend seine sorgfältigen Bearbeiter, indem sie es in Software verwandeln.

Ob Swiss Life in diese Komplexitätsfalle getappt ist, kann ich nur vermuten. Ich halte es aber für sicher.