Tra gli argomenti di maggior attualità, specie nel contesto della stampa generalista, via è l’eterna questione relativa al fatto che la tecnologia possa o meno costituire una minaccia occupazione nei confronti dell’uomo. Tale spada di Damocle cadrebbe anche sul capo degli sviluppatori, dal momento che gli strumenti low code e no code, secondo le previsioni degli analisti, sono destinati a raggiungere una prevalenza sul mercato entro pochi anni. I vantaggi sono del resto talmente palesi che sarebbe improbabile attendersi il contrario.

Ma davvero low code e no code ruberanno il lavoro agli sviluppatori? Per dare una risposta anche soltanto semiseria a questa provocatoria questione, la cui risposta è implicitamente retorica, risulta indispensabile delineare lo scenario entro cui effettivamente ci muoviamo, orientando la nostra attenzione soprattutto nella prospettiva di medio termine, dove inizieremo a vedere concretamente gli effetti della massiccia opera di trasformazione digitale che vede attualmente protagonista l’intero mondo dell’IT.

Il primo aspetto su cui è opportuno fare una precisazione è cosa siano low code e no code, spesso inserite in un unico calderone, non soltanto narrativo, ma anche per quanto concerne le ricadute in termini di business, come dimostrano gli insight dei principali analisti, a cominciare da Gartner.

Differenze tra low code e no code

Low code e no code rappresentano due metodologie di sviluppo molto differenti tra loro. Partiamo da quella più semplice, almeno per l’utente finale. Il no code nasce per consentire a tutti gli effetti di sviluppare applicazioni senza scrivere codice. Sono stati pensati per i cosiddetti citizen developers, individui sprovvisti di competenze relative ai linguaggi di programmazione e alle teorie di sviluppo software.

Applicazioni e piattaforme no code consentono a chiunque, mediante un breve percorso formativo, che spesso coincide con un tutorial online, di essere operativo in vari frangenti, automatizzando ad esempio quelle procedure d’ufficio che abitualmente sarebbe tenuto a svolgere manualmente ed in maniera estremamente ripetitiva. Il dipendente che impara a sviluppare un’estensione per i software che impiega ogni giorno in azienda rende di fatto più produttivo il proprio lavoro senza richiedere l’apporto specialistico di uno sviluppatore: che si tratti di sviluppare un bot o cento bot, tecnicamente il concetto rimane sostanzialmente lo stesso. Come vedremo, le numeriche incidono in varia misura anche a seconda del contesto aziendale coinvolto.

Totalmente diverso il contesto dello sviluppo low code, che deriva dalla fondamentale caratteristica delle architetture a microservizi, ossia il fatto di possedere varie componenti funzionali tra loro disaccoppiate, il che rende semplice, oltre che plausibile, il loro riutilizzo in varie applicazioni. Il low code prevede quindi di non scrivere riga per riga ogni volta i componenti da zero. Non avrebbe alcun senso, quando è sufficiente prendere le funzioni ad un livello più alto ed assemblarle per formare nuove applicazioni. Le piattaforme low code accelerano in maniera significativa il ciclo di sviluppo di un software, ma ciò non prescinde dalla conoscenza dei linguaggi e delle logiche di programmazione.

Il low code aiuta gli sviluppatori ad accelerare il time to market di quelle applicazioni per cui si prevede un utilizzo di componenti già pronti, con particolare preferenza verso i software con un ciclo di vita relativamente contenuto o un’incidenza in termini di manutenzione che non preveda frequenti modifiche di codice nella sua scrittura.

Una volta impostata, un’applicazione low code potrebbe consentire anche ad un citizen developer di fare ciò che gli occorre, ma ciò non prescinde dal fatto che tale applicazione vada sviluppata da chi sa programmare. Senza tali competenze, nel prosieguo del ciclo di vita dell’applicazione stessa, il rischio sarebbe quello di arenarsi di fronte alla prima necessità di integrazione in ambito enterprise.

Non vi terremo ulteriormente sulle spine. Anche se a livello logico la cosa avrebbe un senso, all’atto pratico la risposta è no. Low code e no code non ruberanno il lavoro ad alcun sviluppatore degno di questo nome, ma consentiranno ad un numero sempre maggiore di persone di realizzare le applicazioni di cui necessitano pensando a ciò che devono fare per davvero, anziché impazzire dietro codice e tecnicismi vari. Tuttavia, lo sviluppo software, quello che richiede un certo livello di competenze, oggi va ben oltre questo contesto facilitante. Vediamo il perché.

L’enorme crescita del digitale farà si che tutti sviluppino applicazioni mediante strumenti più semplici

Molti potenziali citizen developer rimangono tali per via della barriera culturale data dal timore che i bot sviluppati grazie a tecnologie no code possano rimpiazzare il loro lavoro, quando in realtà consentirebbero di fare esattamente il contrario, ossia aumentare la loro produttività senza richiedere significative risorse addizionali all’azienda. Man mano che le persone inizieranno a prendere atto di cosa sia realmente il digitale in termini di potenzialità, dal no code non si tornerà più indietro, esattamente come è successo nelle realtà che lo hanno già implementato, comprendendone in pieno le ragioni.

Al di fuori del contesto aziendale, lo sviluppo delle applicazioni no code assume ormai una connotazione universale, per consentire a tutti di essere produttivi nella generazione di contenuti e applicazioni, soprattutto sul web. Se devi fare un sito internet, oggi puoi farlo in pochi click grazie a piattaforme come Wix, dotate di template personalizzabili con semplici interfacce drag and drop. Lo stesso concetto vale anche per contenuti di differente natura, come quelli grafici. Canva consente infatti a tutti di creare immagini senza conoscere la complessità tecnologia dei tradizionali software di image editing.

Potremmo andare avanti all’infinito, citando esempi di applicazioni no code che consentono di creare contenuti digitali rimanendo il più delle volte del tutto ignari che alla loro base ci sia del codice da scrivere. È in effetti così, ma se ne occupa qualcun altro. Se dovessimo tirare in ballo uno sviluppatore ogni volta che si profilasse una delle esigenze che abbiamo appena citato, internet sarebbe un luogo certamente più povero di contenuti rispetto a quello che attualmente è. Il no code rappresenta il presente e soprattutto il futuro dei contenuti digitali, ma è palese come ciò non vada ad inficiare con le attività di sviluppo che vedono tradizionalmente impegnati i developer, mirando ad estendere, con metodi nuovi, la capacità creativa di chi non ha competenze in materia di programmazione.

Tornando al contesto enterprise, è interessante notare la crescita degli ambiti no code / low code che consentono di creare contenuti scrivendo la minor quantità di codice possibile, grazie ad a strumenti che si occupano di automatizzare questo procedimento. I software utilizzati per la progettazione parametrica costituiscono un esempio da tempi per così dire non sospetti, quando ancora di low code / no code non si parlava così diffusamente. Per programmare le funzioni, questi software impiegano un VPL (Visual Programming Language), ambiente di sviluppo low code / no code che offre la possibilità di connettere visualmente i nodi di tutti gli elementi necessari per formare i flussi funzionali dell’applicazione.

Gli editor nodali costituiscono ormai la prassi di tutti i software utilizzati per generare contenuti digitali in 3D, ormai fondamentali per qualsiasi applicazione interattiva multimediale. Tuttavia, non sono la soluzione ad ogni problema, in quanto lo sviluppo visuale, automatizzando la scrittura del codice, risulta piuttosto carente dal punto di vista dell’ottimizzazione.

In altri termini, il codice creato automaticamente appare mediamente ridondante rispetto a quello scritto manualmente dagli sviluppati, per cui nel caso di applicazioni di particolare rilevanza è necessario valutare bene con quale metodologia orientare lo sviluppo. Se l’approccio low code è indubbiamente più veloce sotto certi aspetti, la scarsa ottimizzazione rischia di generare problemi in termini di rapidità di esecuzione e complessità nella fase di manutenzione. Anche in questo caso, appena la curva di difficoltà sale, l’apporto di uno sviluppatore diventa assolutamente fondamentale.

Questo gap sarà compensato in misura crescente dalle funzioni di Intelligenza Artificiale presenti nei software low code / no code, che già oggi offrono un ottimo contributo sul piano dell’analisi del software in fase di debugging, del completamento automatico e dell’ottimizzazione del codice stesso. Si tratta tuttavia della classica eccezione che conferma la regola, in quanto le applicazioni di Machine Learning conoscono, e anche molto bene, i linguaggi di programmazione che utilizzano per generare il codice, parlando di fatto la stessa lingua delle applicazioni.

Low code e no code compensano lo skill gap di competenze

Un recente survey realizzato da CoderPad, piattaforma specializzata nei colloqui di lavoro per sviluppatori, ha cercato di mettere in evidenza le posizioni più ricercate nel mercato dello sviluppo. Ai primi tre posti della classifica ritroviamo gli ambiti del web development, DevOps e AI/Machine Learning, evidenziando una difficoltà crescente nel reperire figure full stack e backend engineer.

Come facilmente prevedibile, si tratta di professionalità capaci di gestire progetti di sviluppo articolati e complessi, tipiche del DevOps, con un ciclo di vita lungo, anche in ambiti fortemente multidisciplinari. In contesti dove è necessario un elevato livello di personalizzazione e integrazione, sviluppare in low code / no code raramente coincide con la scelta più opportuna. Si rischierebbe di snaturarne i presupposti.

Le figure di sviluppatori per cui c’è maggior richiesta sul mercato non sono quindi in diretta competizione con il segmento low code / no code. Non entriamo nemmeno nel merito delle competenze altamente specializzate, come quelle dei software architect, dei data scientist e di tutte le figure coinvolte nello sviluppo di applicazioni Machine Learning, che di fatto costituiscono una nicchia che non avrebbe nemmeno senso aggredire con tecnologie pensate per un segmento decisamente più mainstream del mercato software.

Mentre agli sviluppatori del futuro saranno richieste competenze sempre più specialistiche, il low code e il no code consentiranno di compensare l’oggettiva carenza di sviluppatori per automatizzare le procedure di sviluppo, oltre a continuare ad assistere gli sviluppatori in questi contesti in cui è consentito il riutilizzo di componenti già pronti, cosa che avviene correntemente ormai da diversi anni. Le grandi aziende ottengono evidenti vantaggi in termini di economia di scala, mentre le PMI possono finalmente fare qualcosa che altrimenti non sarebbero state in grado di fare con le risorse a loro disposizione, il che si traduce in una ricaduta positiva per le opportunità di business.

Quindi, no, lo sviluppo low code e no code non toglierà proprio il lavoro a nessuno. Che si tratti del citizen developer che si crea i bot in autonomia o del mago del codice che consente a qualsiasi applicazione di funzionare in modo corretto. Un giorno inizieremo a porci probabilmente altre domande, del genere: “Low code e no code come possono aiutarci a creare valore aggiunto nell’esperienza di sviluppo?”. Soltanto allora saremo davvero centrati sulla questione, non soltanto dal punto di vista tecnologico, ma soprattutto del suo contributo in termini di business.