Ich arbeite in einem ziemlich bekannten MNC, und das Modul, in dem ich arbeite, wurde einem neuen "Lead" zugewiesen. Die Codebasis ist ziemlich groß (~ 130 KB oder mehr, mit Abhängigkeiten von anderen Modulen), aber stabil - einige Teile sind im Laufe der Jahre hässlich geworden, aber nachweislich funktionsfähig. (Unsere Produkte laufen seit Jahren auf ihnen, auch neue). Das Problem ist, dass unser Lead den Code von Grund auf neu schreiben möchte, um "feinere Granularität und ein proaktives Design" zu umfassen.
Ich weiß in meinem Bauch, dass das keine sehr gute Idee ist, aber wie kann ich ihn / den Rest des Teams (der in Bezug auf Jahre der Erfahrung ziemlich viel älter ist als ich) überzeugen, ohne selbst zu pedantisch zu klingen (du sollst nicht umschreiben, da Joel et al klare Artikel haben, die dies verbieten)?
Ich habe ein gutes Arbeitsverhältnis zu der betroffenen Person und möchte es nicht ruinieren, aber ich möchte auch nicht an einer Entscheidung teilnehmen, die uns sicherlich für die kommenden Jahre plagen würde !! Irgendwelche Vorschläge für einen milderen und dennoch effektiven Ansatz? Selbst Berichte darüber, wie Sie eine solche Situation nach Ihren Wünschen angegangen sind, würden mir sehr helfen!
BEARBEITEN: Die Codebasis, über die ich spreche, ist kein Produkt / keine grafische Benutzeroberfläche, sondern auf Kernelebene mit allen kritischen Funktionen für unser Produkt. Ich hoffe jetzt weißt du warum ich so besorgt klinge !!
quelle
Antworten:
Rechnen Sie mit ihm zusammen:
Auf der Schuldenseite:
Wie lange dauert es, bis die Funktionen wiederhergestellt sind, über die Sie gerade verfügen? Wie viel kostet das (Entwickler + Overhead)
Wie viel wird das Unternehmen verlieren, wenn es keine neuen Funktionen / Bugfixes bereitstellen kann oder nur viel langsamer?
Wie hoch ist das Risiko, dass das Umschreiben nicht abgeschlossen werden kann und nach n Monaten auf die aktuelle Quellenbasis zurückgegriffen werden kann? Einschließlich des Risikos, das Produkt insgesamt abzutöten.
Wie lange dauert es, bis die neue Codebasis genauso hässlich aussieht wie die aktuelle?
Auf der Aktivseite:
Addieren Sie alles und führen Sie möglicherweise einen Vergleich der besten / schlechtesten Szenarien durch.
Am Ende haben Sie eine Antwort. Wenn er die Antwort ignoriert, sprechen Sie mit seinem Chef.
quelle
Obligatorisch: Dinge, die Sie niemals tun sollten, Teil 1 (Sie haben es gesehen, aber falls jemand diese Frage findet und nicht.)
Das Neuschreiben von Grund auf ist für Entwickler sehr verlockend. Niemand möchte an Legacy-Code arbeiten, jeder möchte sexy neuen Code schreiben. Aber am Ende des Tages geht es darum, was für das Geschäft am besten ist. Warum ist ein Umschreiben erforderlich? Können sie diesen Fall klar darstellen, was einen Mehrwert für das Unternehmen zeigt?
Sie sollten sie nicht davon überzeugen müssen, keine Ressourcen auszugeben. Sie sollten die Unternehmen davon überzeugen müssen , um Ressourcen zu verbringen.
quelle
Wie gut deckt Ihr Testansatz die Codebasis ab? Wie wäre es mit Unit-Tests?
Wenn es dort nicht bereits vorhanden ist, schlagen Sie vor, dass jeder Code jeweils nur in einem Abschnitt neu geschrieben wird und dass jeder Abschnitt, der neu geschrieben wird, eine nahezu vollständige (90% +) Abdeckung des Unit-Test-Codes aufweist. Sobald Sie dies getan haben, haben Sie einen Teil des Codes definiert, der sowohl gut definiert ist (wir könnten ihn testen) als auch über eine bekannte Schnittstelle verfügt.
Zu diesem Zeitpunkt ist das Umschreiben dieses Codes ein viel geringeres Risiko. Fehler sollten durch Unit-Tests / andere Tests aufgefangen werden, und vorausgesetzt, Sie haben auch eine Quellcodeverwaltung, können diese leicht rückgängig gemacht werden.
Wenn Sie das Umschreiben in kleineren Abschnitten durchführen, können sowohl Sie als auch Ihr Team ein genaueres Gefühl für ein vollständiges Umschreiben haben. Wissen Sie beide, worauf Sie sich einlassen? Ist einer von euch zu pessimistisch / optomistisch?
quelle
Es sind einige relevante Faktoren zu berücksichtigen:
quelle
Sag einfach nein." Seien Sie überzeugend, aber seien Sie bereit zu sagen: "Sie sind nicht nur falsch in Bezug auf die Vorteile, sondern Sie liegen auch falsch, weil es eine Verschwendung menschlicher Anstrengungen ist."
quelle
Wo ist der Business Case für ein Umschreiben? Sie haben eine Codebasis, die einen Bedarf erfüllt. Zugegeben, es ist vielleicht nicht perfekt, aber es stellt eine erhebliche Investition in Bezug auf Zeit und Ressourcen dar. Das vollständige Umschreiben ist nur dann gerechtfertigt, wenn die Codequalität so schlecht ist, dass das Unternehmen Geld oder Geschäftsmöglichkeiten verliert. Man muss sich an das alte Sprichwort erinnern, wenn es nicht kaputt ist, reparieren Sie es nicht!
quelle
Kaufen Sie so viele Shorts wie möglich auf Lager. Wenn das Management sich bereit erklärt, Selbstmord zu begehen, sollten Sie zumindest etwas Geld damit verdienen. Immerhin wirst du bald auf der Straße sein, nachdem sie gepanzert haben.
quelle