Heutzutage ist Software allgegenwärtig. Oftmals fällt sie erst dann auf, wenn sie ausfällt. Auf einmal funktionieren Dinge nicht mehr.

Der Hauptzweck von Software lässt sich meines Erachtens nach auf drei Aspekte reduzieren:

  • Software, die Abläufe automatisiert oder automatisierte Abläufe optimiert.
  • Software, die Möglichkeiten bietet oder erweitert.
  • Software, die Fehler erkennt, verhindert und / oder korrigiert.

Softwareentwickler haben die Aufgabe, Software zu konzipieren und zu implementieren. Diese Aufgabe ist hochkomplex. Ein fundamentaler Aspekt, um wartbare Software, die sich erweitern, kontrollieren und verbessern lässt, ist es, die Zusammenhänge und Abhängigkeiten, die Software als zusätzliche Abstraktionsebene zu dem jeweiligen fachlichen Umfeld hinzufügt, zu isolieren, zu reduzieren und zu vereinfachen.

Ich habe in meiner Rolle als freiberuflicher Softwareentwickler leider häufig erleben müssen, dass Softwareentwickler gerne einen Überschallflieger in Software bauen möchten, obwohl fachlich eine Schubkarre benötigt werden würde. Am Ende kam oft etwas mit Flügeln verschiedenster Bauart, Propellern und Düsentriebwerken sowie einem Fahrwerk heraus, das sich, da man das Flugzeug kippen können sollte, nicht einmal mehr ausfahren ließ.

Umso weniger verstehe ich, wenn es unser Kerngeschäft als Softwareentwickler ist, Software zu erstellen, die mindestens eines der drei oben genannten Kriterien erfüllt, automatisierte Tests immer noch zu vernachlässigen. Es macht sicher Spaß mit neuen Technologien und Ansätzen herumzuspielen. Dabei darf der Blick für das Ziel und die Differenzierung zwischen Fortbildung und Erzeugung von Produktivcode nicht verloren gehen.

Viele Tests lassen sich automatisieren, durch Software. Die exzessive Nutzung von sogenannten Unit- und auch CodedUI-Tests als Integrationstests, schafft nicht nur Sicherheit in die aktuelle, eigene Implementation, sondern auch während Erweiterungen und / oder Umstellungen bestehender Software.

Das ist einer der Vorteile, die man nur in der Softwareentwicklung findet: Die Welt kann jeden Tag komplett neu erfunden werden. Bei einem Wolkenkratzer die untersten 5 Stockwerke auszutauschen, ist technisch nicht möglich. Bei Software sieht das, wenn sie über eine gute Softwarearchitektur verfügt, anders aus.


Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert