Secondo due recenti analisi, pubblicate rispettivamente da Gartner e Forrester, il mercato dello sviluppo informatico sarebbe nel cuore di una vera e propria rivoluzione. L’impatto delle applicazioni low code e no code sono destinate a diventare lo standard prevalente per lo sviluppo aziendale, sia in termini di market share che di volume economico. Secondo Gartner, entro il 2024 le applicazioni verranno sviluppate per il 65% grazie a strumenti low code / no code, con un impatto complessivo pari a circa 21 miliardi di dollari già entro l’anno in corso, cifra confermata da una previsione di Forrester.

La velocità di sviluppo e la possibilità di rendersi meno dipendenti dal lavoro degli sviluppatori professionisti, almeno per quanto concerne il software più semplice, stanno spingendo le aziende ad avvalersi di piattaforme low code e no code con un ritmo di crescita probabilmente senza precedenti nell’ambito delle tecnologie informatiche legate alla programmazione.

Lo sviluppo orientato sulle metodologie low code e no code non costituisce ovviamente la soluzione a tutti i mali e bisogna stare molto attenti alle criticità che possono intervenire quando si demanda gran parte delle proprie applicazioni a piattaforme in grado di automatizzare in maniera sempre più efficiente i processi di sviluppo, ma che vanno in ogni caso guidate e supervisionate da personale di grande esperienza, con un comprovato know-how in fatto di sviluppo informatico.

A prescindere dagli eventuali rischi e dai possibili errori di gioventù, l’opportunità low code / no code è di quelle che oggettivamente non avrebbe alcun senso lasciarsi sfuggire, a maggior ragione per via della standardizzazione in atto di una logica di programmazione orientata verso i microservizi e tutte le tecnologie di modernizzazione basate sul cloud computing.

Cos’è lo sviluppo low code

In ambito informatico, il low code coincide con una metodologia di sviluppo delle applicazioni che utilizza vari strumenti orientati verso la programmazione visuale per ridurre sensibilmente l’impatto della scrittura per linee di codice, tipica della programmazione tradizionalmente intesa (pro code). Sia chiaro, i due approcci non si escludono, se mai si completano a vicenda, sfruttando i rispettivi vantaggi operativi e procedurali.

Low code non vuol dire no code, che costituisce peraltro un’altra metodologia in forte crescita nell’ambito dello sviluppo informatico. Una efficace contestualizzazione del low code emerge nelle parole di Koushik Sen, computer scientist e ricercatore della University of California at Berkeley: “Immagina un mondo dove non devi scrivere codice, ma dire delle cose quando il computer le scrive per te”.

Tale visione si concretizza grazie a piattaforme di sviluppo capaci di automatizzare gran parte del lavoro solitamente demandato alla scrittura di codice linea per linea, un fattore enfatizzato dalle funzionalità basate sull’Intelligenza Artificiale, sempre più utilizzata anche in termini di supporto alla programmazione.

Il fatto di disporre di codice pronto all’uso, e di intervenire nella scrittura soltanto in minima parte nelle modifiche e nelle integrazioni richieste nello specifico da ciascun progetto è un percorso naturale. Pensiamo alle applicazioni moderne. Sono di fatto assemblate grazie a componenti tra loro disaccoppiati, sul modello dell’architettura a microservizi.

Questo approccio rende possibile un elevato riuso dei componenti, soprattutto quelli legati a funzioni ripetitive, che fanno in sostanza sempre le stesse cose e che non avrebbe davvero alcun senso riscrivere ogni volta. Lo sviluppatore può concentrare la propria attenzione sulle migliorie generali in funzione delle esigenze del cliente finale e sulla qualità delle integrazioni e della comunicazione tra i vari componenti, garantita dal supporto delle API.

Una piattaforma low code consente di gestire gran parte dei blocchi funzionali che compongono un’applicazione mediante un’interfaccia visuale, che sintetizza soprattutto i flussi, rendendo l’insieme assolutamente più immediato, semplice e soprattutto veloce da gestire. Grazie a strumenti come Salesforce AppExchange o Microsoft PowerApps possiamo realizzare applicazioni funzionanti nel giro di poche ore, bypassando in molti casi anche la tradizionale fase di prototipazione basata su mock up non interattivi. Si lavora direttamente su un software a tutti gli effetti funzionante, che viene progressivamente implementato di tutte le proprie funzioni.

Le piattaforme low code consentono sia di estendere la programmazione ad un’utenza non specializzata in fatto di programmazione informatica, che ad esempio non ha una conoscenza approfondita dei linguaggi, sia di liberare gli sviluppatori professionisti dalle attività banali e ripetitive, in modo che possano concentrare i loro sforzi nel creare valore aggiunto in termini di esperienza, oltre a poter gestire più progetti rispetto a quelli che potrebbero seguire con un tradizionale approccio basato sulla scrittura del codice linea per linea.

Quali sono i vantaggi per le aziende

Una corretta adozione delle piattaforme di sviluppo low code (e no code) consente alle aziende di accelerare in maniera sostanziale lo sviluppo e la distribuzione delle applicazioni, facendo così fronte ad un’esigenza che nell’era della trasformazione digitale si sta rivelando sempre più critica, sia per soddisfare le esigenze interne che le relazioni con i propri clienti, senza dimenticare l’enorme substrato di interazioni che derivano da supply chain sempre più articolate, con guest e fornitori di ogni genere.

Le piattaforme low code, rispetto al flusso di lavoro tradizionale nello sviluppo di un’applicazione “linea per linea”, consentono di alleggerire il carico di lavoro degli sviluppatori e renderli più profittevoli in termini generali, ancor prima di entrare nel merito delle esigenze aziendali.

Allo stesso modo, le aziende possono concentrare il lavoro dei dev sui progetti più complessi, evitando un utile spreco di risorse quando si tratta ad esempio di automatizzare processi di routine o svolgere molte volte delle procedure di sviluppo che possono riutilizzare integralmente o quasi blocchi e componenti già pronti all’uso, che meritano soprattutto di essere assemblati con una certa logica in funzione dell’obiettivo specifico che si propone l’applicazione.

Volendo selezionare una serie di vantaggi frequenti, le aziende che si avvalgono della programmazione low code ottengono generalmente almeno alcuni tra i seguenti benefici:

Facilità di utilizzo del low code

Riscrivere ogni applicazione from scratch, come si dice in gergo, a prescindere dall’impiego o meno di un approccio low code, corrisponde di fatto ad un approccio anacronistico, quando lo sviluppatore potrebbe facilitare di gran lunga il proprio lavoro concentrandosi piuttosto sulle funzioni utili a soddisfare i requisiti e i desideri del cliente.

Sviluppo applicazioni più veloce

Gli utenti possono impostare un’applicazione in maniera molto rapida, grazie ad interfacce grafiche drag and drop, che consentono di spostare i blocchi e collegare i flussi mediante procedure che assolvono automaticamente quella che sarebbe la scrittura del codice necessaria se dovessimo fare le stesse cose con la scrittura di codice linea per linea. Tale approccio, al momento, non consente di ottimizzare le applicazioni in maniera scrupolosa, per cui sarà possibile incorrere in software in parte lenti o poco performanti in alcuni processi. Questo accade in gran parte perché la piattaforma low code tende ancora a utilizzare del codice ridondante o superfluo rispetto a quello che sarebbe indispensabile. Tuttavia, soprattutto grazie alle nuove funzionalità basate sull’Intelligenza Artificiale, anche questo aspetto è in via di deciso miglioramento. Rispetto alle procedure tradizionali, lo sviluppo low code si rivela mediamente molto più veloce nel deploy dell’applicazione, mediamente con vantaggi nell’ordine del 10X.

Elevata automatizzazione delle applicazioni

L’approccio low code consente di impostare con molta facilità le regole di decision making nel workflow dell’applicazione ed è la ragione per cui le piattaforme low code e no code sono sempre più utilizzate nel contesto della RPA e della hyperautomation, che sfrutta tecniche di Machine Learning per automatizzare una serie di procedure sulla base della continua analisi ed elaborazione delle basi di dati coinvolte dall’applicazione e dal contesto in cui si ritrova ad interagire.

Generale riduzione dei costi di sviluppo

Procedure di sviluppo più veloci e in grado di coinvolgere meno sviluppatori esperti comportano fisiologicamente una riduzione generale dei costi, con influenze positive anche nel caso della gestione e della manutenzione successiva alla prima pubblicazione del software. In questo caso incide molto la riduzione generale della complessità del tradizionale percorso di sviluppo, che viene in gran parte automatizzato dalla logica low code.

Anche se ad oggi appare impensabile utilizzare il low code per progetti di elevata complessità o dal ciclo di vita che si prospetta decisamente lungo, ci sono le basi per una vera e propria rivoluzione, già confermata dalle previsioni degli analisti almeno entro i prossimi cinque anni. I vantaggi a livello di produttività ed efficienza, a fronte dei risparmi oggettivi in termini di tempi e costi di sviluppo, si tradurranno in crescenti vantaggi economici per le aziende.

Maggior agilità e coinvolgimento del personale aziendale

Il notevole livello di visibilità ed integrazione offerto dagli strumenti di sviluppo low code consente di gestire qualsiasi modifica a fronte del variare delle esigenze previste per l’applicazione. La semplicità d’uso e la rapidità con cui è possibile lavorare sui componenti del software garantisce un approccio agile anche in funzione dell’innovazione, incoraggiando una maggior sperimentazione rispetto al tradizionale approccio basato sulla scrittura di codice linea per linea.

Oltretutto, sulla base di un progetto ben impostato, tali test possono essere condotti anche da personale aziendale che dispongono di grandi competenze nelle rispettive linee di business, pur senza essere di fatto degli sviluppatori esperti. La possibilità di essere così diretti sullo strumento agevola in termini complessivi la ricchezza esperienziale di cui l’applicazione si fa carico.

Grazie al low code, molte più persone in azienda possono creare software utile a soddisfare le loro esigenze. Tale vantaggio viene estremizzato, con tutti i pro e i contro del caso, dalle applicazioni no code, che eliminano del tutto l’esigenza della scrittura del codice per creare un’applicazione, rendendo potenzialmente superfluo il contributo di uno sviluppatore, dal concept al deploy del software in questione.

Customer experience di livello superiore

La possibilità da parte del personale generico delle linee di business di sviluppare le funzioni di cui necessitano consente di soddisfare una gamma molto più ampia di esigenze, soprattutto quando entrano in gioco le relazioni con i clienti e, più in generale, la customer experience. Grazie alle informazioni provenienti dai CRM, i dipendenti possono utilizzare tool low code / no code opportunamente predisposti per migliorare le applicazioni in funzione dei feedback ricevuti dai clienti.

I CX provider possono ad esempio sfruttare i tool low code / no code per abilitare applicazioni di marketing automation, customer care e in generale tutte quelle attività che possono portare ad una maggior fidelizzazione del cliente, ai fini di renderlo più profittevole.

Maggior compliance e sicurezza dei dati e delle applicazioni

L’ultimo punto che ci sentiamo di inserire tra i principali benefici che un’azienda può assicurarsi grazie allo sviluppo low code rappresenta in realtà croce e delizia, a seconda di come gli aspetti di compliance e sicurezza vengono effettivamente implementati nel caso specifico. Soprattutto per quanto riguarda questi aspetti, è bene che gli strumenti low code rimangano, nomen omen, degli strumenti, attentamente supervisionati in ogni fase dagli specialisti in materia.

Se fidarsi troppo del software può comportare delle brutte sorprese, il fatto di implementare in house buona parte del software che interagisce con i dati aziendali comporta un maggior livello di controllo complessivo sulla conservazione e sul trattamento degli stessi, in un contesto preferenziale per quanto concerne il rispetto delle normative vigenti. In merito ai contratti e alle condizioni d’uso previste con i clienti, la riduzione delle operazioni in outsourcing costituisce generalmente un ulteriore elemento favorevole.

Low code vs No code

Spesso affiancate quando si parla di sviluppo software, low code e no code costituiscono in realtà due approcci profondamente differenti tra loro, anche se vengono spesso utilizzate entrambe all’interno dei progetti nella stessa azienda.

L’approccio low code non prescinde assolutamente dalla conoscenza dei linguaggi di programmazione. È rivolto a sviluppatori che sanno gestire il codice, ma intendono automatizzare la maggior parte dei passaggi che una scrittura manuale “linea per linea” renderebbe decisamente più onerosa in termini di tempo.

Sviluppare low code consente di avere un flusso di lavoro semplificato ma tutt’altro che banale, con il fondamentale obiettivo, lo ricordiamo, di migliorare in maniera progressiva e incrementale i modelli di sviluppo. Il low code, nella sua massima concezione in termini di performance, che raggiungeremo grazie all’Intelligenza Artificiale, può coincidere con una macchina in grado di scrivere codice al posto nostro, ma il codice non sparirà mai dallo sviluppo, come invece accade ormai da diverso tempo nel contesto no code.

Il mondo della programmazione no code è invece rivolto ad un pubblico totalmente differente, ai cosiddetti citizen developers, che non dispongono, per cultura, formazione e professionalità, di competenze tecniche nell’ambito della programmazione. In altri termini, una piattaforma di sviluppo no code consente a chi non conosce i linguaggi di programmazione, né tantomeno sa gestire il codice di un software, di programmare in autonomia le applicazioni di cui necessita, senza doversi necessariamente rivolgere ad uno sviluppatore professionista.

Il dipendente comune, formato nell’utilizzo di una piattaforma no code, ma non nei linguaggi e nelle logiche che contraddistinguono tradizionalmente lo sviluppo di un’applicazione, è in grado di creare ad esempio quegli strumenti in grado di automatizzare quelle procedure di routine che lo vedrebbero altrimenti impegnato nella maggior parte del suo tempo, potendosi così dedicare esclusivamente alla supervisione e ad altre attività più strategiche per il business.

Questo è un ambito tipico della Robotic Process Automation (RPA) che consente di automatizzare i processi rendendoli più efficienti senza la necessità dell’intervento umano. Se un dipendente volesse ad esempio salvare la stessa tipologia di allegato presente in una mail in una serie di cartelle predefinite, potrebbe sviluppare in autonomia una semplice estensione al proprio client di posta elettronica, utilizzando gli strumenti no code messi a disposizione per personalizzare l’applicazione, andando oltre le potenzialità delle regole base.

Tale applicazione può essere sviluppata mediante una GUI (Graphic User Interface) che consente di disporre in maniera visuale i vari componenti, gestendo i flussi in maniera totalmente svincolata dalla programmazione in codice. Le piattaforme di sviluppo no code consentono di lavorare con l’esclusivo supporto della programmazione visuale, semplificando non tanto concettualmente, quanto tecnicamente l’intero percorso di sviluppo.

Il no code risulta particolarmente efficiente quando si tratta di sviluppare applicazioni stand alone o capaci di interagire ad un livello più alto su un’applicazione esistente, fungendo da interfaccia capace di automatizzare le procedure che l’utente svolge con il software in questione.

Per le ragioni che abbiamo appena citato, lo sviluppo no code risulta congeniale nei contesti di applicazione quotidiana, dando al singolo dipendente la possibilità di risolvere un problema specifico senza vincoli di sorta, senza eccessive pretese in fatto di gestione / manutenzione a lungo termine e integrazione in progetti complessi, dove l’impiego di codice, pur con molta flessibilità nella scelta dei linguaggi, risulta ancora fondamentale. Ciò accade quando si tratta di lavorare con più team di sviluppo, su moduli differenti, con logiche articolate come il DevOps. Il no code non nasce del resto per risolvere questo tipo di problema, mentre il low code, opportunamente contestualizzato da project manager e sviluppatori esperti, potrebbe facilitare e snellire parecchio alcune fasi dello sviluppo.

Le migliori piattaforme per lo sviluppo Low code e No code

La grande diffusione del low code, come del resto facilmente prevedibile, ha dato luogo al proliferare di piattaforma di sviluppo utili a supportare i dev in un progetto end-to-end basato su questo approccio. Per orientarsi nelle centinaia di proposte che il mercato attualmente offre, ci permettiamo di fare riferimento ad un recente Magic Quadrant di Gartner relativo proprio alle principali piattaforme di sviluppo low code attualmente disponibili (Gartner Magic Quadrant for Enterprise Low-Code Application Platforms, 2021).

Tra le soluzioni leader, il celebre analista ha rilevato le piattaforme low code di Outsystems, Mendix, Microsoft, Salesforce e ServiceNow, prontamente tallonati dai cosiddetti challengers: Appian, Oracle e Pega. Tra le piattaforme di nicchia, Gartner ha invece selezionato le piattaforme low code di Kintone, Newgen, Quickbase e Creatio.

Nel caso delle piattaforme per lo sviluppo no code assistiamo a migliaia di proposte, il cui fine è garantire uno strumento pratico e, appunto, libero dal codice, per svolgere le funzioni più disparate. Gli esempi sono potenzialmente innumerevoli. Piattaforme SaaS come Wix o Webflox consentono a chiunque di creare dei siti internet di prevegole fattura senza conoscere una singola riga di codice, basandosi sulla disponibilità di template iniziali e di strumenti di personalizzazione tramite interfacce visuali. Grazie a questi strumenti, qualsiasi startup può mettere online un sito semplice nel giro di poche ore, senza ricorrere per forza alla professionalità di un web developer, che rimane tuttavia indispensabile nel caso di progetti più complessi e altamente personalizzati.

Sul fronte delle relazioni, Mailchimp mette a disposizione una piattaforma di marketing in grado di raccogliere e analizzare i clienti ai fini di migliorare la comunicazione tra loro e il brand lungo l’intero customer journey. Tra le principali funzioni di Mailchimp vi è la possibilità di gestire le newsletter e le attività di direct email marketing (DEM) senza richiedere la presenza di varie figure previste dai processi tradizionali.

A livello di applicazioni, molti sicuramente avranno almeno sentito parlare di Zapier, una piattaforma che riesce a connettere tra loro le funzionalità di molte piattaforme di app, per creare dei nuovi flussi di lavoro, caratterizzati da una visibilità e da una efficienza ottenibile nel giro di pochi click. Chi utilizza ad esempio Slack, Dropbox, Excel, Shopify e vari social network può ad esempio utilizzare o personalizzare i flussi di lavoro di Zapier che consentono di fatto di utilizzarli come se fossero a tutti gli effetti integrati in una unica applicazione. Tutto questo, in buona parte dei casi, senza dover scrivere nemmeno una linea di codice.

Lo stesso discorso vale per molti aspetti relativi a piattaforme come WordPress ed altri content management systems (CMS) così come per applicazioni come Canva, che hanno rivoluzionato il mercato dei contenuti generati dagli utenti, consentendo con una semplice applicazione mobile di creare contenuti di pregevole fattura senza possedere conoscenze avanzate nell’impiego dei software di computer grafica.

Nata nel 2013 a Perth, in Australia, Canva è diventata in breve tempo una unicorn, e nel corso del 2021 ha raggiunto una capitalizzazione di 3,2 miliardi di dollari, giusto per rendere l’idea del potenziale imprenditoriale che l’universo no code consente di implementare, con la missione di rendere alla portata di tutti ciò che di base sarebbe tecnicamente molto complesso, se affrontato con metodologie tradizionali. Questo non vale soltanto infatti soltanto per lo sviluppo software inteso in senso stretto. Il fatto di aver citato Canva consente a tutti di creare contenuti grafici senza utilizzare un software complesso come Photoshop, che necessita di un entry level in termini di competenze di ben altra caratura.

Le piattaforme low code e no code, grazie alle proprietà offerte dal cloud computing, stanno implementando funzionalità di Machine Learning (ML), che consentono di migliorare progressivamente la conoscenza dei vari problemi che soprattutto i citizen developers si ritrovano ad affrontare. Grazie ad un’analisi dei dati sempre più mirata, gli algoritmi di ML riescono a comprendere sempre meglio le esigenze degli utenti, per rendere sempre più performanti sia le procedure low code che quelle no code, con una migliore astrazione, automatizzazione e sviluppo assistito in tutte le fasi del progetto.

Le funzionalità supportate dal Machine Learning consentono ad esempio di analizzare il codice, risolvere automaticamente i bug, oltre ad ottimizzare e auto-completare la scrittura del codice delle piattaforme low code. Ad oggi, per dirla con gli anglosassoni, AI Dev is still a baby, ma il suo straordinario potenziale è già sotto gli occhi di tutti. Google AutoML, presentato nel 2018 nell’ambito delle applicazioni cloud del colosso di Mountain View, ha costituito un efficace esempio in tale prospettiva, rendendo alla portata di tutti, o quasi, il training di un sistema di Machine Learning molto utile in varie applicazioni aziendali.