Anwendungskonvertierung

Kürzlich hatte unser Entwicklungsteam eine Diskussion über die Konvertierung einer unserer ältesten Anwendungen. Die Anwendung ist eines der Kernsysteme des Unternehmens, aber es gibt Module, die irrelevant sind und nicht mehr verwendet werden. Wir planen, die Anwendung auf ein neues Framework umzustellen und gleichzeitig alle nicht benötigten Module zu entfernen.

Wir haben keinen Projektmanager, der uns leitet, wie wir anfangen werden. Wenn ich nur Vorschläge von irgendjemandem im Team höre, mache ich mir Sorgen um die Richtung des Projekts.

Ich würde gerne die Initiative ergreifen, um zu leiten, aber ich habe keine solide Idee und Erfahrung, um das Projekt voranzubringen. Deshalb suche ich hier nach Ihrer Hilfe. Alle Vorschläge, Kommentare oder Links, die mich zur Abwicklung des Projekts führen. Gibt es Vorlagen oder Richtlinien, die ich verwenden kann?

Welche Probleme wollen Sie mit dieser Neufassung lösen? Wie Ashoks Antwort erklärt. Dies ist eine sehr kostspielige und riskante Idee. Wenn Sie keine ebenso ernsthafte Antwort haben, sollten Sie es nicht tun.
@Kempeth - wie in meiner Antwort an Ashok erwähnt, ist die Anwendung, die wir konvertieren werden, fehlerhaft und enthält überhaupt keine Dokumentation. Es ist schwierig für uns, es zu warten, da es auf einer älteren Plattform entwickelt wurde. Der Entwickler dieser Anwendung ist vor mehr als 3 Jahren nicht mehr mit dem Unternehmen verbunden. Verbesserungen für die Anwendung nehmen uns mehr Zeit, indem wir nur den Code studieren, als die eigentliche Entwicklung.

Antworten (1)

Eine Bewerbung komplett neu zu schreiben ist eine schlechte Idee

Joel Spolsky , Gründer von Stack Overflow, Stack Exchange und Trello, sagt in seinem Blogbeitrag mit dem Titel Things You Should Never Do :

Die Entscheidung, den Code von Grund auf neu zu schreiben ... ist der schlimmste strategische Fehler, den ein Softwareunternehmen machen kann

Er führt weiter die Gründe dafür an:

Es gibt einen subtilen Grund, warum Programmierer den Code immer wegwerfen und von vorne beginnen wollen. Der Grund ist, dass sie denken, dass der alte Code ein Durcheinander ist. Und hier ist die interessante Beobachtung: Sie liegen wahrscheinlich falsch. Der Grund, warum sie den alten Code für ein Durcheinander halten, liegt in einem grundlegenden Grundgesetz der Programmierung:

Es ist schwieriger, Code zu lesen, als ihn zu schreiben.

Die Vorstellung, dass neuer Code besser ist als alter, ist offensichtlich absurd. Es wurde alter Code verwendet. Es wurde getestet. Viele Fehler wurden gefunden und behoben. Daran ist nichts auszusetzen. Es erwirbt keine Fehler, indem es einfach auf Ihrer Festplatte herumsitzt.

Wenn Sie Code wegwerfen und von vorne anfangen, werfen Sie all dieses Wissen weg. All diese gesammelten Fehlerbehebungen. Jahrelange Programmierarbeit.

Stattdessen empfiehlt er, Teile der Anwendung neu zu schreiben, um bestimmte Verbesserungen vorzunehmen:

Sogar größere Architekturänderungen können durchgeführt werden, ohne den Code wegzuwerfen.

Ein zweiter Grund, warum Programmierer denken, dass ihr Code ein Durcheinander ist, ist, dass er ineffizient ist ... Aber das betrifft nur einen kleinen Teil des Projekts, den Sie optimieren oder sogar umschreiben können. Du musst nicht alles neu schreiben. Bei der Optimierung auf Geschwindigkeit erhalten Sie mit 1 % der Arbeit 99 % des Knalls.

Der Blogbeitrag von IIRC Joel stammt aus der Zeit vor dem Antrieb für automatisierte Tests. Wenn Sie über umfassende automatisierte Tests verfügen, haben Sie die Gewissheit, jede Menge Code mit einer Feedback-Schleife zu ändern, um zu überprüfen, ob Sie ihn nicht beschädigt haben.
@JBRWilkinson Ich stimme zu, dass Sie Code ändern können, wenn Sie über automatisierte Tests verfügen und diese umfassend sind . Aber das OP spricht nicht über das Ändern des Codes. Er scheint über eine Neufassung mit einem neuen Framework zu sprechen.
@AshokRamachandran - danke für deine Antwort. Eigentlich stimme ich den von Ihnen gegebenen Empfehlungen zu. Leider ist die Anwendung, die wir gerade konvertieren, fehlerhaft und enthält überhaupt keine Dokumentation. Es ist schwierig für uns, es zu warten, da es auf einer älteren Plattform entwickelt wurde. Der Entwickler dieser Anwendung ist vor mehr als 3 Jahren nicht mehr mit dem Unternehmen verbunden. Verbesserungen für die Anwendung nehmen uns mehr Zeit, indem wir nur den Code studieren, als die eigentliche Entwicklung.