Kürzlich habe ich begonnen, an einem Projekt zu arbeiten, bei dem eine sehr alte monolithische Anwendung in eine auf Mikroservices basierende Architektur migriert wird.
Die alte Codebasis ist sehr unübersichtlich ("Spaghetti-Code") und oftmals eine scheinbar einfache Funktion (z. B. "multiplyValueByTen"), die sich später als "Tausende Zeilen Validierungscode mit 10 Tabellen in 3 verschiedenen Schemata" herausstellt.
Jetzt bittet mich mein Chef (zu Recht) zu schätzen, wie lange es dauern würde, Feature X in der neuen Architektur zu schreiben. Aber ich habe Schwierigkeiten, eine realistische Schätzung zu finden. ich oft enorm unterschätzt die Aufgabe , aus Gründen , über ich gesagt habe und mich in Verlegenheit bringen , weil ich nicht in der Zeit nicht beenden können.
Das Vernünftige scheint wirklich in den Code zu kommen, notiert jede Verzweigung und ruft andere Funktionen auf und schätzt dann den Zeitaufwand. Aber es gibt wirklich einen winzigen Unterschied zwischen dem Dokumentieren des alten Codes und dem tatsächlichen Aufschreiben der neuen Version.
Wie soll ich mich einem solchen Szenario nähern?
Obwohl ich genau verstehe, wie das Refactoring von Legacy-Code funktioniert, geht es bei meiner Frage nicht darum, wie Refactor / Rewrite durchgeführt wird. Aber um eine realistische Antwort zu geben: "Wie lange würde es dauern, Teil X umzugestalten / neu zu schreiben?"