Software-Engineering/Richtiges Vorgehen entscheidend für Erfolg

Projekte zwischen Bürokratie und Spontaneität

09.03.2001
Über Top oder Flop einer Softwarelösung entscheidet nicht zuletzt der richtige Weg zwischen "wenig" spezifizierten und wissenschaftlich überspezifizierten Vorgehensmodellen. Der reine Softwarefreak ist hier genau so wenig gefragt wie der ultraorthodoxe Dogmatiker. Das Vorgehen sollte natürlich auch auf Rahmenbedingungen des Unternehmens wie vorhandendes Know-how Rücksicht nehmen. Von Hans-Jürgen Plewan und Erik Schade*

Erfolgreiche Softwareentwicklung setzt trotz aller Kreativität und Individualität ein stringentes, für alle Beteiligten verbindliches Vorgehensmodell für das Projekt-Management und die eigentliche Softwareentwicklung voraus. Klare Vorgaben und eindeutig definierte Regeln für die Aufwandsschätzung, Angebotserstellung, Projektplanung, Definition der Projektorganisation, für das Termin- und Budget-Controlling, Änderungs-Management und Berichtswesen sind kein Selbstzweck, sondern unverzichtbare Spielregeln einer erfolgreichen Projektabwicklung.

Das Gleiche gilt für die bei der Softwareentwicklung präferierte Methodik. Die Festlegung von Aktivitäten und Ergebnistypen, etwa in Form von Unified-Modelling-Language- (UML-)Diagrammen, erübrigt sich genau so wenig wie das Festlegen von Rollen ("Wer macht was") und Werkzeugen ("Womit mache ich was"). Die Kunst besteht darin, zwischen den Polen des Extreme Programming (Prinzip: "Das Team wirds schon richten") und dem Rational Unified Process (Prinzip: "festmeterweise Aktenordner") den richtigen Pfad zu beschreiten.

Die Wahl des richtigen Vorgehensmodells ist entscheidend für eine schnelle und praxisgerechte Softwareentwicklung. Unternehmenstypische Determinanten wie die vorhandene Arbeitskraft oder die Kernkompetenzen und Entwicklungsschwerpunkte bestimmen dabei nicht unwesentlich die Verfahrensweise. Kurzum: Das Vorgehen sollte zur Unternehmenskultur und zum Geschäft passen, ein Spiegelbild der strukturellen sowie personellen Gegebenheiten darstellen und nicht zuletzt exakt auf das jeweilige Projekt abgestimmt sein. Ziel ist eine starke Vereinfachung der Planung und Umsetzung von Projekten; die Entwickler sollten in allen Phasen effektiv unterstützt werden. Aber auch klare Vorgaben für eine exakte Dokumentation in einem Case Tool tragen maßgeblich zur Effizienzsteigerung bei. Diese Case-Tool-unterstützte Entwicklung steigert das Entwicklungstempo zusätzlich und stellt ein hohes Maß an Transparenz in allen Entwicklungsphasen sicher. Jeder Entwickler hat so zu jedem Zeitpunkt Zugriff auf alle Modelle und Codes.

Ära monolithischer Programmierung vorüber

Angesichts des Erfolgsdrucks bei der Softwareentwicklung hat sich in der Analysephase die exakte Definition von "Arbeitspaketen" bewährt. Es wird also nicht das Gesamtpaket "in toto" analysiert (beim Vorgehensmodell nach den Prinzipien des Rational Unified Process wäre genau dies der einzig gangbare Weg), sondern immer nur die für ein ganz bestimmtes Modul wie "Aktienankauf" notwendigen Funktionen. Der Vorzug dieser Priorisierung bei der Abarbeitung bestimmter Pakete besteht für die Anwender unter anderem darin, dass dem Kunden relativ schnell ein funktionstüchtiges "Teilpaket" respektive Modul wie "Brokerage" oder "Banking" für den Pilotbetrieb zur Verfügung gestellt werden kann. Für erste Testläufe reicht es oft sogar vollkommen aus, wenn das Modul erst zu 60 oder 80 Prozent entwickelt ist. Die Zeitspanne von der Idee zum konkreten Produkt wird so nochmals verkürzt. Die Korrektur- und Ergänzungswünsche des Kunden können dann ebenso schnell und effizient in ein neues Release einfließen.

Bei diesem so genannten inkrementellen Vorgehen werden also in der Regel mehrere unterschiedliche Module von verschiedenen Softwareteams mit je anderen Aufgabenstellungen parallel entwickelt. Die Entwicklungszeiten lassen sich auf diese Art und Weise reduzieren, da sich auch die Anzahl der neu- beziehungsweise weiterentwickelten Releases normalerweise auf zwei oder maximal drei beschränken lässt. Diese Vorgehensweise setzt allerdings voraus, dass sich die Einzelmodule über entsprechende Schnittstellen problemlos zu dem gewünschten Gesamtpaket zusammenfügen lassen. Insgesamt erlaubt dieses Vorgehen die Steuerung des Prozesses von der Anforderungs- und Feinanalyse über das Design und die Implementierung bis hin zum Testing und zur Auslieferung.

Inkrementelles Vorgehen plus Iterationen

Gerade auch in kleinen Softwareteams stellt das inkrementelle Verfahren ergänzt um Iterationen oft die deutlich flexiblere und wesentlich stärker ergebnisorientierte Vorgehensweise dar. Ein weiterer, ganz entscheidender Vorzug besteht darin, dass ein hohes Maß an Arbeitsteiligkeit realisiert werden kann. In einem Netzwerk hoch kompetenter - gerade kleinerer - Softwarehäuser, die alle der gleichen Methodik und Vorgehensweise verschrieben sind, können so in kürzester Zeit auch komplexere Anwendungslösungen mit klar definierten Schnittstellen marktreif entwickelt werden. So ist sichergestellt, dass die wirklichen Spezialisten auf einem bestimmten Fachgebiet etwa zum Thema "Börseninformationen und Aktienkurse" ihr Wissen und Know-how einbringen können. In diesen arbeitsteiligen Vorgehensweisen liegen zukunftsfähige Modelle der Softwareentwicklung mit enormen Potenzialen.

Frameworks beschleunigen Entwicklung

Das Entwicklungstempo wird wesentlich auch von dem Vorhandensein einer breiten Framework-Basis mitbestimmt. Auf Basis dieser grundlegenden Funktionen ist es möglich, schnell neue Anwendungen respektive Use Cases oder Workflows zu entwickeln und in die Softwarelösung zu integrieren. Kleine "Framework-Teams" entwickeln diese Bausteine kontinuierlich für weitere Anwendungen fort beziehungsweise adaptieren sie für bestimmte Einsatzzwecke. Diese "Plattform-Strategie" in der Softwareentwicklung schafft eine solide Basis, auf der immer wieder aufgesetzt und weiterentwickelt werden kann. Den Aspekten der Schnelligkeit und der Kosteneffizienz wird so Rechnung getragen.

*Hans-Jürgen Plewan und Erik Schade sind Mitarbeiter der 1822 S Inform Software GmbH in Offenbach.

Abb: Iterativer Softwareentwicklungsprozess

Ein modularer Ansatz ergänzt um mehrere Arbeitsdurchläufe erleichtert die Arbeitsteilung zwischen Teams und kommt der Kooperation von Softwarehäusern entgegen. (Quelle: 1822 S Inform Software GmbH)