
Il potere del low-code è reale o superato? Come possiamo valutarlo?
Una situazione impossibile Immaginatevi questa situazione, in un’azienda tecnologica, c’è un team che si trova davanti a un bel guaio: devono creare un’applicazione per gestire i rapporti con i clienti e hanno solo poche settimane per farlo. Sembra quasi una missione impossibile, vero? Eppure, eccoli qui, tre settimane dopo, non solo hanno finito in anticipo, ma hanno anche messo su un sistema CRM che funziona alla grande e su misura per le loro esigenze. Niente notti in bianco a scrivere codice o trucchi da maghi dell’informatica, ma solo la magia delle piattaforme low-code. Questi strumenti stanno cambiando completamente il gioco, rendendo lo sviluppo software un processo veloce, efficiente e alla portata di tutti. Impressionante, no? Ma è proprio vero? Si legge nel web che le piattaforme low-code sono strumenti di sviluppo software che permettono di creare applicazioni scrivendo poco codice tradizionale o addirittura senza scriverlo. Usando un ambiente visuale, dove gli utenti possono utilizzare interfacce drag-and-drop e modelli pre-costruiti, permettono di assemblare e configurare le funzionalità di un’app. Il focus è sulla semplificazione del processo di sviluppo, rendendolo accessibile anche a chi non ha competenze avanzate in programmazione. Si presentano particolarmente utili per lo sviluppo rapido di applicazioni aziendali, l’automazione dei processi e la creazione di soluzioni personalizzate per rispondere a esigenze specifiche del business. Grazie a queste piattaforme, aziende di ogni dimensione possono innovare a costi accettabili ed adattarsi rapidamente in un mercato in continua evoluzione. Allora avanti tutta con il low-code! O no? Cosa si intende per piattaforma low-code? Sebbene, a pelle, esista un concetto comune di low-code, non esiste una definizione univoca. Potete leggere le posizioni di alcuni brand altisonanti cliccando i loro nomi: KPMG KPMG investe molto nel low-code tanto da aver creato neòl 2021 il Low-Code Center of Excellence. Ma non sono riuscito a trovare una sua definizione di Low-code. O meglio, risponde alla domanda Cosa è il low-code con parole non sue, ma dell’azienda ServiceNow:Low-code is a refined way for companies to develop high-end applications which, according to ServiceNow, can perform up to 10 times faster compared to those developed traditionally. Sinceramente non calza con molte piattaforme low-code che conosco. In un’altra pagina parla del low-code come “one of the more disruptive technologies to hit the enterprise since the cloud. It enables you to create powerful software applications using a simple graphical interface instead of arcane programming skills.“ Gartner Con un approccio più strutturato Gartner fornisce una sua definizione sia nel suo sito Peer Insights “Gartner defines low-code application platforms (LCAPs) as application platforms that are used to rapidly develop and run custom applications by abstracting and minimizing the use of programming languages.” Poi condivide le sue considerazioni sulla crescita del mercato del low-code, Infine rende disponibile uno dei suoi famosi Magic Quadrant, dove “Gartner defines LCAP solutions as application platforms used to rapidly develop custom applications.“. Ossia sparisce il riferimento al run. IBM e Kindryl Per IBM “Low-code is a visual approach to software development that enables faster delivery of applications through minimal hand-coding“. Nella stessa pagina, viene fatta una considerazione interessante sulle differenze tra low-code e no-code: “However, no-code products are specifically targeted for business users, allowing them to create custom apps without expert development skills and knowledge“ Mentre Kindryl, la parte dei servizi IBM che è stata raccolta in un’azienda ad-hoc, non spende energie sulla parte concettuale ma opera direttamente annunciando che Microsoft recently awarded Kyndryl with the Low Code Application Development Specialization. Oracle Oracle sul low-code ha una sua piattafomra e dice che “A Low Code stage uses a simplified interface that lets developers build applications and software that is both user-friendly and responsive“ Queste definizioni mostrano come ciascuno plasma la definizione di low-code evidenziando criteri differenti. Chi evidenzia la rapidità del processo di sviluppo, chi considera anche gli aspetti dell’ambiente di produzione, chi considera le competenze necessarie e chi si rivolge solo agli sviluppatori. Tutti però mettono alla base di tutto gli aspetti visuali e di drag-ann-drop Secondo me, le definizioni precedenti peccano perché fanno tutte riferimento ad un generico sviluppo applicativo che viene velocizzato, senza considerare i suoi molteplici aspetti. Quindi facendo credere che il low-code ha una sua capacità magica di far andare meglio qualsiasi sviluppo applicativo. Penso che questo sia il motivo principale per cui il low-code è visto con diffidenza da chi ha esperienze di sviluppo applicativo, sia come tecnico che come decision-maker. Quali sono gli elementi dello sviluppo applicativo su cui incide il low-code? Penso che non si possono valutare oggettivamente le novità introdotte dal low-code senza avere un quadro di riferimento che quello che è necessario allo sviluppo applicativo convenzionale. Per questo, se non siete avvezzi con questo mondo, nelle seguenti sezioni descrivo un modello infrastrutturale ed un modello di architettura software che uso per inquadrare le piattaforme del low-code. Con un click sui seguenti titoli si possono vedere i modelli presi come base di partenza. Lo stack infrastrutturale – un modello Come è fatto Partiamo da una descrizione banale dello stack infrastrutturale necessario alle applicazioni. L’Hardware – È la parte fisica della tecnologia informatica. Sono i dispositivi che permetto l’esecuzione dei programmi, la connessione tra loro ed il trasferimento dei dati. Ad esempio, il nostro PC, notebook o desktop, spento o acceso è l’hardware. Il Sistema Operativo – È un software, abbastanza generico, necessario per svolgere le interazioni di base con l’hardware. Di fatto nasconde la complessità dell’hardware agli utilizzatori, siano essi umani o altri software. Nei nostri PC è Windows o MacOS per chi ha un’Apple. Il Middleware – È una categoria di software strana da definire, perché rende disponibili un insieme di funzionalità specifiche in modo generico ad un utilizzatore. Un’ ottimo esempio sui nostri PC è il software per i fogli di calcolo, sia esso EXCEL o Sheets o Numbers. Provate ad aprirlo senza fare altro, vedrete una tabella vuota senza che accada altro. Il vostro programma vi mette a disposizione tante funzionalità per gestire dei dati all’interno di tabelle, ma se non lo iniziate ad usare, a