Softwareentwicklung weist gewisse Ähnlichkeiten zum Segeln auf. Möchte man mit einem Segelboot
von Punkt A nach Punkt B reisen, gibt es auf der Landkarte betrachtet so etwas wie eine
Ideallinie, die genau zwischen beiden Punkten besteht und eigentlich nur abgefahren werden
müsste. In der Realität zeigt es sich aber, das man durch verschiedene Umstände, wie z.B.
Strömung, Windstärke oder auch mal eine kurze Unachtsamkeit des Steuermanns immer wieder vom
Kurs abkommt. Daher muss der Kapitän immer wieder den Kurs messen und entsprechend Gegensteuern.
Ähnlich muss sich auch ein guter Entwickler verhalten. Software ist im Anfangsstadium nichts
weiter als eine Idee im Kopf des Kunden. Viele Faktoren hängen davon ab, ob ein Projekt
erfolgreich abgeschlossen werden kann. Der Kunde muss die Idee vermitteln können, der Entwickler
muss die Sprache des Kundens genau verstehen, er muss die Idee des Kunden mit den entsprechenden
technischen Gegebenheiten in Einklang bringen.
Jeder weiß das Software während ihres Entwicklungsprozesses Fehler enthalten kann und in einigen
Bereichen vielleicht nicht genau dem entspricht, was sich der Kunde vorgestellt hat. Ein guter
Entwickler kann nun diese Abweichungen vom Ideal wie ein guter Kapitän in einfachen kleinen
Schritten korrigieren, so das das Ziel letztendlich zur Zufriedenheit aller beteiligten erreicht
wird.
Woran man nun so einen guten Entwickler erkennen kann? An der Art, wie er die Entwicklung des
Projektes organisiert. Wenn wir einmal davon ausgehen, das ein hypothetisches Projekt sich
bereits in einem Alpha Stadium befindet, der Kunde es sich anschaut und sowohl Fehler als auch
Abweichungen vom Konzept fest gestellt hat. Befindet sich der Kunde nun in einem Meeting mit dem
Entwickler und zeigt dem Entwickler beispielsweise auf dem Bildschirm "Auf Seite 3 befindet sich
die Grafik links unten um einige Pixel verschoben und nicht in einer Reihe mit den anderen
Grafiken" und der Entwickler macht sich nun Notizen auf einem Blatt Papier, dann kann man mit
Sicherheit sagen, das es sich um einen unprofessionellen Entwickler handelt.
Dieser Ansatz ist fehleranfällig, da es für den Entwickler später nur noch seine Aufzeichnungen
gibt und keine visuelle Repräsentation. Außerdem wird hier Zeit verschwendet, ein Meeting sollte
höchstens dann statt finden, wenn es darum geht wie und wann die Probleme behoben werden, nicht
jedoch um welche zu finden oder gar mündlich zu kommunizieren.
Ich nutze daher für alle meine Projekte eine hoch professionelle Projektverwaltung, wie sie auch
von Firmen wie BMW, Adobe, Yahoo und anderen eingesetzt wird. Meine Kunden erhalten
selbstverständlich während der Entwicklung Zugriff auf diese Software und sind so in der Lage
auf einen Blick den Status des Projekts zu sehen (Wie viele Vorgänge gibt es, wie viele davon
sind bereits abgeschlossen). Er kann über diese Software Fehler melden, aber auch Wünsche äußern
wie neue Funktionen. Er bekommt dann automatisch einen Überblick wann diese Wünsche umgesetzt
werden.
Zu jeden Vorgang kann man selbstverständlich auch Dateien mit hochladen. Vorgänge wie
Fehlermeldungen oder Aufgaben können mir selbstverständlich auch per Email zugesandt werden,
diese werden dann automatisch in die Projektverwaltung eingespeist und in verarbeitbare Vorgänge
umgewandelt.
Geht es um Fehlerberichte, wie die oben angesprochene verschobene Grafik auf Seite 3, dann kann
sich der Kunde aus der Projektverwaltung ganz einfach ein Browserplugin für alle gängigen
Browser herunter laden und damit ganz einfach Fehlermeldungen direkt im Projekt markieren. Er
würde einfach Seite 3 anschauen, einen Kreis mit der Maus um die verschobene Grafik ziehen und
dann einen Text dazu einfügen "verschoben". Dann würde er den Fehlerbericht abschicken und in
meiner Projektverwaltung wurde automatisch ein Fehlerbericht mit Bildschirmfoto und Kommentar
hinterlegt.
Dieses Vorgehen spart viel Zeit, die man dann für wesentlicheres nutzen kann. Ebenso gehören
Missverständnisse der Vergangenheit an. Dies ist eines der "Geheimnisse" warum meine Kunden so
zufrieden sind.