J'ai été par le biais d'un projet qui fait exactement ce que vous décrivez avec environ la même taille de la base de code. D'abord, j'ai été complètement embarquée avec la réécriture. Il a fini par prendre+ de 3 ans et presque transformé en une marche de la mort". En général, je suis maintenant d'accord beaucoup plus avec le incrementalists.
Basé sur notre expérience, cependant, je dirai que cette réécriture (surtout si vous êtes en mesure de réutiliser une partie du C++ code de la logique métier dans .NET), n'est pas techniquement dangereux que cela puisse paraître. Cependant, il peut être très socialement dangereux!
Tout d'abord, vous devez vous assurer que tout le monde comprenne bien que ce que vous êtes entreprise est d'abord une "réécriture" (ou "remake") pas une mise à niveau ou de "la réinvention de l'." L'1998 Psycho a été un coup-pour-coup remake des années 1960 d'origine. L'2003 Battlestar Galactica est une réinvention de l'1978 original. Vous voyez la différence?
Dans notre cas, le plan initial était de recréer le produit existant dans la .NET. Qui n'aurait pas été techniquement ardue, car nous avons compris le puits d'origine. Cependant, dans la pratique, l'envie d'ajouter et de corriger et d'améliorer quelques choses s'est avéré irrésistible, et, finalement, a ajouté 2 à 3 ans pour le scénario.
Deuxièmement, vous devez vous assurer que tout le monde à partir de la execs pour le personnel de vente à l'utilisateur final est ok avec votre produit actuel reste inchangé au cours du développement du remake. Si votre marché est en mouvement de telle façon que vous ne serez pas en mesure de soutenir votre entreprise au cours de cette période, alors ne le faites pas.
Ainsi, les principaux obstacles pour nous s'est avéré être social, plutôt que de la technique. Les utilisateurs et les intérêts de l'entreprise est devenu très frustré par le manque de progrès visibles. Tout le monde s'est senti obligé de pousser pour leur propre animal de compagnie améliorations et fonctionnalités, trop, de sorte que notre produit final n'ont qu'une ressemblance superficielle avec l'original. C'était certainement une ré-imagination plutôt qu'un remake.
En fin de compte, il semble avoir tourné ok pour nous, mais c'était un vrai grind, et pas quelque chose que nous aimerions choisir de le faire à nouveau. Nous avons brûlé par le biais de beaucoup de bonne volonté et de la patience (internes et externes), ce qui pourrait avoir été en grande partie évités par une approche progressive.