Feature-Fracking
Neulich hörte ich einen schönen Begriff: Feature-Fracking. Ein paar Gedanken zu dem Thema.
Softwareentwicklung ist ein Handwerk wie viele andere auch. Es gibt gewisse Standards, nach denen man gut arbeiten kann. Manche Leute halten von einigen Standards mehr, es gibt gewisse Schulen nach denen man arbeiten kann. Man kommt immer irgendwie ans Ziel, die Frage ist allerdings wie lange man braucht und wie viele Nerven es kostet.
Ein wichtiger Aspekt bei der Softwareentwicklung ist die langfristige Perspektive einer Software. Bei größeren Projekten ist es häufig so, dass sie noch eine ganze Zeitlang existieren werden. Daher ist es wichtig, dass man auch noch in Zukunft weiter an der Software arbeiten kann und man sich da nicht zu viel verbaut.
Ich versuche meist vorher Strukturen zu schaffen, mit denen ich die neue Aufgabe dann gut lösen kann. Manchmal geht das aber nicht im Voraus, weil mir am Anfang noch nicht direkt klar ist, wohin ich am Ende komme. Dann mache ich viele kleine Änderungen und räume dann währenddessen und nachher auf.
In jedem Fall muss man einige Zeit auf das Aufräumen verwenden. Diese Zeit ist aber gut investiert, schließlich ist dann die nächste Funktion oder Fehlerbehebung schneller.
Immer wieder habe ich aber Leute gesehen, die Aufräumen für Zeitverschwendung halten. Die geben sich wenig Mühe neue Strukturen zu schaffen, sie quetschen die vorhandenen Strukturen einfach weiter aus, um noch mehr Funktionen zu erzeugen. Das fällt einem langfristig auf die Füße. Es ist wie in einer total unaufgeräumten Werkstatt. Natürlich kann man noch irgendwie etwas erledigen und um den ganzen Kram herumgehen, auf dem Tisch das Chaos zusammenschieben wenn man Platz braucht. Aber sorgfältig und sauber kann man so nicht arbeiten.
Wenn man aber viel Übung damit hat, noch ein weiteres Ding rauszuquetschen, dann wird man immer besser darin. Man kann mit immer mehr Raffinesse noch ein klein bisschen was rausholen. Das erinnert an Fracking: Man pumpt Chemikalien in Schieferboden rein, holt Erdgas raus und hinterlässt mit Chemikalien durchsetzen Schieferboden, der durch den hohen Druck auch potentiell instabil geworden ist. Möglicherweise gelangt auch Erdgas ins Grundwasser und man kann sein Leitungswasser dann anzünden (gibt es Videos von).
Das Bild kann man auch auf Software anwenden: Man macht Fracking, aber mit Funktionen. Man holt noch immer etwas heraus, hat tolle Dinge zum Vorzeigen, hinterlässt aber immer mehr Chaos, in dem man immer aggressiveres Fracking braucht, um noch etwas rauszuholen.