Prima di poter affermare che il no-code e low-code siano maturi non solo per creare MVP, ma anche per sviluppare dei prodotti digitali finiti, proviamo a ripercorrere in modo veloce l’evoluzione di questo nuovo approccio.
Gli ultimi 3 anni, per il no-code e il low-code, sono stati di forte accelerazione.
Amarcord
Gli strumenti no-code/low-code tendenzialmente esistono da un po’ di tempo.
Se pensiamo ai primi strumenti RAD o al più famoso Wordpress, possiamo intravedere dei primi tentativi nel cercare di facilitare e accelerare quelle fasi di sviluppo spesso ripetitive o time-consuming.
A partire da quelle prime intuizioni si è cercato, nel corso degli anni, di capitalizzare tutto quello veniva sviluppato cercando di strutturare tutto ciò che veniva prodotto in modo da poter riutilizzare il maggior numero possibile di componenti.
Era la base della programmazione a oggetti: progettare un software in tanti moduli (oggetti appunto), riutilizzabili sia all’interno dello stesso software (classi), sia in altri (librerie).
Il concetto che sta alla base della programmazione a oggetti è stato esteso, poi, agli ecosistemi, a quelle soluzioni tecnologiche composte da più moduli autoconsistenti: gli oggetti si sono evoluti in microservizi.
Il nuovo approccio
L’iterazione continua e l'insistenza su questo approccio hanno portato alla creazione di componenti diventati "standard". L’obiettivo, a questo punto, non era tanto creare dei nuovi moduli, ma metterli insieme nel modo più creativo possibile per creare nuovi prodotti digitali.
Ed è cosi che nasce l’approccio no-code/low-code: piattaforme che già contengono al loro interno gli atomi e le molecole per realizzare un software. L’unico scopo di un creatore è quello di assemblarli in modo da poter realizzare il proprio prodotto.
La critica
Quale è la critica che però veniva rivolta a questi strumenti in un primo momento?
La scalabilità e le performance: il fatto di avere al loro interno tutto ciò che serviva a sviluppare un prodotto, la loro esistenza in infrastrutture tecnologiche non controllabili direttamente (SaaS) facilitava lo sviluppo, ma non l’affidabilità e tantomeno le performance e li rendeva adatti solo alla creazione di prototipi ed MVP.
Un po’ come quelle persone che sanno fare tantissime cose, ma mai benissimo una.
La risposta sul campo
Ma la tecnologia va avanti e il tempo serve proprio a iterare su ciò che abbiamo creato per poterlo migliorare.
Cominciano a nascere tantissimi strumenti no-code/low-code, ognuno specializzato in qualcosa in particolare: database, flussi backend, frontend, mobile, API.
E il concetto di microservizi e scalabilità viene portato a un nuovo livello.
Ed è proprio questo passaggio che ha portato alla definitiva maturazione del no-code/low-code.
Se pensiamo ad un prodotto come se fosse composto da tanti microservizi, ognuno dei quali è interconnesso agli altri e partiamo dal presupposto che ognuno di essi può essere sostituito, migliorato in base a come la nostra soluzione necessita di scalare, abbiamo risolto l’equazione.
Ogni microservizio può essere uno strumento no-code/low-code, demandato a svolgere una specifica funzione.
L’interoperabilità con gli altri moduli è garantita da API e Database.
Quando un singolo servizio è in sofferenza, può essere ottimizzato, scalato o sostituito.
A rinforzare questo scenario oggi esistono anche due strade ulteriori:
- Trasformare gli strumenti no-code/low-code in self-hosted: la maggior parte di queste piattaforme esistono anche in modalità Open Source, cosa che permette di poterle installare su infrastrutture tecnologiche avanzate con lo scopo di migliorare le performance
- Coesistenza con sistemi classici: la possibilità di poter interagire con sistemi diversi attraverso API e DB, ha permesso la convivenza con strumenti e tecnologie di sviluppo classico. Questi sistemi ibridi permettono di poter usare il low-code/no-code anche per quegli sviluppi che richiedono fine tuning ingegneristico, facilitando comunque la creazione di prodotti digitali senza perdere il vantaggio di avere all’interno componenti software di alto livello.