J'ai vu de nombreux articles sur la réécriture d'applications mauvaises, sur l'expérience des gens à ce sujet chez Programmers et sur un article de Joel Spolsky que j'ai préparé sur le sujet, mais pas de preuves tangibles ni d'études de cas. Outre les deux exemples cités par Joel et quelques autres articles ici, que faites-vous avec une base de code incorrecte et comment décidez-vous quoi faire avec de vraies études?
Pour le cas d'espèce, je connais deux clients qui ont tous deux un ancien code hérité. Ils n'arrêtent pas de le suivre parce que, comme l'un d'entre eux l'a découvert, une réécriture était une catastrophe, elle coûtait cher et ne permettait pas vraiment d'améliorer le code. Ce client a une logique d’affaires très compliquée que les réécrivains ont rapidement découverte.
Dans les deux cas, il s’agit d’applications essentielles à la mission qui génèrent beaucoup de revenus pour l’entreprise. Celui qui a tenté la réécriture a eu l’impression de se heurter à un mur de briques si l’ancien logiciel n’était pas mis à niveau ultérieurement. Pour moi, ce genre de risque justifie des recherches et des analyses pour assurer le succès de la démarche.
Y a-t-il eu des études de cas réelles qui ont étudié cela? Je ne voudrais pas tenter une réécriture majeure sans connaître certaines des meilleures pratiques, des pièges et des succès basés sur des études réelles.
Après: OK, après plus de recherches, j'ai trouvé trois articles intéressants sur des études de cas:
- Réécrire ou réutiliser . Ils ont réalisé une étude sur une application Cobol convertie en Java.
- L'autre portait sur la réutilisation des logiciels: expériences et perceptions des développeurs .
- Réutiliser ou réécrire Une autre étude sur les coûts de maintenance par rapport à une réécriture.
J'ai récemment trouvé un autre article sur le sujet: The Great Rewrite . Là, l'auteur semble s'attaquer à certains des problèmes majeurs. Parallèlement à cela, nous avons eu l’idée de créer un prototype en utilisant la nouvelle pile de technologies proposée et en mesurant la rapidité avec laquelle les développeurs l’ont prise. C'était tout le prélude à une réécriture, ce qui m'a semblé être une excellente idée!