Hallo zusammen,
ich wende mich an euch, da mich die Meinung von anderen Entwicklern interessiert.
Ich bin Anfang des Jahres in eine neue Firma gewechselt, um dort an der Weiterentwicklung der vorhandenen Lösung mitzuarbeiten. Zu dem Zeitpunkt waren wir primär zu zweit in der .NET Entwicklung. Der vorhandene Entwickler hat das Frontend über ~10 Jahre mehr oder weniger in Einzelarbeit entwickelt.
Die Firma ist zur Jahresmitte von einer anderen Firma übernommen worden und in diesem Zug ist dieser Entwickler kurz darauf und ziemlich kurzfristig zu einer anderen Firma gewechselt.
Ich habe also den kompletten Bestandscode geerbt. Dieser Code ist ein wilder Mix aus verschiedenen Ansätzen und Konstrukten: Code-behind, MVVM, Databinding, Events, Commands... Nichts ist wirklich einheitlich durchgezogen worden. Hinzu kommen natürlich eigene Strukturen, die irgendeinen Sinn erfüllen, aber nirgends dokumentiert wurden. Zum Frontend gehört auch noch ein Sammelsurium aus Exe-Datei Tools und PowerShell Scripts, die an verschiedenen Stellen aufgerufen werden. Insgesamt also eine recht hohe Komplexität. Ich habe überhaupt keine Dokumentation und es gibt eigentlich keine Person im Unternehmen, die Details zur Architektur wirklich kennt.
Ich rede übrigens nur vom Frontend. Im Backend sieht die Situation besser aus.
Jetzt sollen neue Funktionen in das Produkt eingebaut werden. In mir sträubt sich aber alles, weiter an diesem fremden Durcheinander weiterzuentwickeln. Es geht so viel Zeit für Reverse-Engineering drauf und teilweise weiß ich gar nicht, wo ich anfangen soll, etwas hinzuzufügen oder zu verbessern. Insgesamt frustrierend.
Noch kurz zu meiner Person. Ich bin noch relativ jung im Geschäft. Seit fast 2 Jahren aus der Ausbildung. Ich würde aber behaupten, dass ich als Entwickler grundlegend vernünftige Ergebnisse abliefern kann und nicht auf den Kopf gefallen bin.
In dieser Sache bin ich mir aber echt unsicher, auf welches Vorgehen ich in Meetings mit Kollegen plädieren soll. Ich würde ja am liebsten meine Energie in etwas neues, solides und besseres investieren, als in das alte Zeug. Langjährige Kollegen hängen aber natürlich an genau diesem Konstrukt, so wie es funktioniert und aussieht. (Die müssen die neuen Funktionen aber auch nicht einbauen) Erneuern würde natürlich einen Haufen Arbeit bedeuten. Jedoch glaube ich, dass es mindestens genauso viel Arbeit ist, den vorhanden Code zu verbessern (wenn das überhaupt vernünftig funktioniert) ...
Ich verstehe natürlich, dass man aus der Ferne schwierig eine fachliche Einschätzung vornehmen kann, aber was würdet ihr machen? Hat jemand schon mal eine ähnliche Situation gehabt?
Ich würde mich über Reaktionen sehr freuen.