Unnötige Zusatzkosten durch schlechte Software-Architektur

Unnötige Zusatzkosten durch schlechte Software-Architektur

  • Andrej Albrecht
  • 2016-08-03 13:32:00

Das Telefon klingelt. Es ruft ein Kunde nach Hilfe, da ein Software-Entwickler von seinem Projekt abgesprungen ist und ein unvollständiges Projekt liegen gelassen hat. Die Zeit ist knapp bis die Anwendung veröffentlicht werden soll. Der Projektleiter hat mir eine kurze Einführung zu dem Projekt gegeben. Ich habe mich in den Programmcode eingelesen und musste leider feststellen, dass bei der Anwendung so viele Fehler gemacht wurden, dass eine Ausbesserung länger dauern würde als eine Neuentwicklung. Totalschaden! Autsch!
Bei einem anderen Beispiel war die Anwendung fertig und bereits seit Monaten in den AppStores verfügbar, jedoch wurde die Anwendung sehr schlecht bewertet. Die Benutzer beklagten sich über viele Abstürze und fehlerhafte Funktionalitäten der Anwendung.
Es handelte sich um eine größere Anwendung, so dass es einige Wochen gedauert hat, sämtliche Bugs auszubessern. Der Kunde wünschte sich zusätzlich neue Funktionalitäten in der App und am liebsten auch ein komplett neues Design. Einige Funktionen konnten in der existierenden Anwendung erweitert werden. Für das neue Design der Anwendung musste ich dem Kunden jedoch zu einer kompletten Neuentwicklung der Anwendung raten, da es sehr aufwändig geworden wäre das neue Design mit der bestehenden Funktionalität zu kombinieren. Die einzelnen Bausteine waren zu groß und zu sehr miteinander verzahnt. Um das Design mit der bestehenden Logik zu verknüpfen müsste zu viel umgebaut und ausgebessert werden. Zu große Bausteine waren auch der Grund für die vielen Bugs in der Anwendung. Kleine Änderungen hätten Auswirkungen in ganz anderen Bereichen der Anwendung. Eine Neuentwicklung der Funktionalität in Verbindung mit dem neuen Design würde jede Menge Vorteile bieten, wie eine höhere Stabilität, leichtere Erweiterbarkeit und Wiederverwendbarkeit. Und damit auch geringere Kosten in der Zukunft, da kaum Änderungen an einer guten Architektur durchgeführt werden müssten, falls Erweiterungen dazukommen würden. Das wünscht sich doch jeder Kunde und auch jeder Software-Entwickler, der viel Wert auf seine Qualität legt und nicht einfach nur programmiert, um seine Rechnungen zu bezahlen.

Leider sind das keine Einzelfälle. Es kommt häufig vor, dass Freelancer oder Agenturen bewusst aus Zeitdruck oder unbewusst durch mangelnde technische Fähigkeiten eine minderwertige Qualität abliefern. Leiden muss dann der Kunde, da die eigentlichen Ursachen meist zu spät oder garnicht auffallen. Als Kunde hat man nur die Möglichkeit, selbst die Anwendung zu testen.
Falls die Fehler in der Anwendung nicht auffallen und die App veröffentlicht wird, dann kann anhand schlechter Bewertungen in den AppStores ebenfalls eine schlechte Qualität der App festgestellt werden, wenn sich die Benutzer über Abstürze und fehlerhafte Funktionen beschweren. Dann ist es jedoch viel zu spät. In dem Moment hat man bereits App-Benutzer verloren und es wird langwierig aus einer schlechten zu einer guten Bewertung zu gelangen. Bei dieser App konnte, nachdem alle Fehler ausgebessert wurden, die Bewertung von 30% auf 80% gesteigert werden (4 von 5 Sterne).

Die Ursache des Problems kann folgendermaßen mit einem Beispiel aus der realen Welt beschrieben werden. Jeder Mensch ist fähig ein kleines Baumhaus zu bauen. Jedoch ist nicht jeder Mensch fähig einen Wolkenkratzer zu bauen. Dazu ist viel mehr erforderlich. Es werden nicht nur spezielle technische Fähigkeiten benötigt, es ist auch jede Menge Erfahrung notwendig. Ganz besonders, wenn die Anwendung auch in der Zukunft erweitert werden soll, ist eine gute solide Architektur der Anwendung notwendig. Daher sollten von Beginn an gute und erfahrene Software-Entwickler gewählt werden. Als Kunde kann man den Entwicklern bei der Entwicklung der Architektur behilflich sein, indem klare Anforderungen mitgeteilt und evtl. auch die Bereiche genannt werden, in denen es in naher Zukunft Erweiterungen geben soll. Dann kann die Architektur von Beginn an darauf abgestimmt werden.
Dauert die Entwicklung nicht länger und ist es nicht teurer einen erfahrenen Entwickler zu beauftragen? Nein, die Entwicklung einer guten Architektur dauert nicht unbedingt länger. Wenn ein gutes Konzept erstellt wird, dann ist die anschließende Implementierung auch schneller abgeschlossen. Natürlich kostet ein erfahrener Entwickler oder eine gute Agentur mehr Geld (Vorsicht! eine teure Agentur bedeutet nicht gleich eine bessere Qualität!). Jedoch muss man sich nicht mit dem Ärger von schlechten Bewertungen beschäftigen und Lösungen dazu finden. Auch kommt es zu keinen unangenehmen Überraschungen, wenn eine simple Erweiterung der Anwendung eine komplette Neuentwicklung der Anwendung zur Folge hat. Daher wird langfristig gesehen mit einer guten Software-Architektur Geld eingespart.

Worauf sollte geachtet werden?
Als Auftraggeber sollten Sie sich den Entwickler oder die Agentur genau ansehen. Einen guten Mobile-Entwickler oder eine gute Agentur, die App-Entwicklung betreibt erkennen Sie an den Bewertungen der veröffentlichten Apps. Eine App wird nur selten schlecht bewertet, wenn der Benutzer keinen Mehrwert durch die App hat. Jedoch werden Apps sehr schnell schlecht bewertet, wenn diese zu Abstürzen führen oder die Funktionalität fehlerhaft ist.
Auch sollte in Erfahrung gebracht werden ob der Entwickler oder die Agentur Kunden seit einem langen Zeitraum betreut. Ein zufriedener Kunde ist ein treuer Kunde. In diesem Fall wurden sehr wahrscheinlich Erweiterungen an der Anwendung gemacht, bei denen es vermutlich zu keinen Komplikationen gekommen ist. Auch kann man sich vom Entwickler oder der Agentur erläutern lassen, was diese bezüglich der Architektur unternehmen. Falls dann nicht zumindest die Worte wie objektorientierte Grundprinzipien und Entwurfsmuster fallen, dann sollte man skeptisch werden.