Ich arbeite seit über 5 Jahren an einem Software-Projekt, meistens solo. Am Anfang war es ein Durcheinander (ich bin der dritte oder vierte Entwickler, der daran arbeitet), und obwohl es jetzt weniger Durcheinander ist, ist es immer noch unglaublich durcheinander. Die Geschwindigkeit, mit der ich es in den Griff bekomme, ist eiskalt und ich fange an, über den Zustand, in dem es sich befindet, verzweifelt zu sein. Wie fange ich wirklich an, es zu reparieren?
Projektdetails: Es handelt sich um ein Verkaufsprogramm, das fast ausschließlich in Visual Basic Classic (VB6) mit einem MySQL-Back-End und einer in C # geschriebenen Berichts-Engine geschrieben wurde. Es macht Spaß, an dem C # -Modul für die Berichterstellung zu arbeiten. Es wurde erst in den letzten Jahren geschrieben und davor wurden alle Berichte in Crystal Reports 9 erstellt (ja, es gibt noch einige Berichte, die darauf basieren).
Das eigentliche Programm selbst ist jedoch eine völlige Katastrophe. Es gibt nicht ganz 90.000 LOC insgesamt und etwa 10.000 Kommentarzeilen (meist keine Dokumentation, aber alten Code, der auskommentiert wurde). 158 Formulardateien und 80 Moduldateien. Ich habe keine Ahnung, wie viele davon tatsächlich verwendet werden, da einige Funktionen des Programms einfach veraltet sind und (äh, manchmal) als solche gekennzeichnet sind, ohne dass der zugehörige Code aus dem Programm entfernt wurde. Ich würde vermuten, dass nur 50% des Codes tatsächlich produktiv genutzt werden.
Ich habe Angst, einen Großteil des Codes zu berühren, nur weil ich nicht sicher bin, ob ich etwas kaputt mache, auf das sich ein undurchsichtiger Client verlässt. Das passiert öfter, als ich zählen kann. Es ist, als ob im Code Landminen verstreut sind.
Das Projekt ist nicht wirklich strukturiert. Es ist nicht objektorientiert, außer an den wenigen Stellen, an denen ich die Geduld hatte, mich zu reformieren. Wenn Sie Daten in einem Formular abrufen müssen, instanziieren Sie ein Datenbankobjekt, deklarieren Ihre Abfrage direkt in der Funktion, führen Sie sie aus und führen Sie die gewünschten Schritte mit dem Datensatz aus.
Als ich anfing, an dem Projekt zu arbeiten, wurde keine Quellcodeverwaltung verwendet. Ich versuchte, die anderen Leute, an denen ich arbeitete, zu ermutigen, es zu benutzen, aber ich war der neue Typ und meine Versuche, die Leute dazu zu bringen, Subversion zu benutzen, scheiterten so gut wie. Der leitende Entwickler des Unternehmens hat in den letzten Jahren endlich einen Quecksilberfehler bekommen und er hat dafür gesorgt, dass alle Entwickler jetzt bei allen Projekten die Quellcodeverwaltung verwenden, zumindest ist dies ein Fortschritt.
Ich denke, wenn ich in der Lage wäre, das Projekt in Vollzeit zu reformieren, wäre ich in der Lage, angemessene Fortschritte zu erzielen und vielleicht sogar eine Schätzung darüber zu haben, wie lange es dauern würde, das Projekt vollständig zu überarbeiten, aber es wird aktiv genutzt und ich bin es ständig gebeten werden, Feuer zu löschen, Fehler zu beheben, Funktionen hinzuzufügen usw. usw.
Wie kann ich dieses Projekt wirklich reparieren? Versuchen Sie, VB6 mit einer anderen Sprache zu bearbeiten? Versuchen Sie, das Programm in meiner Freizeit neu zu schreiben? Oder ist das völlig hoffnungslos?
Aktualisieren
Nach diesem Beitrag kehrte ich mit neuem Eifer zum Projekt zurück, fiel aber innerhalb weniger Monate in die Hoffnungslosigkeit zurück, nachdem ich eine so langsame Fortschrittsrate festgestellt hatte. Ich habe diesen Zyklus dann im nächsten Jahr noch zwei- oder dreimal wiederholt.
Ich bin seitdem zu einem anderen Job übergegangen. Obwohl nach so vielen Jahren von vb6 und nur peripheren Erfahrungen mit anderen Technologien die Suche schwierig war und ich unterwegs mit vielen Ablehnungen konfrontiert war (ungefähr ein Dutzend Interviews im Laufe eines Jahres). Mein Rat an andere in dieser Situation ist, in Betracht zu ziehen, diesen Faktor in Ruhe zu lassen. Bedenken Sie, welchen Schaden Sie Ihrer Karriere zufügen können, wenn Sie in einer solchen Sackgasse bleiben.