Michael Speer, Mitglied des Vorstandes bei Generic.de
IT-DIRECTOR: Inwieweit verändern neue Technologien wie Cloud Computing oder Mobility die herkömmliche Software-Entwicklung?
M. Speer: Cloud Computing verändert die Softwareentwicklung nur in geringem Ausmaß, da service-orientierte und verteilte Applikationen zunächst einmal nichts Neues sind. Interessanter sind mobile Anwendungen, da es in diesem Bereich neue Plattformen (iOS, Android) gibt und die Anwendungen an unterschiedliche Bildschirmgrößen (Smartphone, Tablet) angepasst werden müssen. Das kann unter Umständen jedoch aufwendig sein.
IT-DIRECTOR: Welche neuen Fehlerquellen sind bei der Entwicklung von Individualsoftware für Anwenderunternehmen zu beachten – und welche altbekannten sind nach wie vor relevant?
M. Speer: Bestimmte Fehler in der Software-Entwicklung passieren heute wie früher, wie etwa Programmier-, Design- oder Verständnisfehler. Einige dieser Fehler lassen sich allerdings vermeiden, wenn sowohl Entwickler als auch Kunden die Software-Entwicklung als kreativen Prozess auffassen. Dieser lebt von einer gewissen Flexibilität, was oft festen Terminen, fixen Budgets und starren Pflichtenheften entgegensteht. Mit einem flexibleren Projektrahmen, der dennoch ausreichend Sicherheit bietet, können viele Fehler von vornherein ausgeschlossen werden.
IT-DIRECTOR: Welche Programmiersprache ist derzeit unter Software-Entwicklern besonders beliebt? Und warum ist das so?
M. Speer: Es gibt eigentlich keine besonders beliebten Programmiersprachen, vielmehr bringt jede Plattform, für die entwickelt werden soll, eigene Entscheidungskriterien mit sich. Sogenannte „Managed“-Plattformen, wie Java und Microsoft .Net, sind seit Jahren im Aufwind, jedoch gibt es eine Vielzahl an weiteren Technologien, die alle ihre Berechtigung und ihren Einsatzzweck haben. Neue Strömungen forcieren zum Beispiel die Bedeutung von Javascript in Verbindung mit HTML 5.
IT-DIRECTOR: Mit welchen gängigen Methoden bzw. Modellen lässt sich die Qualität der Software-Entwicklung bewerten?
M. Speer: Die äußere Qualität von Software lässt sich zum Beispiel am Grad der Übereinstimmung mit den Anforderungen bemessen. Um dieser Forderung gerecht zu werden, empfehlen sich zum Beispiel ein fundiertes Requirements Engineering, automatisierte Akzeptanztests und ein agiler Prozess unter enger Einbeziehung des Kunden.
Um die innere Qualität von Software zu beurteilen, die sich unter anderem auf die Güte des Quellcodes hinsichtlich Lesbarkeit, Nachvollziehbarkeit und weiteren Kriterien bezieht, bieten sich ebenfalls mehrere Methoden an, die während der Entwicklung ansetzen. Dazu zählt etwa der konsequente Einsatz automatisierter Testverfahren unter Anwendung qualitätssichernder Prinzipien, wie zum Beispiel „Test First“ oder „Test Driven Development“.
Nach Abschluss der Entwicklung lässt sich die innere Qualität nur noch schwer beurteilen. Zur Verfügung stehen hierfür die statische Quellcode-Analyse, die Hinweise, aber keine scharfen Kriterien erheben kann, sowie ausführliche Code-Reviews durch entsprechend qualifizierte Entwickler.
IT-DIRECTOR: Gibt es Automatisierungs-Tools, mit denen sich die Qualität messen lässt? Wenn ja, welche? Und wie funktionieren diese?
M. Speer: Es können Tests auf verschiedenen Ebenen automatisiert werden, wie zum Beispiel Benutzeranforderungen in Bezug auf die Funktion der Oberfläche. Hierzu wird die Arbeit eines Anwenders simuliert und die Erwartungshaltung bzw. das Ergebnis überprüft. Auf einem niedrigeren Niveau können auch einzelne Funktionen des Programmcodes automatisiert getestet werden, indem das Ergebnis ebenfalls gegen eine Erwartung technisch geprüft wird. Für solch automatisierte Tests wird eine Vielzahl kostenloser und kostenpflichtiger Tools und Frameworks angeboten.
IT-DIRECTOR: Was sollten Anwenderunternehmen, die ihre Software bei einem externen Dienstleister entwickeln lassen, hinsichtlich der Softwarequalität bei der Ausgestaltung der SLAs auf jeden Fall beachten?
M. Speer: Sich gegen Fehler in der äußeren Qualität zu versichern ist einfach – Stichwort Gewährleistung. Diesbezüglich gibt es ein breites Feld an vertraglichen Möglichkeiten. Sich vor mangelnder innerer Qualität zu schützen ist schwierig, denn schon vor der Entwicklung gilt es einen passenden Prozess mit einem kompetenten Dienstleister zu finden. Vertrauen spielt hierbei eine große Rolle, denn schlussendlich kommt es darauf an, den vereinbarten Prozess gemeinsam einzuhalten und zu unterstützen.
IT-DIRECTOR: Welche Auswirkungen hatte der schlimmste Ihnen bekannte Software-Entwicklungsfehler?
M. Speer: Der schlimmste mir bekannte Fehler, der auf einen Programmierfehler zurückzuführen ist, gipfelte in einer dreistündigen Ausfallzeit der produktiven Anwendung. Der schlimmste Fehler, der aufgrund eines mangelhaften Prozesses beim Kunden zustande kam, resultierte in der völligen Neuentwicklung der Anwendung im Umfang mehrerer Mannjahre.