Fast-Food-Software voller Fehler
Chaos bei der Entwicklung von Software ist normal
Kunden scheinen am Anfang noch nicht so genau zu wissen, was sie eigentlich wollen und packen dann sicherheitshalber alles Mögliche in den Anforderungskatalog, anstatt genauer nachzudenken. "Die Idealvorstellung, wir wüssten genau, wie ein Produkt später aussehen soll, gibt es in der Praxis fast nie", hat Kerry Lothrop beobachtet, der als Principal Consultant für Zühlke arbeitet. Ausnahmen seien allenfalls Software-Projekte im Flugzeugbau oder in der Automobilindustrie, aber im alltäglichen Projektgeschäft komme das sehr selten vor, meint Lothrop.
Häufiges Defizit: Testfehler
Software durchläuft den dreistufigen Entwicklungszyklus: Requirements Engineering, Entwicklung, Testing – und auch beim Testen unterlaufen typische Fehler. "Kunden implementieren und testen die Software in einer Umgebung, die nicht dieselbe ist wie die zukünftige Zielumgebung, in der das System später produktiv eingesetzt wird", erzählt Christian Gasser, Geschäftsbereichsleiter Architektur bei Elca. Dadurch würden viele Defekte zu spät entdeckt und die Fehlerbehebung verteuert sich unnötig.
Ein häufiges Defizit bestünde auch darin, Systemfehler – also Fehler in der Software – während der Produktionssetzung direkt manuell zu beheben, ohne dabei ein Änderungsprotokoll (Change Log) zu erstellen. Software-Entwicklung ist Teamarbeit und die Kollegen wissen dann nichts vom ausgebesserten Source Code. Mehr Sorgfalt bei der Vorbereitung und extrem genaues Arbeiten beim Testing, so könnte man die Ratschläge der Software-Häuser für ihre Kunden auf den Punkt bringen. Dann wird Software besser und sicherer.
Herausforderung Mobile
Die gut gemeinten Ratschläge sind jedoch gar nicht so leicht in die Tat umzusetzen. Insbesondere mobile Applikationen müssen mit einer Vielzahl unterschiedlicher Betriebssysteme, Geräte und Versionen klarkommen. Hinzu kommen Zusatzfunktionen wie Fingerabdruckscanner, Kameras oder Push-Notifications. Das treibt die Testaufwände und -kosten in die Höhe.