Refactoring

Alter Code, Historisch gewachsen, Technische Schulden: Es gibt viele Bezeichnungen für den Zustand von schlecht wartbarem Code.

Ihr Projekt ist ein Erfolg, aber trotzdem verlangsamt sich die Entwicklung?

Wenn Ihrer PHP-Anwendung der Stilllstand droht, keine Features mehr realisiert werden können, die Bugs Oberhand nehmen und Ihre Teams das Projekt meiden, dann räume ich auf.

Ich verwandel Ihren Legacy-Code in wartbaren Code. Damit stelle ich sicher, dass ihre Teams wieder produktiv arbeiten können und sich die Zeiten und Kosten für neue Features reduzieren.

Wie läuft das ab?

0. Projekt-Analyse

Zuerst prüfe ich, ob ich Ihnen helfen kann. Dazu benötige ich einige Informationen, wie z.B. den aktuellen Server-Stack und die eingesetzte PHP-Version. Anschließend untersuche ich Ihren Code, z.B. indem Sie mir Zugang zum Git-Repository geben. Ich arbeite diskret und unterzeichne auf Wunsch ein NDA. Dann erstelle ich einen Planvorschlag, der auf Ihr Projekt zugeschnitten ist. Diesen Plan können Sie dann in Ihrem Team besprechen und abschließend unterhalten wir uns in einem Gespräch über die weitere Vorgehensweise.

1. Stabilisierung

Wenn wir uns auf den Plan geeinigt haben, beginne ich damit, den vorhandenen Code abzusichern. Dabei führe ich zuerst Tools und Mechanismen zur Code-Stabilisierung ein. Dies erfolgt über Pull- bzw. Merge-Requests, die Sie sichten, mit mir besprechen und mergen können.

Dabei verwende ich offenen und etablierte Standards und setze auf eine Auswahl frei verfügbarer Tools. Für diese Tools biete ich Ihnen direkten Support und ggf. Schulungen Ihrer Mitarbeiter.

2. Refactoring

Nun beginnt die eigentliche Arbeit. Ich leiste 5-10 Stunden pro Woche und passe mich mit dem Tempo an Sie an. Ab jetzt verbessere ich Stück für Stück Ihre Code-Basis. Auch hier erstelle ich Pull- bzw. Merge-Requests, die Sie sichten und mergen können. Ich stelle dabei sicher, dass Ihr Projekt mit jedem Merge bereit für ein Deployment ist. Je nach Umfang des Projekts kann dieser Prozess 6-12 Monate dauern.

Ich arbeite dabei parallel zu Ihrem Team, so dass sie weiterhin Features und Ihr Produkt entwickeln können, und nicht auf mich warten müssen. Durch die schrittweise Einführung von CI wird die Code-Qualität immer weiter verbessert und gegen Bugs abgesichert. Damit wird auch Ihr Team mit immer mehr Selbstsicherheit am Code arbeiten können.