Facebook
Twitter
Google+
Kommentare
7

Forrest-Gump-Syndrom

Ich wollte schon immer mal einen Smell benennen und vielleicht klappt es ja heute. Zumindest bin ich guter Dinge und wer gerne um mehrere Ecken denkt, der wird den Transfer, den ich später vornehmen werde lieben. Oder hassen. Oder es ist ihm egal. Habe ich eine Option vergessen? Ich glaube nicht.

Aber fangen wir einfach mal an. Als Qualitätsmanager, der sich gerne um Softwarequalität kümmert komme ich nicht dran vorbei auch mal älteren Code anzuschauen, um rauszufinden, wo die Entwicklungsteams schwächen aufzeigen und um Muster in den auftretenden Fehler oder Schwächen zu finden. Jetzt stand ich letzte Woche mal wieder vor einem Stück Code, dass schon in die Jahre gekommen, aber dennoch wichtig für das Gesamtsystem ist.

Was stank (engl. Smell) an dem Stück Code? Zuerst einmal hatte man das Gefühl, dass es nicht stimmig war. Es gab Methoden, die sich um das eine gekümmert haben und andere, die eigentlich zu einer ganz anderen Aufgabe gehörten. Ihre Schnittmenge war recht gering. Alles im allen war es so, dass man mit einem sauberen Stück Software begonnen hat und dann immer wieder unter Zeitdruck dem existierenden Code neue Funktionalitäten aufgedrückt hat, die vielleicht gar nicht dort hinzugehört haben, aber irgendwie doch dort gepasst haben. Oder am ehesten gepasst haben. Und für eine kleine Erweiterung hat man nicht den Elan die ganze Architektur umzubauen, so dass es dann vielleicht sauberer gewesen wäre.

In den meisten Fällen, wenn man einen Softwareentwickler mal auf solchen gewachsenen Code anspricht, kommt das Argument der fehlenden Zeit. Alles muss schnell gehen und am besten gestern fertig sein. Kennen wir alle und so entsteht auch Softwareerosion. Das System fällt in sich zusammen. Es wird immer schwerer … das habt ihr schon tausendmal gehört. Je mehr Hacks und Workarounds eingebaut sind, desto schmutziger ist der nächste Workaround und man muss immer schneller arbeiten, um pünktlich an sein Ziel zu kommen.

Ein bekannter Smell. Ein Freund von mir hat mir mal den Satz gesagt „Wenn du dich im Wald verlaufen hast, dann solltest du nicht einfach losrennen, sondern kurz anhalten, um dich zu orientieren„. Und genau das sollte man auch bei der Softwareentwicklung machen. Wenn man merkt, dass der Weg, den man gerade beschreitet nicht aus dem Wald hinaus führt, dann sollte man stoppen. Kurz Luft holen, die Lage evaluieren und dann erst weitermachen. Es hilft niemanden wenn man einfach drauf losrennt und den echten Weg soweit verlässt, dass man nicht mehr zurückfindet.

Wenn ihr also eines aus dem Artikel mitnehmen solltet, dann ist es die Metapher, die wie ich finde wunderbar passt.

So jetzt der Transfer zum Titel und dem Smell-Namen. Ihr kennt alle einen der bekanntesten Sätze aus Forrest Gump: „Run Forrest Run“. Naaa macht’s klick? Ich glaube schon. Ok, vielleicht klappt es nicht mit dem offiziellen Namen für einen Smell, aber sicherlich hilft es euch an ihn zu denken.

Über den Autor

Nils Langner

Nils Langner ist der Gründer von "the web hates me" und auch der Hauptautor. Im wahren Leben leitet er das Qualitätsmanagementteam im Gruner+Jahr-Digitalbereich und ist somit für Seiten wie stern.de, eltern.de und gala.de aus Qualitätssicht verantwortlich. Nils schreibt seit den Anfängen von phphatesme, welches er ebenfalls gegründet hat, nicht nur für diverse Blogs, sondern auch für Fachmagazine, wie das PHP Magazin, die t3n, die c't oder die iX. Nebenbei ist er noch ein gern gesehener Sprecher auf Konferenzen. Herr Langner schreibt die Texte über sich gerne in der dritten Form.
Kommentare

Ein Kommentar

  1. Ich stimme mit fast allem überein. Nur nicht mit dem Namen , bei Forrest muss ich immer als erste an „Dumm ist der der dummes tut“ denken (- ; und ich kann mich auch nicht erinnern das Forrest in die falsche Richtung gelaufen ist.

    Vielleicht würde ich es implode-smell nennen, oder antipattern zum Pfadfinder (da man es immer dreckiger hinterlässt) oder jenga-smell (nach diesem Spiel wo man Baustein für Baustein entfernt bis es zusammenbricht).

    Ansonsten ja, lieber anhalten und umschauen bevor man ein stück tiefer im Treibsand steckt. (Treibsand-smell? 😉

    Reply
  2. Problem ist ja meist eher, wenn der Code sooo alt und schlecht ist, dass die Metapher eines wabernden Nebels in dem man gerade mal eine Fläche von pi * 25 Zeilen zum Quadrat erkennen kann, passt – sprich wenn das Gesamtkonzept weder erkennbar noch irgendwie messbar ist.

    Reply
  3. Zusammenfassung:

    Patterns Teil 2 für Fortgeschrittene:

    1. Nicht wild drauf los proggen!
    2. Wer hats erfunden?

    Buzz- *errr* Key-words: Smell, Softwareerosion

    😛

    Reply
  4. So witzig einige Kommentare auch sind, so ernst ist es in der Realität. Aufgrund von enormen Zeitdruck wird dem Entwickler / den Entwicklern überhaupt keine Möglichkeit gegeben, mal kurz Luft zu holen. Selbst wenn es möglich wäre – das Implementieren einer sauberen Lösung würde soviel Zeit kosten, dass der Auftraggeber ständig glaubt, ein anderer hätte es in einem Viertel der Zeit geschafft. Was wohl auch stimmt, aber einem Nicht-Programmierer Softwareerosion zu erklären, dürfte schwer werden.

    Reply
  5. Ich wermute das Ihr alle haben igrgedwelchie gefülle das der syndrom von Forrest in euch innen drin stäckt .Ja ich habe der selbe eindruck ,ich laufe jejeden Tag von 5-10 km un merke keine müdigkeit ,trozdem mein kopf ist sehr belasber von lauter gedanken ,afmerksamkei habe ich auch störungen und wenn ich was machen will bin ich zu faul ,abe laufen kann ich one ende ,ich frage mich selbst was ist mit mir pasieret?

    Reply

Leave a Comment.

Link erfolgreich vorgeschlagen.

Vielen Dank, dass du einen Link vorgeschlagen hast. Wir werden ihn sobald wie möglich prüfen. Schließen