Di Martin Heller
Le piattaforme di sviluppo low-code e no-code di oggi permettono ai team di sviluppatori di software - e anche ai non-sviluppatori - di fornire, supportare ed estendere una vasta gamma di applicazioni. Sono utilizzate per costruire applicazioni mobile, fornire esperienze ai clienti, ottimizzare i flussi di lavoro, modernizzare le applicazioni legacy, automatizzare le integrazioni dei dati e supportare le visualizzazioni dei dati, per citare gli usi più comuni.
I principali punti di forza degli strumenti di sviluppo low-code e no-code sono che possono essere usati con successo da sviluppatori meno qualificati, "citizen"; che possono produrre applicazioni più velocemente usando SDK nativi; e che possono produrre applicazioni per meno soldi. Molti (ma non tutti) dei sistemi commerciali low-code e no-code compensano i vostri risparmi sui costi di lavoro con le loro tasse di licenza o abbonamenti.
Costi e risparmi no-code e low-code
Se stai costruendo app per consumatori o clienti, evita i sistemi di sviluppo che ti fanno pagare per utente, ed evita i sistemi di sviluppo che non forniscono prestazioni di tipo nativo. Se il sistema di sviluppo genera app con prestazioni lente o un look and feel non nativo, i consumatori potrebbero storcere il naso.
Per darvi una stima approssimativa, gli sviluppatori di software laureati negli Stati Uniti guadagnano tra i 50 e i 120 mila dollari all'anno (in media 72 mila dollari), e le semplici applicazioni consumer costruite da zero in codice nativo richiedono ovunque da sei a 25 mesi-uomo (in media 12 mesi-uomo), quindi le semplici applicazioni native probabilmente costano circa 72 mila dollari per svilupparle. Le applicazioni native complesse possono costare oltre 1 milione di dollari.
Se usi un sistema di sviluppo low-code che riduce il tempo di sviluppo per una semplice applicazione a un mese/uomo (costo ~$6K) ma ti fa pagare una tassa di licenza di $10 per utente, allora quando avrai 6.600 utenti il tuo costo totale supererà il costo dello sviluppo nativo. Di nuovo, questa è una stima approssimativa.
In questo caso, uno strumento di sviluppo che ti fa pagare per app, per server, per sviluppatore o per anno di sviluppo potrebbe essere un valore migliore per te. D'altra parte, se stai costruendo molte applicazioni per uso interno da alcune centinaia di dipendenti, la matematica potrebbe favorire il pagamento per utente.
Le aspettative dei dipendenti sulle applicazioni tendono ad essere più basse delle aspettative dei consumatori, e i dipendenti non hanno davvero una scelta sull'uso di un'applicazione quando è richiesta per svolgere il loro lavoro. Possono lamentarsi, ma la useranno comunque.
Sviluppo No-Code vs. Low-Code
Se state usando uno strumento di sviluppo no-code, potete tipicamente trascinare i componenti sulla vostra tavolozza di design a vostro piacimento, fino a quando non sbattete contro un muro di mattoni quando scoprite che lo strumento manca di qualcosa di cui avete bisogno. A quel punto, potreste essere sfortunati, o potreste essere in grado di comprare o altrimenti ottenere il componente di cui avete bisogno dallo sviluppatore dello strumento o da un fornitore terzo.
In uno strumento di sviluppo low-code, mentre la curva di apprendimento può essere un po' più ripida di quanto lo sia per uno strumento no-code, perché dovete scrivere frammenti di codice, le barriere per estendere lo strumento sono tipicamente più basse. Invece di dover comprare un altro componente, spesso si possono scrivere poche righe di codice per chiamare un sistema, un open-source o un'API del fornitore.
In alcuni ambienti low-code, il codice è opzionale. In altre parole, l'ambiente può essere usato per lo sviluppo no-code, fino ad un certo punto. Gli utenti aziendali potrebbero essere in grado di eseguire il 95% del lavoro di sviluppo, con un programmatore che compila il codice necessario per il restante 5%. Questi numeri variano a seconda dell'applicazione e dello strumento.
Spesso il codice che devi scrivere per uno strumento low-code è semanticamente simile a un linguaggio che potresti già conoscere. Per esempio, Microsoft Power Fx è basato su Microsoft Excel, e Xbasic di Alpha Software è cresciuto da Microsoft Basic. Molti strumenti low-code usano un linguaggio che ha una stretta relazione con JavaScript o incorpora un vero motore JavaScript come V8.
C'è una scuola di pensiero che sostiene che lo sviluppo no-code è solo uno sviluppo low-code commercializzato per utenti business. C'è una scuola di pensiero più realistica che sostiene che tutti i team di sviluppo no-code e low-code hanno bisogno di sviluppatori professionisti che contribuiscano ad uno sforzo di gruppo per fornire le parti che gli utenti aziendali non possono costruire da soli: schemi di database, sviluppo di componenti, architettura, design dell'esperienza utente e revisione della qualità.
Tipi di strumenti no-code e low-code
Prima di iniziare a comprare uno strumento di sviluppo low-code o no-code, dovresti farti alcune domande sulla tua applicazione per capire se low-code o no-code avrebbero senso per te. Ti suggerisco di scrivere le tue risposte per riferimento futuro.
- Stai costruendo un'applicazione per il desktop? Per Windows? Per Mac? Per Linux? Per tutti i precedenti?
- Stai costruendo un'applicazione web? Per i browser desktop? Per tablet? Per smartphone? Per tutto quanto sopra?
- Stai costruendo un'app per cellulari? Per iPhone? Per iPad? Per Android? Per tutti i precedenti?
- Hai intenzione di scrivere codice nativo per i dispositivi mobile? Di usare una tecnologia web ibrida? Usare una shell nativa e contenuti web? Di usare tutte queste cose?
- Hai un budget? Qual è? Hai una scadenza? Quanto è lontana? Quanti sviluppatori lavorano con te? Quali sono le loro competenze? Il vostro budget, la scadenza e le risorse sono coerenti con i vostri obiettivi per l'applicazione? Come hai fatto le tue stime?
- Hai bisogno di un database dietro l’app? Se sì, è un database esistente o uno nuovo? I clienti aggiorneranno il database?
- La tua applicazione ha bisogno di supportare la comunicazione con i clienti? Ci sono altre caratteristiche speciali di cui hai bisogno?
- Stai costruendo un applicazione per uso interno? Per i clienti o i consumatori? Per i partner commerciali? Per tutte queste cose?
- Stai sostituendo o modernizzando un processo aziendale esistente? Stai cercando di informatizzare un modulo cartaceo esistente?
Come è implicito in questa raffica di domande, ci sono molti tipi di ambienti di destinazione per le applicazioni. Ci sono anche molti tipi di paradigmi di progettazione per strumenti di sviluppo no-code e low-code.
Gli obiettivi di runtime includono applicazioni desktop per Windows, macOS, Linux e occasionalmente anche DOS. Gli obiettivi mobile includono Android, iOS e le loro varianti per tablet e orologi. Gli obiettivi delle app web includono più o meno tutto quanto sopra, con le considerazioni aggiuntive del supporto del browser (Chrome, Edge, Safari, Firefox e Opera) e la capacità di gestire diverse dimensioni dello schermo in modo reattivo. Le web app ibride combinano una shell app nativa con contenuti web.
I paradigmi di progettazione includono la personalizzazione delle app prototipo; ambienti di progettazione drag-and-drop con fogli di proprietà e piccoli frammenti di codice; descrizioni dichiarative dei campi; conversione di moduli scannerizzati; conversione di disegni wireframe o grafici; e generazione di moduli da schemi di database. I controlli possono avere layout assoluti o relativi e possono avere layout di flusso o contenitori per gruppi di controlli. I controlli stessi possono essere nativi della piattaforma o implementati come parte del runtime dello strumento.
Le capacità di back-end possono includere autenticazione e connessioni a database, servizi cloud e applicazioni aziendali. Le app mobile possono supportare messaggi di testo, notifiche push, geolocalizzazione, servizi foto e video, fornitori di identità sociale e integrazione con i social network. Le app che usano servizi di back-end possono essere progettate per funzionare anche quando hanno una connettività intermittente, e possono sapere come risolvere i conflitti di dati che possono sorgere quando più di un utente cerca di aggiornare un database offline.
Le principali piattaforme di sviluppo low-code e no-code
C'erano più di 400 fornitori nello spazio di sviluppo no-code e low-code l'ultima volta che ho guardato. Gartner ne copre circa 250, e sembra essere in difficoltà nel cercare di suddividerli in categorie sempre mutevoli. Molti dei venditori, e alcuni dei prodotti, abbracciano diverse definizioni di categoria.
Non penso che la gestione dei processi aziendali (BPM) e gli strumenti di automazione dei processi robotici (RPA) dovrebbero essere raggruppati con altri strumenti no-code e low-code a questo punto, anche se c'è qualche sovrapposizione tecnologica. La differenza nella mia mente è che gli strumenti BPM e RPA automatizzano e orchestrano altri sistemi come loro scopo primario; i normali strumenti di sviluppo low-code possono usare sistemi aziendali, ma solo come mezzo per un altro fine.
Per esempio, uno strumento per automatizzare il noioso, ripetitivo, processo multi-sistema di fare due diligence su un prestito è RPA; un'applicazione tablet che un agente del servizio esterno usa per registrare un'ispezione dell'ascensore può sostituire i moduli cartacei, velocizzare il processo, ed eliminare alcune trascrizioni in ufficio, ma non automatizza il processo abbastanza per qualificarsi come RPA.
Ho selezionato i seguenti sette fornitori di sviluppo low-code e no-code come esempi, e li ho elencati in ordine alfabetico. Si noti che l'inclusione in questa lista non è una raccomandazione, e l'esclusione non è una condanna.
Alpha Software: Alpha Anywhere è uno strumento di sviluppo rapido di applicazioni end-to-end, low-code, per lo sviluppo di applicazioni desktop, web e mobile ibride che è orientato ai database e può essere utilizzato da sviluppatori con una serie di competenze. Alpha TransForm è uno strumento da no-code a low-code per lo sviluppo di moduli mobile con capacità offline che includono la sincronizzazione automatica quando la connessione riprende.
Appian: Appian offre un designer visivo no-code e strumenti low-code per lo sviluppo di applicazioni web e mobile con integrazione di dati aziendali no-code. Appian offre separatamente una piattaforma di automazione per BPM e RPA.
Claris: Claris FileMaker è un sistema di sviluppo low-code per lo sviluppo di app desktop, web e mobile che include il proprio database. È dotato di modelli integrati, design drag-and-drop e un'interfaccia grafica intuitiva. Claris Connect è una piattaforma di automazione costruita sullo stesso nucleo di FileMaker.
Mendix: Mendix Studio è un ambiente di sviluppo WYSIWYG, basato su browser, per citizen developer Mendix Studio Pro è un ambiente di sviluppo basato sul desktop che include tutte le capacità richieste per lo sviluppo del software, compresa la possibilità di aggiungere codice personalizzato quando necessario. Mendix offre anche una piattaforma di automazione e un hub di dati.
Microsoft: Microsoft Power Apps è un costruttore di app low-code per Windows 10 che utilizza modelli, design drag-and-drop e Power Fx, un linguaggio di programmazione simile a Excel. Power Apps include un modello di linguaggio che può generare codice Power Fx da descrizioni in linguaggio naturale. Gli sviluppatori professionisti possono estendere Power Apps con Azure Functions e connettori personalizzati. Power Automate è una piattaforma RPA separata con un motore di flusso di lavoro.
OutSystems: OutSystems consente di trascinare e rilasciare elementi visivi per creare UI, processi di business, logica di business e modelli di dati per le vostre applicazioni web e mobile, e personalizzarli con il codice quando necessario. Offre circa 70 modelli e pattern pre-costruiti. OutSystems Forge contiene migliaia di moduli di codice pre-costruiti che è possibile rilasciare nella vostra applicazione, ed estendere nell'IDE se lo si desidera.
Salesforce: Salesforce Lightning è una piattaforma di sviluppo di app low-code e drag-and-drop per la piattaforma Salesforce. Lightning può anche connettersi alle altre applicazioni e dati. Lightning App Builder permette agli utenti aziendali di puntare e cliccare per creare app; Lightning Web Components aiuta gli sviluppatori a creare elementi riutilizzabili.
Fattori chiave per scegliere una piattaforma di sviluppo no-code o low-code
Ricordate la lunga lista di domande che vi siete posti sopra? Qui è dove devi consultare le tue risposte. Non c'è un sistema di sviluppo no-code o low-code uguale per tutti, anche se vi sentirete sotto pressione per standardizzare un sistema in tutta la vostra azienda. Potreste scoprire che dipartimenti diversi hanno bisogno di prodotti di sviluppo diversi, per scopi diversi.