• Marco Paolini

Come diventare uno sviluppatore blockchain: la nostra esperienza e una guida step-by-step.

Ci stiamo sempre più avvicinando alla tanto attesa “maturità” della tecnologia blockchain. Ne sentiamo parlare spesso, ne capiamo sempre meglio i meccanismi, per non citare gli oramai innumerevoli casi d’uso. La PwC ha affermato ad inizio anno che, entro il 2030, la tecnologia sarà in grado di aumentare il PIL globale di 1,76 triliardi di dollari (ossia l’1,4% del PIL globale). Numeri da capogiro, così come lo sono quelli degli stipendi di chi è esperto del settore (ne parleremo più avanti, promesso). Per chiunque abbia saggiato e compreso tali potenzialità, c’è stato sicuramente un momento in cui si è posto la fatidica domanda: “cosa posso fare per diventare uno sviluppatore blockchain?”. Non pretendiamo di dare una risposta specifica ad un simile quesito. Tuttavia, possiamo fornire un’indicazione sugli step fondamentali, raccontando la nostra esperienza (o meglio… quella dei nostri sviluppatori blockchain). Prima però è necessario fare alcune premesse.


I tempi sono cambiati


Siamo eredi di un passato governato dal consumo di massa di prodotti standardizzati, dove la novità era rappresentata dalla stessa automobile ma di un colore diverso dal nero, oppure dall’invenzione di una crema spalmabile alle nocciole (Nutella, 1964). Al contrario, oggi viviamo in un mondo sempre più dinamico, votato al continuo mutamento, alla digitalizzazione di prodotti e servizi, nel quale le aziende (più precisamente gli imprenditori) sono immerse in una perpetua gara a chi, per prima, adotta con successo un’innovazione o una nuova tecnologia, al fine di emergere o semplicemente sopravvivere. La competizione a livello globale è arrivata ad un punto tale che anche solo riuscire ad accaparrarsi una nicchia di mercato è un’impresa erculea. Ma lo stesso discorso non vale anche per i lavoratori? Ognuno di noi è l’imprenditore di sé stesso. Come tale ha una vision che intende realizzare: salvaguardare il proprio futuro. In che modo? Svolgendo un lavoro soddisfacente e sufficientemente retribuito. Ma, rispetto al passato, qualunque percorso si scelga di intraprendere non si tratta certo di una passeggiata. Se prima era sufficiente diplomarsi per inserirsi in maniera soddisfacente nel mondo del lavoro, oggi perfino il conseguimento di una laurea non basta più, sono necessari molti altri requisiti. Si percepisce quanto sia vitale essere lungimiranti, informarsi continuamente, essere in grado di lavorare in team, possedere delle soft skill, ma soprattutto specializzarsi in un determinato ambito.


Una tecnologia dalle enormi potenzialità


Anche la scelta stessa dell’area in cui specializzarsi comporta non poco impegno. Chi sta leggendo probabilmente avrà già fatto i conti, almeno una volta nella vita, con quello stato di agitazione e quel senso di incertezza che accompagnano chiunque debba operare una scelta simile o, comunque, debba decidere quale sarà il suo futuro ambito lavorativo. Quello della blockchain è sicuramente un settore con grandi prospettive di crescita. I dati parlano chiaro: il report presentato a gennaio 2021 da parte del Blockchain & Distributed Ledger Observatory afferma che nel 2020 i progetti a livello globale sono cresciuti del 59% rispetto al 2019, mentre sono diminuiti dell’80% gli annunci, segno della crescente maturità del mercato che si sta spostando verso un’adozione più concreta. Complessivamente, a partire dal 2016 ad oggi, sono state censite 1242 iniziative blockchain a livello globale, delle quali 734 sono annunci mentre 508 rappresentano i progetti concreti. La PwC afferma che entro il 2030 il valore complessivo del mercato blockchain arriverà a quota 1,76 trilioni di dollari.

Si tratta di una prospettiva ottimistica, ma probabilmente non molto distante dalla realtà. Basti pensare alle conseguenze del grande processo di digitalizzazione che sta investendo le aziende di tutto il mondo, le quali manifestano un bisogno sempre più acuto di proteggere la grande mole di informazioni che si trovano a gestire quotidianamente. Da tale necessità deriva la particolare attenzione che le imprese stanno progressivamente rivolgendo alla figura del blockchain developer, la cui domanda è in forte crescita. Una qualifica sicuramente ben retribuita, grazie al fatto di essere ancora poco diffusa e altamente specializzata in una tecnologia piuttosto complessa quale è la blockchain. Ovviamente l’entità della retribuzione è strettamente legata al paese in cui si percepisce. In ogni caso Hired, un’azienda di San Francisco che si occupa di mettere in contatto le aziende con i migliori talenti tecnologici in cerca di lavoro, ha utilizzato la sua enorme banca dati per stimare il salario medio di un ingegnere blockchain. Secondo tali statistiche globali risulta che un profilo simile guadagna mediamente tra i 150.000 e i 175.000 dollari l’anno.

Devo ammettere che un pensierino ce lo sto facendo anch’io…



La nostra esperienza


«C’era una volta un informatico. Un bel giorno si svegliò e decise di diventare un vero sviluppatore blockchain», tratto da “Le avventure di Pinocchio, storia di uno sviluppatore”. Perdonate l’ironia di questa introduzione un po' forzata, ma è importante sottolineare che la storia che sto per raccontare non ha un lieto fine, non è emozionante, non ha una morale, insomma, non si tratta di una fiaba. L’obiettivo è semplicemente quello di fornire una testimonianza concreta e soprattutto reale, riportare in maniera oggettiva ciò che è stata la nostra esperienza, in modo che chiunque voglia qualificarsi in questo ambito possa farsi un’idea, seppur sommaria, di ciò che potenzialmente lo aspetta. I protagonisti della storia sono un gruppo di amici e colleghi accomunati dalla passione per le nuove tecnologie: Fabiano, Lucio, Damiano e Cristian. Lavorano in una start-up fondata dai primi due, il cui core business è rappresentato dalla fornitura di servizi digitali a supporto delle aziende tramite una piattaforma di sviluppo assistito. L’interesse per la blockchain, la comprensione dei vantaggi legati all’utilizzo della tecnologia e il relativo trend sempre in crescita (ma, diciamolo, anche il desiderio di mettere in pausa per qualche giorno la routine lavorativa) li condusse a partecipare, nel 2018, al Malta Blockchain Summit. L’evento non fece altro che rafforzare le aspettative positive che già nutrivano nei confronti della tecnologia, gettando le basi di quell’idea che poi avrebbe rivoluzionato l’intera value proposition dell’azienda: integrare in qualche modo la blockchain all’interno del parco servizi offerti. C’erano però degli ostacoli da superare. Il primo era il fatto di non avere a disposizione delle figure professionali specializzate in quell’ambito. Tutti e quattro sono sviluppatori, ma non possiedono conoscenze specifiche in fatto di blockchain. Il secondo era legato ai costi di assunzione di uno sviluppatore blockchain. Come vedremo in seguito, il salario di una figura del genere è elevato e trattandosi di una start-up ciò rappresentava sicuramente un problema. Si decise allora di approfondire la conoscenza della tecnologia con un approccio autodidattico, focalizzandosi su Hyperledger Fabric come infrastruttura blockchain. Perché proprio Fabric? Beh, stiamo parlando del 2018 e al tempo era la più popolare tra le blockchain private. Inoltre è opensource, di conseguenza non è necessario acquistare alcuna licenza per usufruirne ed è possibile consultare tutta una serie di risorse per fare formazione, tra cui guide, documenti, e tutorial. Infine, anche per un discorso di affidabilità, visto che si tratta di un progetto avviato dalla Linux Foundation al quale contribuisce IBM. Si sa, le cose migliori accadono sempre per caso, e proprio il caso volle che nei primi mesi del 2019, grazie al passaparola, un’azienda fornitrice di servizi di consulenza informatica si rivolse ai nostri protagonisti. L’esigenza era quella di incrementare il livello di protezione della grande mole di informazioni che la società si trovava a gestire quotidianamente, tramite l’integrazione di un network blockchain. La sfida era sicuramente ardua vista la conoscenza ancora acerba della tecnologia, ma non poteva capitare occasione migliore per specializzarsi in quell’ambito. Così, dopo aver proposto un prezzo contenuto, considerata la limitata esperienza del team, si diede inizio al progetto “Boost”.

Il primo passo per assicurarne la riuscita fu l’avvio di uno studio approfondito e molto accurato della documentazione ufficiale di Hyperledger Fabric, assimilandone gli elementi essenziali (struttura di un network, canali, certificate authority, peer, smart contract, ecc.). Come è facile immaginare non si trattò di una passeggiata, non tanto per la complessità dei concetti quanto per il loro volume. Confusione e smarrimento erano le emozioni all’ordine del giorno. Fu un po' come guidare per la prima volta un’autovettura. La sensazione era quella di essere invasi da un’ondata di informazioni, troppe per essere assimilate tutte insieme. Furono necessari diversi mesi per poter avere un’idea chiara dei concetti e procedere allo step successivo: applicare concretamente le nozioni acquisite. Volendo associare la nostra storia al percorso che un individuo può intraprendere per diventare sviluppatore blockchain, questa è stata sicuramente la tappa più faticosa e problematica. È vero che Hyperledger fornisce una grande quantità di samples, ma metterli in pratica è tutta un’altra storia. Per citare un aneddoto, immaginiamo di essere riusciti, dopo vari tentativi, a configurare con successo un network, con un certo numero di organizzazioni al suo interno. Ora per verificarne il funzionamento modifichiamo semplicemente il nome ad un paio di organizzazioni. Quanta frustrazione si può provare osservando che tutta la rete è crashata? Non poca. Fortunatamente il web è ricco di veri e propri “angeli” che condividono il loro sapere pubblicando gratuitamente dei tutorial. Uno di questi è Horea Porutiu, uno sviluppatore IBM che, grazie ai suoi video, passo dopo passo ha permesso ai nostri protagonisti di riuscire a configurare l’intero network per Boost (per saperne di più su questo specifico caso d’uso è possibile consultare il seguente articolo).


I mesi successivi furono spesi per perfezionare il lavoro, oltre che le conoscenze e competenze acquisite precedentemente. Dopo circa sei mesi il progetto poteva definirsi concluso con successo. Si è trattato di una sfida molto impegnativa, ma senza difficoltà non c’è nulla che abbia valore. Ed è stata proprio tale fatica ad ispirare un semplice ragionamento: perché non rendere tutto il processo di apprendimento dello sviluppo blockchain più semplice, rapido ed agevole per tutti? Il risultato è stato AstraKode Blockchain (AKB), una piattaforma blockchain di sviluppo assistito completamente gratuita, pensata per agevolare chiunque, dallo studente universitario allo sviluppatore professionista, abbia la necessità di realizzare la propria soluzione blockchain o anche semplicemente esercitarsi per comprendere meglio i meccanismi di funzionamento della tecnologia. Perdonatemi se inizialmente ho detto che non ci sarebbe stata una morale, ma ho spudoratamente mentito! La verità è che non si può dare un termine alla formazione. Specialmente per quanto riguarda una tecnologia in continua evoluzione come la blockchain. Tuttavia, questo racconto può aiutare ad immaginare quale possa essere il percorso da intraprendere per diventare uno sviluppatore blockchain. Storia a parte, vediamone ora nel dettaglio gli step principali.

Una guida per diventare uno sviluppatore blockchain


È chiaro che non si diventa sviluppatore blockchain in un giorno e nemmeno in un mese. Ci sono delle tempistiche obbligatorie da rispettare (di cui faremo una stima più avanti). Si tratta di un percorso impegnativo, costituito da vari step, molti dei quali propedeutici per affrontare i successivi. Iniziamo dal dire che ci sono delle conoscenze preliminari da possedere. Solitamente chi decide di diventare uno sviluppatore blockchain è già un programmatore. Di conseguenza è caldamente consigliato a chiunque non possa contare su un bagaglio di conoscenze di programmazione preliminari di frequentare un corso base, approfondendo la comprensione di almeno un linguaggio di programmazione (ad esempio Golang o Java). Concentriamoci ora sul primo vero step.


Livello di specializzazione

Generalmente è possibile distinguere due tipologie di sviluppatori blockchain, il core blockchain developer e il blockchain software developer. Il primo si occupa dell’architettura e della sicurezza di un sistema blockchain. Sostanzialmente è responsabile di:

  • progettare l’architettura della rete;

  • configurare i protocolli di consenso e i pattern di sicurezza del network;

  • supervisione della rete.

Il blockchain software developer si serve dell’architettura e dei protocolli progettati dal core blockchain developer per realizzare applicazioni decentralizzate che utilizzano la tecnologia blockchain (dApps). Si tratta di una qualifica variegata e più vicina a quella del web developer. Come tale incorpora una serie di ruoli separati, che non possono essere coperti da un singolo individuo. I suoi compiti possono comprendere:

  • lo sviluppo di smart contract;

  • lo sviluppo del front-end design;

  • lo sviluppo della parte back-end relativa alla blockchain;

  • le operazioni di test per verificare il corretto funzionamento della dApp;

  • l’integrazione con altre applicazioni o servizi.

Detto questo e tenendo conto anche dell’esistenza di differenti tipologie di blockchain, è necessario capire in quale direzione impostare la propria specializzazione. Chiaramente ciò dipende anche da altri fattori, legati alle conoscenze tecniche possedute e ai propri obiettivi: se ad esempio sappiamo utilizzare Java, abbiamo maturato un minimo di esperienza nello sviluppo front-end e vogliamo imparare a sviluppare smart contract, probabilmente punteremo a diventare un blockchain software developer concentrando il nostro interesse su Ethereum. Al contrario, se si dispone di una buona conoscenza di Golang e Node JS e l’obiettivo è quello di acquisire una qualifica di core blockchain developer, allora sarà necessario specializzarsi in Hyperledger Fabric.


Aspetti teorici

Lo step successivo riguarda lo studio approfondito degli aspetti teorici e strutturali della tecnologia scelta. Nel caso di Fabric sarà necessario esplorare in maniera dettagliata tutta la documentazione ufficiale, focalizzando l’attenzione sui concetti fondamentali, come canali, organizzazioni, peer, orderer, CA (Certificate Authority) e in particolare le tipologie, i meccanismi di erogazione e quelli di conservazione delle certificazioni. Diversamente, in ambito Ethereum è consigliabile concentrarsi sullo sviluppo di smart contract studiando in maniera approfondita Solidity, il principale linguaggio di programmazione utilizzato per questo scopo. In linea generale si tratta di nozioni tecniche e abbastanza specifiche, soprattutto in relazione all’infrastruttura scelta, ma certamente non impossibili da apprendere autonomamente con un approccio autodidattico. In ogni caso consigliamo di seguire uno dei numerosi corsi disponibili, anche online, per beneficiare del vantaggio di ottenere un attestato in grado di dimostrare l’acquisizione di tali competenze (a titolo di esempio ecco un corso organizzato direttamente dalla IBM). Nel contempo raccomandiamo di adottare un metodo di apprendimento incentrato sul “learning by doing”, affiancando alla comprensione teorica un’esperienza pratica di creazione di un progetto blockchain, servendosi di AstraKode Blockchain (AKB), una piattaforma completamente gratuita nata allo scopo di facilitare e velocizzare la realizzazione di network blockchain e smart contract.

Fare pratica

L’ultimo step riguarda l’applicazione concreta di quanto appreso durante la fase precedente. La blockchain è una tecnologia relativamente complessa, non tanto per le competenze tecniche richieste ma principalmente a causa dell’ampiezza dello stack tecnologico necessario per sviluppare una soluzione blockchain (soprattutto in ambito Hyperledger Fabric). Inoltre, non è facile trovare un ambiente in cui esercitarsi liberamente per mettere in pratica nozioni e operazioni studiate solo a livello teorico. AKB è stato realizzato esattamente per soddisfare questo bisogno. Si tratta di una piattaforma low-code in grado di semplificare tutto il processo di creazione e di configurazione di un network blockchain grazie all’utilizzo di un ambiente di sviluppo visivo. Inoltre, il supporto da parte di una community integrata, di un sistema di validazione automatica (è la piattaforma stessa che notifica eventuali errori) e il fatto di poter usufruire di tutto questo in maniera completamente gratuita, lo rendono uno strumento ideale per contribuire in maniera incisiva sulla propria formazione in ambito blockchain.

Tempistiche

Dipendentemente dal livello delle conoscenze di programmazione preliminarmente possedute e in base all’esperienza dei nostri sviluppatori blockchain, siamo convinti che un periodo compreso fra 4 e 6 sei mesi rappresenti una tempistica accettabile per acquisire quel bagaglio di competenze basilari tali da fornire l’opportunità di avviare la propria carriera all’interno di un’azienda, sotto il profilo di sviluppatore blockchain junior. Per velocizzare i tempi e rendere il processo di apprendimento più agevole, la soluzione ottimale sarebbe quella di frequentare un corso in grado di rilasciare una certificazione ufficiale e, contemporaneamente, applicare le conoscenze man mano acquisite mettendole in pratica su una piattaforma intuitiva e completamente gratuita come AstraKode Blockchain. Inizia a dar forma al tuo futuro fin da subito registrandoti al seguente link. Con gli strumenti low-code a disposizione ed il supporto da parte di esperti e della community, diventare sviluppatore blockchain non è mai stato così semplice!



Fonti


https://www.pwc.com/gx/en/news-room/press-releases/2020/blockchain-boost-global-economy-track-trace-trust.html


https://www.cnbc.com/2018/10/21/how-much-do-blockchain-engineers-make.html