Mein Ansatz
Ein erfolgreiches Software-Projekt ist das Ergebnis des Dialoges zwischen dem Kunden und dem Entwickler. Um diesen Dialog zu unterstützen, verwende ich einen agilen Entwicklungsprozess.
Agil
Das Leben ist nicht bis in das kleinste Detail vorhersehbar. Ebenso verhält es sich mit Anforderungen für Software.
Natürlich ist es sinnvoll, die Anforderungen an ein Software-Projekt am Anfang des Projektes zu sammeln. Aber man sollte nicht mit der Annahme arbeiten, dass diese Anforderungen unveränderlich sind. Im Laufe eines Projektes, im Dialog zwischen Auftraggeber und Entwickler, entstehen meist Anforderungsänderungen und auch neue Anforderungen. Wenn die Ausführung des Projektes sich zu sehr an einen initialen Plan bindet, wird das Inkorporieren solcher Änderungen unnötig schwer.
Iterativ und Inkrementell
Um auf Änderungen während eines Projektes schnell reagieren zu können, arbeite ich in Iterationen. Eine solche Iteration hat, in Absprache mit dem Auftraggeber, eine Dauer von ungefähr einer Woche. Im Dialog mit dem Auftraggeber wird jeweils entschieden, was innerhalb einer Iteration entstehen soll. Da eine Iteration in sich Abgeschlossen ist, besteht nach jeder Iteration die Möglichkeit neue und geänderte Anforderungen für die folgende Iteration zu bestimmen.
Funktionsfähige Software
Das Ziel jeder Iteration ist eine funktionsfähige Version der Software.
Das bedeutet, dass der Auftraggeber am Ende einer Iteration die Möglichkeit hat, seine Software zu benutzen um so direkt zu erfahren, wie sie sich verhält. Dies gibt dem Auftraggeber die Möglichkeit, schnell und direkt auf die Weiterentwicklung Einfluss zu nehmen. Oft entstehen beim Benutzen einer Funktionalität die besten Ideen für deren Verbesserung.
Nachhaltig
Software ist kein Wegwerfprodukt. Und sie ist in den meisten Fällen auch nicht starr. Es ist normal, dass Änderungen in den Geschäftsprozessen der Auftraggebers, verändertes Endkundenverhalten oder auch geänderte gesetzliche Rahmenbedingungen eine Adaption der Software verlangen.
Deshalb muss die Software so geschrieben sein, dass auch nach Beendigung des eigentlichen Projektes Änderungen durchgeführt werden können, ohne das hierzu lange der Code der Software durchforstet werden muss. Der Code muss klar strukturiert und mit automatischen Test abgedeckt sein, so dass auch ein anderer Software-Entwickler als der ursprüngliche Autor die Software anpassen kann, ohne monatelang deren Code zu studieren.
Auch im ökologischen Sinne arbeite ich Nachhaltig. Ihre Software wird von mir in einem Energiesparhaus auf einem Apple MacBook Pro geschrieben. Der Strom für meinen Rechner kommt von EWS.
