Deploy Value

Essere uno sviluppatore Cobol nel 2019

6 Novembre 2019 - 4 minuti di lettura

Secondo appuntamento dell’eXtreme Programming User Group Bergamo, nell’oramai rodato spazio conferenze e workshop della nuova ala della sede di Seriate.

Fabio Ghislandi, Executive Agile Coach nonché partner di Intré e presidente dell’Italian Agile Movement (patrocinante dell’evento) ha aperto la serata parlando dell’importanza di questi momenti. A tal proposito ha ricordato il prossimo appuntamento che riguarderà un workshop tecnico sul mondo Amazon, in particolare lo sviluppo di una skill per Alexa, l’assistente vocale intelligente di Amazon. Workshop organizzato interamente da Intré.

Protagonista di questo meetup è stato Luca Piccinelli, sviluppatore per Studiofarma s.r.l, il quale ha portato il racconto della sua esperienza nel mondo della programmazione ed in particolare con il linguaggio Cobol.
Cobol è uno dei primi linguaggi di programmazione nati, come è possibile che nel 2019 ci siano persone come Luca che non si sentono démodé o in qualche maniera “fuori dal giro”?
“Lavorare oggigiorno con linguaggi obsoleti è limitante?” “Cobol è obsoleto?” “O forse è un problema delle persone?” Scopriamolo assieme a Luca.

La tecnologia come metrica di valutazione

“La stragrande maggioranza degli sviluppatori considera le tecnologie utilizzate in un’azienda come una delle metriche più importanti per valutare la possibilità di collaborazione.
Purtroppo una decisione su questa base è superficiale; è davvero la tecnologia che ci spaventa? O forse temiamo la cultura aziendale che pensiamo sia più immediato associarvi?”

Queste ed altre domande ha in testa Luca, e prova a darsi e darci una risposta portando la sua esperienza lavorativa, a dimostrazione del fatto che la tecnologia è solo uno strumento nelle mani di chi la utilizza. E’ sulle persone che bisogna puntare l’attenzione quando valutiamo un luogo di lavoro.

Nell’oramai lontano 2010 Luca inizia la sua esperienza come sviluppatore. Inizia lavorando in una grande azienda, con molte possibilità di crescita sia a livello tecnologico che professionale. Ma sente il bisogno di tornare a casa, e trova lavoro in un’azienda che realizza software scritti in linguaggio Cobol, uno dei primi linguaggi di programmazione, nato ufficialmente nel 1961.
Luca passa quindi da grandi uffici in grandi aziende che usano framework e tecnologie all’ultimo grido ad un’azienda in Val Camonica a programmare in Cobol.

“E’ una sorta di suicidio professionale!” “Potrai difficilmente rivenderti”…queste le frasi che Luca si è sentito dire, ma è una questione di punti di vista. I limiti dopotutto sono dello strumento, non delle persone. C’è chi vede tutto quasi sempre negativo, quindi solo problemi, e chi invece vede delle opportunità di crescita e miglioramento.

Cobol: problemi e difficoltà

Appena approdato sul progetto, Luca ha notato parecchi problemi e difficoltà. Il codice sorgente era costituito da file lunghi migliaia di righe, i nomi del file erano criptici quindi non agevolavano per nulla l’inserimento per un nuovo arrivato. La grafica dell’applicativo, o meglio la UX, non era per nulla ottimizzata…e non è finita.
“Cobol di per sé non è un bel linguaggio” ammette candidamente Luca, per tutta una serie di motivi che andiamo ad elencare:

  • Assenza di un framework per i test
  • non esistono alcuni tipi di dati
  • totale assenza di librerie di strutture dati
  • no funzioni
  • IDE obsoleto
  • community scarsa
  • Assenza di supporto per applicazioni mobile

E molto altro ancora.
Generalmente ci si sentirebbe spaesati, poco stimolati a cercare di migliorare la situazione, ma non Luca.
Anziché vedere una foresta folta, ricca di sentieri dove è facile perdersi Luca ha intravisto una malga in un bel prato fertile, dove ci si può coltivare qualcosa e vivere serenamente.
I problemi sono opportunità!

Cobol: dai problemi alle opportunità e al miglioramento

Tornando alla tecnologia come metrica , le persone sono un elemento fondamentale. Capire le persone può veicolare un cambio di atteggiamento.
Lavorare in un ambiente composto da persone riluttanti al cambiamento è dannoso. Soprattutto per un mestiere come quello dello sviluppatore il quale il più delle volte è una persona appassionata. Soffocare, smorzare la passione è un male, si dovrebbe invece incentivare, riconoscere ogni nuova iniziativa.

Da “Si è sempre fatto così, perché cambiare” a “Facciamolo in maniera diversa, magari più efficace ed efficiente”. Dai problemi vediamo opportunità.

Ed è quanto successo a Luca e al suo team, che negli anni hanno migliorato il progetto ma anche lo strumento, ovvero Cobol.
Ecco alcuni dei lavori svolti:

  • plugin CobolSTF per l’IDE Visual Studio Code, implementato in Javascript
  • libreria per strutture dati, in particolare per Array, implementata in Cobol
  • piccolo garbage collector, implementato in Cobol
  • sistema di gestione degli errori
  • librerie di gestione della grafica e funzionalità avanzate per la gestione di griglie
  • sistema di gestione della cache
  • libreria per interfacciarsi a database relazionali
  • API provider da C# a Cobol

Non solo, Luca è cresciuto anche da un punto di vista di metodologie e pratiche Agili:

  • sistema di build automatizzato (Fix / Beta / Release)
  • Continuous Integration con Jenkins

Tanto, tantissimo è stato fatto. Ma altrettanto manca:

  • framework di test
  • pratiche di TDD
  • upgrade della libreria di comunicazione con database
  • plugin di debugger Cobol per Visual Studio Code
  • community

Rispondendo ad una delle domande iniziali “Cobol è obsoleto?” grazie all’intervento di Luca viene da rispondere “No!”. E’ davvero un problema delle persone o meglio della persona, di noi stessi. Smettiamola di vedere problemi sempre comunque e ovunque e iniziamo a vedere opportunità.

Un talk davvero interessante e ricco di spunti e riflessioni, che centra in pieno il primo punto del Manifesto Agile Gli individui e le interazioni più che i processi e gli strumenti.

Articolo scritto da