Warum Software regelmäßig optimiert werden sollte

Was ist Refactoring?

Wer wünscht sie sich nicht, die Qualitätssoftware? Vieles soll sie bieten und leisten, aber vor allem sein. Wiederverwendbar, erweiter- und wartbar zum Beispiel. Natürlich auf Dauer. Und da ist der Haken, denn Software altert. Mit uns, mit jeder neuen Codezeile. Aber es gibt eine Lösung, das Anti-Aging der Softwareentwicklung: Refactoring.

Warum und wie altert Software?

Eine neu entstehende Software zeichnet sich u.a. meistens durch „sauberen“ Entwurf und Code aus. Ihre Struktur lässt in dieser Zeit kaum Wünsche offen.

Im Laufe der Zeit wird neue Funktionalität hinzugefügt und Bestehendes verbessert, Fehler werden behoben. Die Struktur verschlechtert sich, sie beginnt zu zerfallen.

Viele Codezeilen später ist von der ursprünglichen Struktur kaum noch etwas erkennbar. Das interne Durcheinander der Software sorgt bei der Weiterentwicklung für eine steil steigende Aufwandskurve.

Was ist Refactoring konkret?

Refactoring verlangsamt die Alterung von Software, im Idealfall stoppt es sie sogar. Bereits gereifte Software kann mit Refactoring verjüngt werden. Dies geschieht, indem der Code kontinuierlich „aufgeräumt“ wird. Die Struktur wird somit wiederhergestellt oder verbessert, ohne, dass sich das äußere Verhalten der Software (die Funktionalität) ändert. Das Refactoring stellt mit seinem Anti-Aging-Charakter also eine der Königsdisziplinen der Programmierung von Qualitätssoftware dar. Deshalb verwundert es auch nicht, Refactoring als Bestandteil der Testgetriebenen Entwicklung (TDD) sowie des Testgetriebenen Entwurfs (auch TDD) zu finden.

Wann und wie betreibt man Refactoring?

Am besten „refactort“ man direkt, nachdem man neue Funktionalität hinzugefügt oder existierende geändert hat. In sehr kleinen Schritten werden so beispielsweise Redundanzen entfernt, die Verständlichkeit und Lesbarkeit des Quelltextes verbessert oder die Erweiterbarkeit der Software gesichert. Moderne integrierte Entwicklungsumgebungen (IDEs) wie IntelliJ IDEA oder Eclipse unterstützen den Entwickler dabei tatkräftig. Um gewährleisten zu können, dass nach einer Umstrukturierung das gewünschte Verhalten der Software fortbesteht, benötigt man übrigens ein „Sicherheitsnetz“ aus automatisierten Regressionstests (s. z.B. JUnit).

Wie kann man Refactoring lernen

Soll Ihre Software innerlich jung und schön bleiben, dann wenden Sie doch die Rezepte aus Martin Fowlers Refactoring-Buch an. Auf größere binäre Anti-Aging-Vorhaben sollten Sie sich vorbereiten, am besten gemeinsam mit uns! Beispielweise mit unserer Schulung Refactoring Legacy CodeWie Sie sich auch entscheiden: Wenn Sie das Erlernte anwenden, können Sie Ihrer reifen Software schon bald wieder in die Augen sehen „wie damals“ ;)

Vorteile von Refactoring

  • Strukturverbesserungen ohne Verhaltensänderung
  • Redundanzfreiheit
  • Bessere Verständlichkeit, Lesbarkeit und Erweiterbarkeit.
  • Der Code wird dadurch einfacher und übersichtlicher. Er wird leichter wartbar und flexibler.
  • Fehler können schneller lokalisiert werden. Die Software wird besser testbar.
  • Sogar ihr Laufzeitverhalten kann komfortabler verbessert werden.
  • Und ganz wichtig: Die Aufwände für Weiterenwicklung sowie Fehlersuche und -analyse sinken!
Unser it-agile Lagerraum

Möchten Sie mehr erfahren?

Tauschen Sie sich mit unseren Expert:innen aus und lassen sich zu Schulungen, Coaching oder Wissensthemen beraten.

 

+ 49 40 4135 848-0    info@it-agile.de    Online Termin buchen

Agile Coaching von it-agile

Kennen Sie eigentlich schon it-agile?

Die Expert:innen zu agiler Arbeit und agilen Methoden

Kund:innen wollen begeistert werden. Mit innovativen Produkten, durch Schnelligkeit, Transparenz und auch Verlässlichkeit. Unsere erfahrenen Agile Coaches sorgen gemeinsam mit Ihren Teams und Führungskräften dafür, auch in komplexer Umgebung Ihre Ziele nicht aus dem Auge zu verlieren und implementieren die richtigen agilen Methoden für nachhaltige Veränderung.

  • Wir integrieren Pragmatismus mit Idealismus
  • Wir befähigen Sie nachhaltig ohne Abhängigkeit von uns
  • Wir erzeugen Kundenfokus mit wirkungsvoller Agilität
agile review Magazin

agile review

Unser Kundenmagazin 

In unserem Magazin stellen wir Artikel rund um agiles Arbeiten für Sie zusammen. Das Spektrum reicht von methodischen Themen wie Scrum und Kanban über Agile Leadership bis hin zu technischen Aspekten wie agilem Testen und flexiblen Architekturen.

  • Als Abo oder Einzelausgabe erhältlich
  • Digital oder Print
  • Einzelne Artikel sofort digital verfügbar

Wissens- und Lesenswertes

Das könnte Sie zu Agiler Arbeit auch interessieren

Die 5 Dysfunktionen eines Teams

Agile Teams

Die fünf Dysfunktionen sind in einer Pyramide angeordnet, um auszudrücken, dass eine Ebene der Pyramide die vorherige als Voraussetzung braucht.

Agile Teams

Ein Haufen abhängiger agiler Teams ergibt noch kein agiles Unternehmen. Die übergreifenden Themen führen zu extremen Overhead, schlechter Vorhersagbarkeit und langsamer Time-To-Market. Diese Probleme…

Agile Teams

Wir hören immer mal wieder, dass Entwickler:innen Scrum hassen - wegen der vielen Meetings. Was steckt dahinter?

it-agile Newsletter

Sichern Sie sich regelmäßige Neuigkeiten, Inspiration und Tipps zu agiler Arbeit, Konferenzen, aktuelle und neue Termine für unsere Schulungen sowie vieles mehr.


* Benötigte Angaben