Erfolgsbarrieren in Software-Projekten
Nach einer Erhebung von Gebert Software müssen die IT-Entwicklungsabteilungen der Unternehmen regelmäßig einen hohen Aufwand in die Nachbearbeitung ihrer neuen oder modifizierten Software-Lösungen stecken, weil sich im Produktivbetrieb vielfältige Probleme zeigen.
Die Schwierigkeiten reichen von Inkonsistenzen unter Praxisbedingungen bis zur unzureichenden Revisionsfähigkeit. In jedem fünften Fall sogar liegen die erforderlichen Mehrleistungen durchschnittlich bei über 20 Prozent im Vergleich zum eigentlichen Entwicklungsaufwand. Gebert Software hat fünf Erfolgsbarrieren für Software-Projekte skizziert:
Schlechte Software-Verwaltung/Dokumentation:
Sie resultiert nicht zuletzt daraus, dass beim Einsatz der üblichen Programme zur Source- oder Versionsverwaltung wie CVS, Subversion, Git oder Mercurial nur Abhängigkeiten auf der Source-Ebene Berücksichtigung finden. Diese Systeme können deshalb nur begrenzt helfen, Inkonsistenzen zu vermeiden. Notwendig ist vielmehr eine Software-Verwaltung, die ebenso Querbezüge – beispielsweise auch zwischen Programm und Skript – analysieren und verwalten kann. Sie muss zudem durchgängig in den gesamten Entwicklungsprozess integriert sein.
Unklare Prozesse in der Software-Entwicklung:
Eine geringe Transparenz der Abläufe erzeugt Unklarheiten, verunsichert die Entwickler, erhöht den Kommunikationsbedarf und erzeugt dadurch Fehlverhalten. Dies geht nicht nur zulasten der Effizienz, sondern die nachträglichen manuellen Korrekturen bergen immer auch eine höhere Fehleranfälligkeit in sich, da selbst bei der Anpassung eines Skripts oder dem Kopieren einer Datei intransparente Entwicklungen mit hohem Folgerisiko entstehen.
Programmierstandards werden nicht genau beachtet:
In der Regel sind die Programmierstandards in internen Handbüchern hinterlegt, die in der Praxis aber selten in die Hand genommen werden. Als Konsequenz nutzt jeder Entwickler eigene Interpretationen. Durch die Nutzung unterschiedlicher Methoden entstehen später jedoch mitunter erhebliche Diskrepanzen in der Anwendung. Dies führt bestenfalls zu einer nachträglichen Bearbeitung, es ist aber auch möglich, dass methodische Bugs trotz Testing noch eine längere Zeit im Programm schlummern. Für kritische Software-Objekte ist deshalb eine Vorgehensweise nach dem Generierungsprinzip zu empfehlen. Es vermeidet die Probleme bereits in ihrer Entstehung und macht die Ergebnisse portabel.