Moderniser un système COBOL vers Java est devenu une priorité pour de nombreuses directions informatiques. Mais entre l'intention et la réussite, il y a un fossé : celui où tombent les projets qui ont voulu aller trop vite. La bonne stratégie commence par comprendre pourquoi on modernise - et pourquoi on ne réécrit pas tout d'un coup.
Pourquoi moderniser
Trois forces poussent à la modernisation :
- La pénurie de compétences : les experts COBOL se font rares, et il devient difficile de garantir le maintien à long terme d'un patrimoine purement legacy.
- L'intégration avec le digital : applications mobiles, API, cloud, écosystèmes ouverts - le cœur applicatif doit dialoguer avec un monde qui parle un autre langage.
- L'agilité : raccourcir les cycles de livraison, faciliter le recrutement, capitaliser sur un outillage moderne.
Pourquoi NE PAS tout réécrire d'un coup
La tentation du big-bang - tout réécrire, basculer en une fois - est aussi naturelle qu'elle est dangereuse. Un cœur applicatif vivant porte des décennies de règles métier, dont beaucoup ne sont documentées nulle part ailleurs que dans le code lui-même.
Réécrire d'un seul tenant, c'est s'exposer à trois risques majeurs : la perte de logique métier implicite, les régressions sur des cas limites que personne ne se rappelait, et un risque projet considérable, l'effet tunnel pouvant durer des années avant la moindre mise en production.
Les bonnes stratégies
Les approches qui réussissent ont un point commun : elles avancent par étapes, en gardant la production sous contrôle à chaque instant.
- Le refactoring progressif : moderniser brique par brique, périmètre après périmètre, plutôt que d'un seul bloc.
- Le dual-run : faire tourner l'ancien et le nouveau en parallèle, comparer les résultats, et ne basculer que lorsque l'équivalence est prouvée.
- La transcompilation COBOL vers Java : générer un socle Java à partir du code existant pour accélérer la migration, puis le faire évoluer.
- L'encapsulation par API : exposer les traitements COBOL existants derrière des interfaces modernes, sans toucher au cœur, pour ouvrir le système au digital.
- L'approche par lots : découper le chantier en incréments livrables, mesurables et réversibles.
Le rôle décisif de l'expertise COBOL
Aucune de ces stratégies ne fonctionne sans une compréhension fine du code de départ. Une transcompilation produit du Java illisible si personne ne sait ce que ce Java est censé faire. Un dual-run ne sert à rien si l'on ne sait pas interpréter les écarts. L'expertise COBOL n'est pas un frein à la modernisation : c'en est la condition.