16.10.2007

Jedes Software-Projekt ist anders – oder doch nicht?

Jeder Kunde beschreibt sein Projekt als etwas besonderes, mit ganz spezifischen Zwängen und Randbedingungen. Meist stimmt das auch. Trotzdem finde ich das Folgende interessant: Normalerweise werden ich oder meine Kollegen geholt, um ein ganz spezielles Thema zu lösen. Mal gilt es, den Entwicklungsprozess zu optimieren, dann wird ein Software-Architekt benötigt, dann geht es nur um ein spezielles Design-Problem in dieser oder jener Programmierumgebung. Es gibt viele Gründe, warum ich in Projekten mitarbeite… So sieht jedes Projekt erst einmal völlig verschieden aus.

Sobald ich aber länger in einem Projekt bin, habe ich die ersten Déja-Vus. Die Architektur steht, aber die Entwickler beachten sie nicht ausreichend. Beim Bauen von Releases gibt es Probleme mit dem Konfigurationsmanagement. Die Absprachen zwischen Analysten und Entwicklern bereiten Probleme. Der ganze Prozess läuft irgendwie unrund. Dies sind nur Beispiele und die Liste ließe sich noch beliebig erweitern.

Was ich damit sagen will, ist Folgendes: Es ist niemals ein Problem, das man lösen muss! Stattdessen ist es immer eine Kombination verschiedener Dinge, welche ein Projekt zum Straucheln bringen oder es eben erfolgreich machen. Leider machen es sich viele Manager oder Teams zu einfach. Es wird nur das drängendste Problem gesehen. Nach dem Motto “Wenn wir nur eine Lösung für dieses Problem finden, wird der Rest der reinste Spaziergang”. Dieser Glaube an Silver Bullets ist nach wie vor weit verbreitet.

Und so werden neue Tools gekauft, Prozesse umgekrempelt und andere punktuelle Änderungen eingeführt. In Wirklichkeit sind aber aufeinander abgestimmte Lösungen gefragt. Nur ein weiteres Werkzeug zu kaufen oder eine neue Technologie einzusetzen, weil diese gerade angesagt ist, hilft nicht wirklich weiter. Erst wenn man die grundlegenden Probleme verstanden hat, kann man sinnvolle Lösungen konzipieren. Diese sind meist übergreifend. Nur wer diese Zusammenhänge begreift, wird erfolgreich sein. Lösungen setzen meist nicht nur an einem Punkt an, sondern sind eine Kombination aus verschiedenen Dingen.

Auf diese Weise verbreitert sich mein Aufgabengebiet mit der Zeit immer mehr. Ursprünglich werde ich für eine spezifische Aufgabe geholt. Später bemerke ich dann, dass das nur ein Teil des Problems ist. Dann sind plötzlich Erfahrungen aus vielen Bereichen gefragt. Letztendlich erwartet der Kunde, dass er Hilfe bekommt, um sein Projekt erfolgreich abzuschließen. Oft ist Fingerspitzengefühl gefragt, um die richtigen Stellschrauben zu finden. Den großen Wurf gibt es nicht. In der Praxis wird man viele kleine Änderungen vornehmen und immer wieder nachjustieren. Diese iterative Vorgehensweise hat sich bewährt und ist Basis moderner agiler Entwicklungsprozesse.

So ist zwar jedes Projekt einmalig – aber zum Glück gibt es viele Erkenntnisse, die sich über die Jahre bewährt haben. In einem späteren Beitrag werde ich versuchen, diese Erfolgsfaktoren etwas genauer zu definieren.

Tags: , , ,

Hinterlasse einen Kommentar

Dein Kommentar:

Kategorien