Il cosiddetto sviluppo di app “low-code” consiste in un approccio visivo, altamente astratto e largamente automatizzato allo sviluppo del software che si affida agli strumenti per generare gran parte del codice di base.
Gli sviluppatori professionisti e il personale della linea di business (LOB) consapevoli dei problemi di business, possono usare i concetti e le pratiche del low-code per affrontare una vasta gamma di faccende quotidiane di programmazione. Il che libera i team di sviluppatori che possono quindi concentrarsi su progetti più grandi e complessi.
Indice
- Come funziona lo sviluppo low code?
- I principi di sviluppo del low-code
- I vantaggi del low-code per il business
- Il low-code aiuta la trasformazione digitale dell’azienda
- Svantaggi del low-code
- I campi di applicazione dello sviluppo low-code per app mobili
- Le piattaforme low-code
- Quale futuro per lo sviluppo low-code/no-code?
- I rischi di sicurezza della piattaforma low-code/no-code
- Conclusione
Come funziona lo sviluppo low-code?
Lo sviluppo tradizionale del software è il frutto di un lungo sforzo minuzioso e dettagliato. Gli sviluppatori scrivono singole linee di codice che rappresentano istruzioni e dati. Organizzano quel codice in routine funzionali e moduli che forniscono le caratteristiche e le funzionalità del software. Questo approccio richiede una conoscenza dettagliata degli aspetti attraverso lo spettro di sviluppo delle applicazioni: linguaggi di sviluppo, ambienti di sviluppo integrati e compilatori, strumenti di test e distribuzione e le varie politiche e pratiche usate per approcciare la codifica, il test e la distribuzione.
In confronto, la tecnologia low-code astrae e incapsula molte delle conoscenze di programmazione altrimenti necessarie per creare software. Piuttosto che scrivere singole linee di codice, gli utenti selezionano da un menu i componenti funzionali riutilizzabili attraverso un’interfaccia visiva drag-and-drop. Quindi li sistemano e li organizzano iper formare il flusso del software desiderato, in modo simile alla creazione di un diagramma di flusso per affrontare un problema di business o un compito. Gli utenti possono facilmente aggiungere, spostare o cancellare i componenti funzionali per costruire il processo finale. A quel punto, lo strumento low-code incorpora il codice sottostante e i compiti di supporto, come il test e il deployment.
Il principale vantaggio dello sviluppo low-code rispetto allo sviluppo tradizionale delle app è il risparmio di costi e tempo, che può consentire a un’azienda di fornire alcuni prodotti e caratteristiche più velocemente ad un costo inferiore.
Naturalmente, ci sono molte ragioni per cui un’azienda dovrebbe continuare a usare modelli di sviluppo convenzionali, specialmente per il software aziendale complesso o specializzato. Molti progetti richiedono funzioni e operazioni, come l’ottimizzazione delle prestazioni, che non si adattano facilmente agli approcci low-code.
Accanto al low-code si parla sempre più di frequente di no-code. Le tecniche low-code possono semplificare e accelerare molti compiti quotidiani di programmazione aziendale, ma il low-code non è progettato né inteso per eliminare tutta la codifica. Molti progetti low-code richiedono una certa quantità di conoscenze di programmazione, sia per modificare i componenti funzionali esistenti o crearne di nuovi, e assemblare i componenti in modi specifici che uno strumento low-code non può ospitare.
I sistemi low-code e no-code sono fondamentalmente identici, ad eccezione di una differenza chiave: il no-code mira a fornire tutte le caratteristiche e le funzioni previste e ad eliminare la necessità di aggiungere o modificare componenti, il che significa che gli utenti non hanno bisogno di alcuna conoscenza di programmazione o progettazione di applicazioni. I sistemi no-code, pertanto, sono tipicamente visti come un sottoinsieme delle piattaforme low-code.
I principi di sviluppo del low-code
Il low-code incorpora un alto grado di automazione, ma le piattaforme e i processi di sviluppo non sono automatici. I migliori risultati dai progetti low-code dipendono anche da sani principi di business e tecnologia.
Chiariamo subito una cosa: le piattaforme low-code non fanno il lavoro per te. È ancora importante che tutte le parti interessate, dagli sviluppatori agli analisti di business ai proprietari del progetto, partecipino alla valutazione, selezione e uso della piattaforma low-code. Il vantaggio del low-code risiede nei suoi componenti predefiniti che sono trascinati e rilasciati nel flusso di lavoro. I componenti sono generici e si adattano a molti casi d’uso diversi, ma non sempre rispondono ai bisogni di un determinato compito di programmazione. È possibile allora modificare i componenti esistenti e aggiungerne di nuovi, come UI ed elementi di design visivo, ma tale personalizzazione aumenta il tempo e il lavoro di sviluppo (e il costo), e può smussare la velocità e la semplicità che le tecnologie low-code promettono.
I vantaggi del low-code per il business
- Velocità di sviluppo accelerata. Scrivere singole linee di codice e padroneggiare una sintassi complessa costituisce un notevole sforzo. Il low-code permette ai professionisti di assemblare idee e flussi di lavoro complessi come funzioni o componenti confezionati, organizzando il tutto in una comoda interfaccia visiva; una soluzione che potrebbe accelerare gli aggiornamenti futuri e le iterazioni del progetto;
- Più tempo a disposizione del personale. Il talento degli sviluppatori qualificati e il lorom tempo è denaro per l’impresa (tanto per cicalcare il famoso proverbio). Il low-code permette ai programmatori meno qualificati (e perfino ai non programmatori) di partecipare al processo di sviluppo del software. Qualsiasi personalizzazione richiesta o codifica specifica potrà poi essere realizzata da parte degli sviluppatori professionisti;
- Maggiore efficienza. Le aziende possono usare il low-code per creare strumenti da mettere a disposizione dei singoli dipartimenti. Per esempio, le Risorse Umane potrebbero aver bisogno di uno strumento che aiuti a modellare o prevedere gli stipendi e i benefici per prendere migliori decisioni sul libro paga.
- Innovazione a basso costo. Le aziende possono sperimentare idee che potrebbero essere costose o richiedere tempo con lo sviluppo tradizionale, per esempio, creare uno strumento per le unità di marketing per analizzare la spesa della campagna pubblicitaria rispetto alla risposta e determinare i modi più efficienti per raggiungere i clienti.
- Creazione di progetti minori o di nicchia. Il low-code è ottimale per la realizzazione di progetti di piccole dimensioni che possono essere fatte in modo rapido e conveniente. Per esempio, un’azienda potrebbe non avere un budget per lo sviluppo di uno strumento usato solo in un dipartimento finanziario, ma il low-code potrebbe fornire un’opzione allettante.
Il low-code aiuta la trasformazione digitale dell’azienda
Ogni azienda necessita di una strategia digitale, un progetto che descriva come applicare le tecnologie e i servizi digitali per sostenere gli obiettivi di business, creare o abilitare nuovi obiettivi, migliorare le prestazioni aziendali o ricreare i processi di business – spesso in modi che erano impraticabili o impossibili prima dell’avvento delle tecnologie digitali. Una strategia digitale completa può cambiare radicalmente le politiche, le priorità, gli investimenti e gli obiettivi a lungo termine di un’impresa.
La tecnologia low-code si allinea con le strategie di trasformazione digitale perché molti di questi sforzi coinvolgono progetti di sviluppo software che il low-code può accogliere o addirittura accelerare. Gli esempi includono portali, applicazioni mobili e strumenti di business.
Una di queste aree è, ad esempio, la gestione dei processi aziendali (BPM), che di solito comporta processi aziendali manuali basati su carta, analisi e approvazioni manageriali che richiedono tempo. Le aziende abbracciano i metodi BPM per aiutare a organizzare e analizzare i dati aziendali, valutare i bilanci, semplificare le approvazioni. Low-code e BPM si completano a vicenda – le funzioni BPM possono essere aggiunte come iniziative low-code, e alcuni strumenti BPM offrono astrazioni low-code quando si digitalizzano i processi aziendali.
Naturalmente, il low-code è solo una parte di una strategia di trasformazione digitale. Richiede anche una forte collaborazione tra team di business e leader tecnologici per capire il business, identificare i prodotti e le opportunità digitali che meglio si adattano alle esigenze dell’organizzazione, e valutare e introdurre varie tecnologie.
Parlaci del tuo progetto!
Svantaggi del low-code
L’approccio di sviluppo app low-code presenta anche alcuni svantaggi non trascurabili, vediamo quali sono.
- Scarsità o assenza di conoscenza di programmazione. Le applicazioni costruite con un codice affidabile richiedono la conoscenza dello sviluppo del software aziendale e delle pratiche commerciali. Le imprese che chiedono a persone che non hanno conoscenze di programmazione di assumersi compiti di programmazione a livello aziendale potrebbero ritrovarsi a spendere di più, in seguito, per riparare il cattivo codice che se avessero creato del buon codice fin dall’inizio.
- Codice inefficiente e non ottimizzato. Quando il codice è astratto in componenti generici e riutilizzabili, può produrre codice ridondante ed eccessivo per il compito da svolgere. È facile perdere molte delle potenziali ottimizzazioni che potrebbero ridurre le dimensioni del software e migliorare le prestazioni. Il codice di qualità scritto a mano può affrontare questi problemi di codifica con efficienza e persino eleganza.
- Complessità nella semplicità. Può sembrare un gioco di parole ma la promessa di semplicità del low-code si avvera quando il codice risultante funziona come previsto. Ma se non funziona o funziona male? L’applicazione è sicura e coerente con la strategia di conformità dell’organizzazione? Qualcuno all’interno dell’organizzazione deve possedere una conoscenza completa di ciò che sta accadendo “dietro le quinte” della piattaforma low-code per trovare il motivo delle prestazioni insufficienti e affrontare gli errori o applicare la sicurezza del software e altri standard di codifica.
- Limitatezza dei casi di utilizzo. Le piattaforme low-code risolvono efficacemente alcuni problemi di programmazione aziendale, ma non tutti. Possono inciampare in molti compiti complessi e richiedere così tanta personalizzazione e integrazione che gli approcci e i set di strumenti di sviluppo software convenzionali tornano ad essere la scelta migliore.
- Documentazione del fornitore. Quando un team usa uno strumento low-code per creare un’applicazione, lo strumento potrebbe essere scarsamente documentato e difficile da mantenere. Bisogna valutare la capacità di uno strumento low-code di esportare, accedere e modificare il codice usando altri editor e strumenti di sviluppo software.
I campi di applicazione dello sviluppo low-code per app mobili
Una volta che le aziende identificano e allineano gli obiettivi di business con chiari requisiti IT, i progetti low-code possono riempire una serie di potenziali opportunità. Le applicazioni low-code comuni includono le seguenti possibilità:
- Portali web. I portali sono mezzi comuni e popolari per i clienti per interagire con le aziende, trovare servizi o prodotti, ottenere preventivi, controllare la disponibilità delle risorse, programmare il lavoro o fare ordini, ed effettuare pagamenti. Il low-code può aiutare a creare rapidamente una serie di portali con front-end o interfacce utente comuni invece di codificare manualmente HTML e componenti back-end.
- Sistemi line-of-business. Le aziende si affidano ai sistemi LOB e alle app per svolgere le attività quotidiane. Per esempio, una società di prestiti ipotecari adotta un sistema per organizzare i documenti ipotecari e le scartoffie, integrare le perizie, e condurre controlli di credito e analisi finanziarie dei mutuatari. Le aziende potrebbero acquistare una simile piattaforma da un fornitore oppure potrebbero costruirla in house usando processi di codifica tradizionali. Il low-code fornisce una terza opzione per aiutare le aziende a costruire e aggiungere applicazioni adattive e scalabili, e anche a migrare verso implementazioni singole o multi-cloud;
- Processi di business digitalizzati. I processi di business tradizionali basati su carta o fogli di calcolo sono lunghi e soggetti a errori. Le aziende possono usare il low-code per creare applicazioni che raccolgono le informazioni richieste, passano le informazioni e le richieste attraverso il processo di approvazione dell’azienda, consegnano i risultati ai richiedenti e si integrano con i sistemi aziendali convenzionali, come l’ERP. Per esempio, il low-code può essere usato per semplificare un’applicazione di richiesta di capitale.
- Applicazioni mobili. Con il low-code, un’azienda può costruire una vasta gamma di applicazioni per dispositivi mobili che presentano dati e interazioni di business ai clienti. Per esempio, l’applicazione mobile di una compagnia di assicurazioni permette ai clienti di presentare reclami e caricare la documentazione di un incidente, come le foto della collisione, dai loro smartphone. Le piattaforme low-code di oggi possono assemblare applicazioni sia per dispositivi Android che iOS dallo stesso progetto.
- Applicazioni di microservizi. Un’architettura a microservizi crea applicazioni altamente scalabili da una serie di componenti indipendenti che comunicano tramite API attraverso una rete. I componenti possono essere sviluppati, distribuiti e mantenuti in modo indipendente, il che permette uno sviluppo più veloce oltre ad aggiornamenti più facili con meno test di regressione rispetto alle tradizionali applicazioni monolitiche. Il low-code è una piattaforma praticabile per i componenti basati su microservizi, per creare e re-immaginare rapidamente le applicazioni di base per una maggiore prestazione e stabilità, e per aiutare a tradurre il codice tradizionale legacy in moderne e agili applicazioni microservices.
- Applicazioni IoT. Le aziende sono alle prese con i modi per ricavare dati aziendali significativi dalla moltitudine di sensori e dispositivi del mondo reale che compongono il cosiddetto “internet delle cose” (IoT). Le aziende possono usare il low-code per costruire app e funzioni che integrano gli endpoint dell’IoT, raccolgono ed inviano i dati dell’IoT attraverso le infrastrutture di calcolo back-end e, infine, forniscono richieste di dati risultanti a clienti interni o esterni. Per esempio, un’applicazione low-code per l’orticoltura potrebbe utilizzare sensori di umidità e temperatura – combinati con i dati sui cicli e le condizioni di crescita – per controllare automaticamente l’illuminazione interna e l’irrigazione per le colture.
Le piattaforme low-code
Il mercato degli strumenti e delle piattaforme low-code continua a maturare ed evolvere. L’offerta, sempre più ampia e diversificata, include molti venditori che combinano funzioni low-code e no-code in un unico strumento o piattaforma. Le aziende possono scegliere tra vari prodotti e piattaforme low-code cloud-native e di terze parti per usi che vanno da semplici siti web e applicazioni mobili allo sviluppo di applicazioni di classe enterprise. Ecco alcune tra le più diffuse piattaforme di sviluppo per app mobili low code. Molte piattaforme low-code offrono anche funzionalità no-code, come Appian, Mendix, Microsoft PowerApps, OutSystems e Salesforce Lightning.
- AppGyver
- Appian
- AWS Honeycode
- Google AppSheet
- Umso (ex Landen 2.0)
- Looker 7 business intelligence
- Mendix
- Microsoft PowerApps
- OutSystems
- Rintagi
- Salesforce Lightning
- Skyve
- Zoho Creator
Altri soluzioni disponibili sul mercato che meritano un approfondimento:
- Airtable
- AppGyver
- Appy Pie
- AWS Honeycode
- Betty Blocks
- Bubble
- Carrd
- Glide
- Gumroad
- Kissflow
- Memberstack
- Nintex
- Notion
- Outgrow
- Payhere
- Quickbase
- Voiceflow
- Zapier
- Zudy Vinyl
Colossi del web e del software sono scesi recentemente in campo nel mercato dello sviluppo low-code/no-code – in particolare Amazon, Microsoft e Google – per competere con i venditori “tradizionali” come OutSystems, Mendix e Appian. Queste grande aziende hanno fatto investimenti significativi per fornire ai clienti integrazioni più profonde con sistemi aziendali di lunga data e con stack di piattaforme cloud.
Le aziende dovrebbero valutare le capacità specifiche di una piattaforma low-code e prestare particolare attenzione a come la piattaforma low-code gestisce i componenti. Per esempio, i modelli e i componenti confezionati dello strumento low-code dovrebbero mappare da vicino i blocchi di costruzione di alto livello e le metodologie funzionali che l’azienda già usa, il che ridurrebbe la necessità di cambiamenti e nuovi componenti personalizzati. Uno strumento low-code potrebbe offrire un forte supporto API nel momento in cui si integra con i progetti di codice tradizionale – ma se lo strumento non si adatta al modello d’uso, il lavoro di personalizzazione annullerà i benefici.
Un’azienda che decida di sviluppare nuovi componenti dovrebbe valutare la facilità e l’efficienza con cui il motore di personalizzazione crea nuovi blocchi visivi o codice personalizzato. Spesso è meglio creare un nuovo componente piuttosto che cambiarne uno esistente, poiché gli sviluppatori possono garantire un codice ottimale e sicuro per scopi o progetti specifici.
Parlaci del tuo progetto!
Quale futuro per lo sviluppo low-code/no-code?
Il futuro dello sviluppo low-code e delle piattaforme è roseo. Il low-code aiuta le aziende a costruire app per scopi aziendali specifici con una più ampia partecipazione dell’IT e del business. Low-code e no-code hanno costituito meno del 25% delle app sviluppate nel 2020 ma, secondo la società di analisi Gartner, si prevede che rappresenteranno addirittura il 75% entro entro il 2025; le vendite delle piattaforme e dei software cresceranno, secondo le previsioni, dagli attuali 9 miliardi di dollari a circa 30 miliardi di dollari nello stesso periodo.
Mentre le piattaforme low-code si evolvono con più velocità e automazione, la necessità di garantire standard di codifica adeguati e di gestire i problemi (test e correzioni di bug) guiderà l’ampliamento e il miglioramento delle capacità di test aggiuntive, spingendo sempre più verso un’automazione dei test più in profondità nella pipeline CI/CD.
In definitiva gli sviluppatori dovranno imparare le piattaforme low-code e lavorare più strettamente con gli utenti low-code per estendere e personalizzare i componenti low-code. Ciò richiederà necessariamente una migliore comunicazione e una maggiore capacità di collaborazione e interazione con il personale aziendale, ovvero il personale non tecnico – denominato “cittadini sviluppatori” – per costruire le future applicazioni aziendali.
I rischi di sicurezza della piattaforma low-code/no-code
Le piattaforme low-code/no-code sono un’opzione sempre più popolare ma sollevano anche questioni relative ad eventuali problemi di sicurezza. Utilizzando questi sistemi, gli sviluppatori costruiscono app principalmente tramite GUI e moduli precostituiti, piuttosto che attraverso la codifica manuale. Sotto la superficie queste applicazioni contengono una grande quantità di codice ma, dal punto di vista dei programmatori che le creano, la quantità di programmazione e configurazione richieste è davvero minima.
Vediamo quali sono i principali problemi di sicurezza che possono venirsi a creare:
- Sviluppo di codice in outsourcing. Nella programmazione low-code/no-code, molto del codice su cui si basa il vostro programma è esternalizzato, il che significa che è scritto da qualcuno esterno alla vostra organizzazione, che poi ve lo consegna tramite moduli preconfigurati. Ciò può rendere difficile applicare le politiche di sicurezza della vostra organizzazione o aderire alle migliori pratiche;
- Aggiornamenti di terze parti. Quando esternalizzate il vostro codice, esternalizzate anche i vostri flussi di lavoro di aggiornamento. Con una piattaforma no-code/low-code, si deve fare affidamento sul fornitore per rimanere protetti dalle vulnerabilità di sicurezza e per affrontare qualsiasi rischio. Questo “affidamento” può aggiungere complessità alle politiche interne della vostra organizzazione e ai flussi di lavoro nell’applicazione degli aggiornamenti. Potreste aver bisogno di regolare il vostro programma di aggiornamento per adattarlo a quello del vostro fornitore. Inoltre, potreste non essere in grado di correggere le vulnerabilità di sicurezza conosciute nelle vostre app low-code fino a quando il fornitore non fornirà una correzione;
- Mancanza di controlli di sicurezza. Le piattaforme low-code/no-code permettono un rapido sviluppo e una altrettanto veloce consegna del software, il che, di per sé, non è un rischio per la sicurezza; tuttavia, quando si consegnano le applicazioni a velocità rapida, queste potrebbero non essere state sottoposte ad adeguati controlli di sicurezza.
- Mancanza di convalida dei dati. Uno degli usi più comuni per le piattaforme low-code/no-code è quello di creare applicazioni che interagiscono con i dati aziendali. Tuttavia, quando non si convalidano correttamente quei dati, o li si memorizza in modo insicuro, il risultato potrebbe essere rischioso. Molte piattaforme di programmazione low-code rendono molto più facile ingerire e manipolare i dati che renderli sicuri.
- Sviluppatori inesperti. Un grande argomento di vendita per le piattaforme low-code/no-code è la loro capacità di permettere alle persone comuni – i cosiddetti “cittadini sviluppatori”, appunto – di creare software senza alcuna esperienza di programmazione – quantomeno – con scarsa esperienza. Questa nuova generazione di sviluppatori, in quanto inesperta, potrebbe non essere consapevole delle vulnerabilità di sicurezza che sarebbero ovvie, invecem per i programmatori più esperti.
Conclusione
Stiamo assistendo all’alba di nuova generazione di sviluppatori di app mobili che in realtà, a guardar bene, non sono veri e propri sviluppatori.
Grazie a un numero crescente di piattaforme di sviluppo low-code, quasi chiunque, con un po’ di entusiasmo e pazienza, può costruire applicazioni mobili e siti web in modo rapido ed efficace.
Questi nuovi strumenti fanno essenzialmente il duro lavoro che, tradizionalmente, hanno sempre fatto i “veri” sviluppatori – dalla gestione e integrazione dei dati alla configurazione visiva degli strumenti di logica di business, alle regole incorporate per lo sviluppo e la consegna, e grande enfasi viene data alla caratteristica tipica di queste nuove piattaforme: gli elementi drag-and-drop.
Il momento non potrebbe essere migliore. Una carenza mondiale di sviluppatori di software ha reso difficile assumere – e mantenere – programmatori di talento, mentre la domanda di applicazioni non è mai stata così alta, in particolare nell’arena mobile. La domanda di applicazioni mobili, infatti, cresce con un tasso annuo del 21% e varrà 101 miliardi di dollari entro il 2021, quindi le piattaforme di sviluppo low-code/no-code potranno essere di grande aiuto.