Warum maintainable Software wichtig ist

In diesem Post erkläre ich was "maintainable" Software ist und warum dies wichtig ist.

Was "Maintainable" Software bedeutet

In der heutigen Welt der Technologie und Softwareentwicklung ist es von entscheidender Bedeutung, Software zu schreiben, die nicht nur funktioniert, sondern auch einfach zu warten ist.

Dies ist besonders wichtig, da die Anforderungen an die Software im Laufe der Zeit ändern können und neue Funktionen hinzugefügt oder bestehende aktualisiert werden müssen. Die Fähigkeit, Software schnell und effektiv zu warten, ist entscheidend für den Erfolg einer Anwendung.

Was ist maintainable Software?

Maintainable Software (zu Deutsch: wartungsfähig oder pflegbar) ist Software, die einfach zu warten ist. Das bedeutet, dass sie leicht aktualisiert, erweitert und repariert werden kann, ohne dass die gesamte Anwendung neu geschrieben werden muss. Maintainable Software kann die Lebensdauer einer Anwendung verlängern und den Wartungsaufwand reduzieren. Es ist auch einfacher, Fehler in der Software zu finden und zu beheben.

*Da die Wörter "wartungsfähig" und "pflegbar" für mich komisch klingen, verwende ich für den Artikel die englische Übersetzung.

Wie erkennt man maintainable Software?

Maintainable Software ermöglicht es Ihnen, schnell und einfach:

  • einen Bug zu beheben, ohne einen neuen Bug einzuführen
  • neue Funktionen hinzuzufügen, ohne Bugs einzuführen
  • die Benutzerfreundlichkeit zu verbessern
  • die Leistung zu erhöhen
  • Änderungen vorzunehmen, um neue Umgebungen, Betriebssysteme oder Tools zu unterstützen
  • neue Entwickler in Ihr Projekt einbinden (onboarden)

Da gibt es noch eine Definition von IEEE Standard Glossary of Software Engineering Terminology (jap, so ein Verein gibts tatsächlich) der wie folgt lautet:

"The ease with which a software system or component can be modified to correct faults, improve performance or other attributes, or adapt to a changed environment."

Übersetzt heisst das, dass Software einer neuen Umgebung angepasst werden kann und leicht modifiziert werden kann ohne dabei Fehler zu verursachen.

Und wie geht nun maintainable software?

Das Entwickeln von wartbarer Software erfordert bestimmte Prinzipien, Ansätze und Techniken. Um eine gute Software zu schreiben, gibt es eine Reihe von allgemein anwendbaren Methoden:

  • Planen Sie von Anfang an für Wartbarkeit
  • Iterative Entwicklung und regelmäßige Überprüfungen verbessern die Qualität
  • Schreiben Sie Code, der leicht zu lesen und zu verstehen ist
  • Refaktorisieren Sie den Code, um seine Verständlichkeit zu verbessern
  • Dokumentation ist hilfreich, um Entwicklern bei der Verwendung der Software zu unterstützen
  • Automatisierte Builds erleichtern die Kompilierung des Codes
  • Automatisierte Tests erleichtern die Überprüfung von Änderungen
  • Kontinuierliche Integration vereinfacht das Erstellen und Testen des Codes
  • Versionskontrolle (Git) hilft dabei, Code, Tests und Dokumentation auf dem neuesten Stand zu halten und zu synchronisieren
  • Machen Sie die Maintainability zu einem Hauptziel, indem Sie Ihre Arbeitsweise anpassen

Maintainability im agilen Umfeld

In agilen Projekten stellt die Maintainability von Software eine Herausforderung dar.

Es erfordert, dass Legacy-Software maintained und Bugs behoben werden, während gleichzeitig neue Produkte entwickelt werden. Die Lösung von neuen Problemen kann zu unerwarteten Ergänzungen des Sprint-Backlogs führen, was die Planung und Verwaltung von Sprints erschwert. Die begrenzte Dokumentation in agilen Projekten kann auch die Wartung erschweren.

Eine Checkliste für Sie

Sie fragen sich sicher nun, wie Sie erkennen können ob Ihre Software maintainable ist.

Hierfür steht Ihnen eine Checkliste zur Verfügung. Je mehr Punkte sie abhaken können, desto besser. Die Punkte die fehlen, werden zu Ihren neuen Hausaufgaben.

  • Kann ich den Code finden, der mit einem bestimmten Problem oder einer Änderung zusammenhängt?
  • Kann ich den Code verstehen? Kann ich die Gründe dafür jemand anderem erklären?
  • Ist es einfach, den Code zu ändern? Ist es für mich einfach festzustellen, was ich als Folge davon ändern muss? Sind die Anzahl und das Ausmass solcher Folgeänderungen gering?
  • Kann ich eine Änderung schnell verifizieren (vorzugsweise in Isolation)?
  • Kann ich eine Änderung mit nur geringem Risiko vornehmen, dass bestehende Funktionen zerstört werden?
  • Wenn ich etwas kaputt mache, ist das Problem dann schnell und einfach zu erkennen und zu diagnostizieren?

Meiner Meinung nach sind die letzten beiden Punkte essenziell (natürlich sind alle wichtig!).

Es gibt nichts nervigeres, wenn Sie eine Änderung vornehmen und eine andere Komponente negativ beeinflusst wird. Oder wenn Sie einen Bug haben und den Ursprung, respektive die Ursache dafür nicht finden können. Das sollte für sie ein Hilfeschrei sein, dass Sie Ihre Software wieder auf Trab bringen sollten.

To maintain or not to maintain

Nach den obigen Punkten eine alberne Frage.

Wer sich selbst, seinem Team und der gesamten Menschheit lieb ist, soll die Software maintainable entwickeln. Sie werden Anfangs etwas mehr Ressourcen aufwenden, dafür sparen Sie langfristig viel Zeit, Kosten und vor allem Nerven!

Somit ist die Frage nicht ob sondern wann Sie anfangen Ihre Software maintainable zu gestalten.

Möchten Sie mit uns Ihre Software maintainen? Smartfactory entwickelt mit Herzblut und Sachverstand Software. Am Firmensitz in Biel setzen wir für namhafte Grossunternehmen und KMU in der ganzen Schweiz spannende Projekte um.

Zum Angebot

Leseratte? Hier haben wir noch weitere spannende Artikel von unserem Redaktionsteam:

ISO 9001:2015 and me - it's complicated...

Wann und wie eine neue Software für das Unternehmen entwickeln

Unsere neue IT Projektmanagerin