Direkt zum Hauptbereich

Software Qualität und die Metrik Zombies

Das zur Softwareentwicklung heute mehr gehört als einfach nur irgendwie die gewünschte (oder gar vermeintlich gebrauchte) Funktionalität zusammen zu hacken, hat sich ja bei den meisten herumgesprochen.
Die erstellte Software soll heute auch einen gewissen Qualitätsanspruch genügen. Aber was ist Qualität. Wenn man diese Frage in eine Runde von Softwareentwicklern stellt, so bekommt als Antwort auch schon mal ein breites Spektrum von fragenden Gesichtern bis hin zu einer Reihe an Buzzwords. Dabei findet sich dann so was wie Testabdeckung, Checkstyle, Dokumentation und ab und an auch mal FindBugs etc. Recht selten gibt es dann auch Antworten wie SOLID, lesbarer Code etc.

Auffällig ist, dass zuerst meistens Dinge genannt werden, welche durch irgendwelche Tools und IDE Plug-Ins automatisch geprüft werden könne. Das bestehen dieser Prüfungen oder erreichen gewisser Werte (Testabdeckung) wird dann als Qualität interpretiert.

Grundsätzlich ist die Anwendung dieser Tools ja nicht schlecht, wenn sie gezielt eingesetzt werden und nicht einfach alle Verfügbaren eingebunden werden. Die Masse der Kennzahlen und Tools mach auch hier keine Qualität. Die Tools können helfen sich gute Gewohnheiten anzueignen oder bei Dingen, welche man selten implementiert an die Gefahren zu denken.

Leider werden aber einige Entwickler zu Metrik Zombies sobald so ein Tool eingeführt ist. Sobald das Tool ein Problem meldet wird alles getan um die Meldung zu entfernen. Ob das Problem damit behoben oder ein neues entstanden ist, ist zweitrangig. So wird z.B. ein nicht serialisierbares Feld in einer serialisierbaren Klasse als transient gekennzeichnet damit die Warnung verschwindet, aber nicht dafür gesorgt, dass dieses Feld nach einer deserialisierung wieder gesetzt wird. Die false positives oder den Klassiker mit der Testabdeckung brauch ich ja wohl nicht mehr aufführen oder? Ob dadurch die Qualität der Software steigt sei mal dahingestellt.

Gute Gegenmittel sind die ausgewogene Wahl der eingesetzten Tools verbunden mit einem Verständnis für Ergebnisse und Reviews welche Lösungen auch mal kritisch betrachten dürfen.
Viel Erfolg im Kampf gegen die Untoten im Team.

Kommentare

  1. Oh man: Beim Lesen der Überschrift dachte ich, dass es um eine Metrik Namens "Zombies" geht, also zum Beispiel den Prozentsatz der Klassen/Methoden, die im Projekt vorhanden aber nie benutzt werden. :-D

    AntwortenLöschen
    Antworten
    1. Über die "Zombie Metrik" sollte man mal nachdenken :-)

      Löschen

Kommentar posten

Beliebte Posts aus diesem Blog

Eine Retro im Kreis

Für die letzte Retro habe ich die Tische und Stühle alle beseite gestellt um dann mit Klebeband (Malercrep) drei unterschiedlich große Kreise um einen Mittelpunkt zu kleben. Der innerste Ring war groß genug, dass das gesamte Team da drin Platz finden konnte. Für die erste Phase der Retro habe ich Kärtchen mit den Zahlen 50, 40, 30, 20 in den Ringen ve rteilt. Die 50 in der Mitte und dann absteigend nach außen. Um so eine Zielscheibe anzudeuten.

Mit dem Rücken am Tellerrand

Es ist gut auch mal über den Tellerrand zu schauen. Manchmal sind wir so in "unserer Welt" gefangen, dass wir den Rest gar nicht mehr wahr nehmen. Zum Beispiel muss ich mich immer wieder daran erinnern, dass nicht alle Menschen mindestens ein Smartphone haben. Oder das agile noch lange nicht Mainstream ist. Nur weil wir uns in einem Umfeld bewegen, in dem die Dinge so scheinen wie sie sind, heißt das noch lange nicht, dass dem auch so ist. Ein Typisches Beispiel für den Unterschied von Realität und Wahrnehmung der Realität. Aber auch um neuen Ideen eine Chance zu geben, welche scheinbar nicht funktionieren können, weil sie nicht in unsere Gedankenwelt passen ist es sinnvoll ab und an über den Tellerrand zu schauen. Heute habe ich noch einen Tweet, welcher darauf hinweist gesehen: Wenn uns das einmal bewusst geworden ist, dann neigen wir (oder zumindest geht es mir so) dazu möglichst oft über diesen Tellerrand zu schauen. Dabei kann es aber passieren, dass wir so

Der Wasserfall ist immer noch vorherrschend in der Softwareentwicklung

In den letzten Jahren sind viele "neue" Bewegungen auf der Bildfläche des Mainstream-Bewusstseins der Softwareentwicklung erschienen. Und viele aktuelle Studien berichten, dass die Agilität den Wasserfall abgelöst hat. In allen Softwareunternehmen und viele der Entwickler die ich treffe reden zumindest viel über Agilität. Wenn aber mal einen Schritt zurück macht sieht das (ideal) Bild eher so aus: Die neue Lösung wird mit Design Thinking gefunden und definiert. In der Entwicklung ist dann eher die Rede von agile (meist Scrum) und selten SoftwareCraftsmanship. Von der Betriebsseite heißt es nun DevOps. Aber dazwischen gibt es immer noch Brüche und es existiert keine Ganzheitlichkeit. Jahrzehnte lang haben wir in der Softwareentwicklung geglaubt und es so auch allen Kunden beigebracht, dass die "Cost of Change Curve" gilt und daher der Wasserfall als Vorgehen perfekt ist. (Was nun was bedingt, lass ich mal dahingestellt) Dadurch haben sich natürlich auch di