Ich arbeite zurzeit für ein kleines Unternehmen, das nur wenige technisch komplizierte Produkte hat. Ich bin der einzige Entwickler für einen von ihnen. Vor ungefähr einem Jahr habe ich die Vorgängerversion des Produkts erhalten und angefangen, es zu "unterstützen".
Der Kunde spricht nur über neue Funktionen, den geschäftlichen Nutzen und andere dieser Art. Das Problem ist, dass der Code zwar in C # ist, aber ziemlich prozedural ist. Es gibt keine Abstraktionen, Klassen werden nur dort verwendet, wo Visual Studio sie benötigt - zum Beispiel Formulare. Die Implementierungen dieser Klassen sind wirklich schrecklich und der Code ist wirklich schwer zu pflegen.
Während des ganzen Jahres verbringe ich meine eigene Zeit mit Refactoring. In der neuesten Version gibt es hübsche Abstraktionen und so. Ich musste eine Reihe von Komponenten von Grund auf neu implementieren, und ich bin der Meinung, dass das Hinzufügen neuer Funktionen oder das Ändern des Verhaltens dieser Komponenten VIEL einfacher ist als bei anderen.
Das Problem ist, ich verbringe meine eigene Zeit. Ich mag die Ergebnisse sehr, aber ich mag es nicht, 12 Stunden am Tag zu arbeiten. Warst du jemals in einer ähnlichen Situation? Was soll ich probieren? Ich habe bereits versucht, darüber zu diskutieren, aber immer noch keinen Erfolg.
Ich habe nur Angst vor dem Moment, in dem wir uns für die Implementierung der neuen Funktion entscheiden, die viele Änderungen am Legacy-Code erfordert. Für den Kunden könnte das schockierend sein: Warum brauchen Sie 8 Stunden, um diese Symbole zu ändern? Dem Kunden ist es einfach egal, dass der Code 500 Stellen enthält, die ich ändern muss. Und ich sollte auch alle diese 500 Plätze zuerst finden.
Irgendwelche Ideen?