Veröffentlicht:

Warum Software in der Softwareentwicklung unwartbar wird

.

Warum Software in der Softwareentwicklung unwartbar wird Photo by David Pupaza / Unsplash

Geschrieben von



Software in der Softwareentwicklung wird oft als unwartbar betrachtet, weil es schwierig ist, den Code im Laufe der Zeit zu pflegen und zu warten. Es gibt mehrere Gründe, warum dies der Fall sein kann.

Komplexität und Harte Abhängigkeiten von Komponenten

Einer der Hauptgründe ist die Komplexität der Software selbst. Je komplexer die Software, desto schwieriger ist es, sie zu verstehen und zu warten. Dies liegt daran, dass es viele verschiedene Komponenten gibt, die miteinander interagieren und oft miteinander verknüpft sind. Wenn eine Änderung an einer Komponente vorgenommen wird, kann dies Auswirkungen auf andere Komponenten haben, die unerwartet sein können. Dies kann dazu führen, dass Fehler auftreten, die schwierig zu beheben sind. Ein möglicher Indikator für zu hohe Komplexität ist die "zykomatische Komplexität", diese kann mit jeder Entwicklungsumgebung für einzelne Komponenten gemessen werden.

Keine, falsche oder unzureichende Dokumentation

Ein weiterer Grund, warum Software in der Softwareentwicklung unwartbar wird, ist die mangelhafte Dokumentation. In vielen Fällen gibt es keine ausreichende Dokumentation, die beschreibt, wie die Software funktioniert und wie sie gewartet werden kann. Dies macht es schwierig, den Code zu verstehen und Änderungen vorzunehmen, ohne dass Fehler auftreten.

Keine einheitlichen Programmierstandards

Ein weiterer Faktor, der zur Unwartbarkeit von Software beitragen kann, ist der Mangel an Einhaltung von Programmierstandards. Wenn keine festgelegten Standards befolgt werden, kann der Code unübersichtlich und schwer zu verstehen sein. Dies macht es schwierig, Änderungen vorzunehmen und Fehler zu beheben.

Diese Standards sollten sowohl in der kompletten Projektmappe (Einheitlicher Aufbau von Ordner- und Dateistrukturen) wie auch in der Benamung von Variablen erfolgen. Ebenso muss sichergestellt werden das sich jeder Entwickler and diese Vorgaben hält. Gerade neue Mitarbeiter sollten regelmäßig einem Code Review unterzogen werden.

Keine Parität zwischen Dev, Test und Live Umgebung

Parität ist ein Begriff, der sich auf Gleichheit oder Gleichberechtigung bezieht. In verschiedenen Kontexten wird der Begriff auf unterschiedliche Weise verwendet.

Gemeint ist in unserem Fall, dass Test und Live System nahezu identisch sein sollte. Unterschieden wird hier ausschließlich ob Test oder Produktivdaten verwendet werden. Identisch sollte sein:

  • Der verwendete Code - Vorzugsweise über ein Docker Image. Nicht einzelne Code Komponenten manuell austauschen! (Ja, sowas gibts tatsächlich)
  • Die installierten Pakete und Libraries z.B. gleiche PHP Version, gleiche php.ini und gleiche PHP Pakete (curl, pdo_mysql etc.)
  • Identische Ausstattung der Server Hardware (Beispiel beide Server sind virtuell mit 4 CPUs und 8 GB RAM)
  • Identisches Caching Verhalten. Wenn der Live Server einen Redis Cache nutzt, sollte dies auch der Test Server tun.

Am besten erreicht man diese Parität indem man ausschließlich auf Docker Images setzt. Dadurch ist sichergestellt das sowohl in der Entwicklungsumgebung wie auch auf dem Test und Live Server immer der gleiche Code und die gleichen Libraries verwendet werden. Ebenso sollte das Ausrollen von Code Updates (Oder Images) nicht manuell erfolgen, sondern über sogenannte CI/CD Pipelines. Durch den Einsatz solch einer Pipeline ist es ohne weiteres möglich auch einen Rollback auf eine frühere Version durchzuführen.

Unzureichende Wartung oder fehlendes Refactoring

Schließlich kann die Unwartbarkeit von Software auch darauf zurückzuführen sein, dass sie nicht regelmäßig gewartet wird. Wenn die Software nicht regelmäßig überprüft und aktualisiert wird, können sich Fehler ansammeln, die im Laufe der Zeit immer schwieriger zu beheben sind.

Wie man die Wartbarkeit von Software verbessern kann

Um die Wartbarkeit von Software in der Softwareentwicklung zu verbessern, gibt es einige Maßnahmen, die ergriffen werden können. Eine davon ist die Einhaltung von Programmierstandards, um den Code lesbarer und verständlicher zu machen. Eine umfassende Dokumentation kann auch dazu beitragen, dass der Code leichter zu verstehen ist und Änderungen leichter vorgenommen werden können.

Kommentare