Blog
Legacy code in SAP – cosa è e perché può diventare un problema
- 25/04/2021
- Scritto da: Grazia Livia Masulli
- Categoria: SAP ABAP
“Legacy code”, letteralmente traducibile con il concetto di “codice ereditato”, è l’espressione che viene utilizzata per definire il codice di programmazione “ricevuto in eredità” da altri consulenti e programmatori che hanno personalizzato SAP adattandolo alle necessità di una impresa.
Sebbene esistano diverse definizioni di cosa sia (e cosa non sia) esattamente Legacy Code in ABAP nella pratica si considera tale ogni tipo di codice “custom” (scritto su misura), a volte chiamato anche “Z code”.
Il problema principale con il codice Legacy è che spesso non viene sottoposto a test automatizzati per verificare la sua interazione con le altre applicazioni.
In pratica, si scrive spesso del codice per aggiungere una funzionalità che si considera assolutamente necessaria alle 1000 applicazioni esistenti di SAP.
Adesso avremo un sistema con 1001 funzionalità, ma è difficile essere sicuri che il cambio che abbiamo introdotto non abbia degli effetti sulle 1000 funzionalità preesistenti.
Esistono frequentemente situazioni nelle quali il codice è stato scritto da programmatori molti anni fa e non è chiaro il suo funzionamento (per il modo complicato in cui è stato scritto, o perché non è stato commentato in modo appropriato).
I consulenti che si troveranno davanti a questo codice avranno paura a modificarlo, temendo di innescare effetti inattesi ed indesiderati.
Per rendere la situazione più complessa si tratta spesso di codice che gestisce processi “business critical” (cioè critici per il funzionamento dell’impresa). Se non fosse così probabilmente non si sarebbe fatto lo sforzo di creare questo codice personalizzato.
La situazione diventa così sempre più complessa nel tempo, con codice Legacy che si stratifica, accumulandosi anno dopo anno con gli interventi di vari programmatori.
Dopo una decade si trasformerà probabilmente in qualcosa di incomprensibile, che rimarrà tale dato che nessuno avrà il coraggio di semplificarlo o rimuoverlo.
Inoltre, anche se non fosse necessario modificare il codice Legacy, esisteranno sempre degli aggiornamenti di SAP (negli anni sono usciti vari Enhancement Packages).
Ognuno di questi aggiornamenti potrebbe alterare il modo in cui il codice scritto su misura funziona. Questo rende ancora più problematico convivere con il codice Legacy.
Cosa si può fare? La strategia che viene considerato migliore è quello di “minimizzare” la dipendenza del codice Legacy dal resto del codice, riscrivendolo per “isolarlo”.