Post-Image

Wie eine sorgfältige Planung die Total Cost of Ownership reduziert

«Augen auf beim Autokauf». Das gilt auch bei Software. Denn bezahlt werden beim Auto muss nicht nur der Kaufpreis und Benzin, Diesel oder Strom. Hinzu kommen auch noch weitere Kosten wie die Fahrzeugversicherung, der regelmässige Service, die Verkehrsabgaben, die Parkplatzgebühren, sowie Reparaturen, Reifen und Autobahnvignette. Diese Gesamtbetriebskosten können sich je nach Fahrzeug erheblich unterscheiden.

Bei Software wird oft von «Total Cost of Ownership» (TCO) gesprochen, also von den «Gesamtkosten etwas zu besitzen». Ein systematisches Vorgehen bei der Planung, Realisierung und Weiterentwicklung oder Beschaffung kann die Gesamtkosten einer Software über den Lebenszyklus um ein Vielfaches senken.

Software-Entwicklung ist nicht «nur» Programmieren

Der Lifecycle einer Software beinhaltet viel mehr als das reine Schreiben von Programmcode.

Zu Beginn ist eine sorgfältige Planung erforderlich. Hier werden bereits die Weichen für den Erfolg einer Software gestellt. Ungenaue oder fehlerhafte Anforderungen sind häufig die Ursache für schwerwiegende Probleme in der Realisierung. Das führt zu Qualitätsmängeln in der entwickelten Software.

Phasen des Lifecycle einer Software

Phasen des Lifecycle einer Software

Um die Einhaltung der Anforderungen zu überprüfen, sind ausserdem gezielte Tests nötig. Diese erstrecken sich vom Programmcode (Unit Tests) bis zum Anwender (User Acceptance Test), und schliesslich zur Abnahme der Gesamtsoftware.

Mit der Einführung einer Software beginnt eine weitere kritische Phase. Deren Aufwand wird ebenfalls oft unterschätzt. Anwender müssen geschult werden, die ersten Fehler tauchen auf und müssen behoben werden, Daten sollen in das neue System migriert werden.

Schliesslich geht die Software in den produktiven Betrieb über. Hier fallen Kosten für Support, Betrieb und Unterhalt an. Wird die Software weiterentwickelt, so zeigen sich auch hier die Vorteile einer sorgfältigen Planung und Qualitätssicherung: Weist eine Software bereits Qualitätsmängel auf, so ist ihre Weiterentwicklung umso aufwändiger. Dies ist in etwa vergleichbar damit, einen Wolkenkratzer auf einem maroden Fundament zu bauen.

Ein systematisches Vorgehen stärkt die Planung und spart Geld

Investiert ein Projekt früh in eine sorgfältige Planung und in systematische Prozesse, z.B. ein solides Anforderungsmanagement, so reduzieren sich die Total Cost of Ownership erheblich. Dies ist in der Grafik unten illustriert.

Qualitativer Verlauf der Gesamtkosten bei sorgfältiger Planung (blau) und vernachlässigtem Anforderungsmanagement (rot)

Qualitativer Verlauf der Gesamtkosten bei sorgfältiger Planung (blau) und vernachlässigtem Anforderungsmanagement (rot)

Bei der roten Variante wurden Planung und Anforderungsmanagement vernachlässigt. Die Komplexität und die Kosten steigen überproportional zum Nutzen. In der blauen Variante entscheidet ein Product Owner über ein kontrolliertes Hinzufügen (oder Entfernen) von Anforderungen und Features. Jeder neue Wunsch oder jedes Bedürfnis wird genau geprüft. Bringt es den nötigen Mehrwert, um die Gesamtzusatzkosten zu rechtfertigen? Die initialen Kosten sind höher, die Gesamtkosten bleiben so aber unter Kontrolle.

Software-Architektur hat einen wesentlichen Einfluss auf die Kosten

Eine durchdachte Software-Architektur trägt einen wesentlichen Teil zur Wirtschaftlichkeit einer Software bei. Sie ist das Fundament für jede Weiterentwicklung und hat wesentlichen Einfluss auf die Kosten für Support, Betrieb und Unterhalt.

Der Einsatz einer neuen Technologie oder einer zusätzlichen Code-Bibliothek führt beispielsweise zu zusätzlichen Abhängigkeiten und unerwarteten Fehlerszenarien. Deshalb muss auch das Zusammenspiel der einzelnen Software-Komponenten genau geplant und kontrolliert werden. Allerdings wird gerade dieser Aspekt in der modernen Software-Entwicklung oft vernachlässigt.

Wir empfehlen deshalb, bei jeder Änderung der Architektur nicht nur die neuen Möglichkeiten der Software zu betrachten, sondern in erster Linie die entstehenden Risiken zu untersuchen. Dazu müssen neben technischen Betrachtungen auch organisatorische Risiken berücksichtigt werden, z.B. die Erfahrung des Entwicklungsteams mit der eingesetzten Technologie oder dem neuen Programmier-Paradigma.

Zu viele Freiheitsgrade gefährden den Projekterfolg

Die Software-Welt ist äusserst dynamisch und schnelllebig. Das fordert viel von Entwicklung, Betrieb und Support, aber auch von den Käufern von Software. Für Nicht-Fachexperten ein schier unmögliches Vorhaben.

Deshalb unterstützen wir unsere Kunden über den gesamten Lebenszyklus einer Software. Wir analysieren ihre Bedürfnisse, planen mit Ihnen die Software-Architektur, und begleiten Realisierung, Einführung und auch Betrieb und Weiterentwicklung. Dabei vereinen wir ein breites technisches Know-how mit einem ausgeprägten Verständnis für die Bedürfnisse eines Unternehmens.

Kontaktieren Sie uns jetzt für ein unverbindliches Gespräch über Ihre Herausforderungen.