Asanka Abeysinghe
Recentemente, ho preso parte ad una riunione per una nuova piattaforma di integrazione low-code come servizio (iPaaS) per sviluppatori professionisti. Mentre lavoravo alla direzione della piattaforma, mi è venuto in mente che ci sono molte somiglianze tra l'industria del software e quella del cinema:
- Entrambe mirano a fornire esperienze eccellenti agli utenti finali.
- La creazione di un film è il risultato di un lavoro di squadra che porta un'idea in produzione e poi la rilascia come prodotto. Spesso è necessario ottenere un feedback, riprodurre il film ed estendere l'esperienza catturando un nuovo mercato. Il processo è simile nello sviluppo del software.
- In entrambi i settori, la creatività è un fattore chiave di differenziazione. Con il software, le organizzazioni si affidano alla creatività per offrire esperienze digitali uniche ai consumatori esterni e interni.
L'unità atomica del software è il codice, e deve essere creativo. Allo stesso tempo, gli sviluppatori sono di natura visiva. Per esempio, passano molto tempo davanti alle lavagne, disegnando sequenze, flussi di dati, diagrammi di flusso e diagrammi di classe. Si potrebbe dire che il loro metodo primario di comunicazione è attraverso i diagrammi.
Ma perché gli sviluppatori non creano codice usando strumenti low-code?
Le lacune nel prodotto-mercato delle piattaforme low-code esistenti è il problema principale per gli sviluppatori riluttanti ad usare strumenti visivi per la codifica. Ho inquadrato questo problema in uno dei miei precedenti articoli Optimizing Low-Code Tools For Enterprise Application Development. Qui ci sono i risultati chiave di quel post:
- Gli sviluppatori semi-tecnici o citizen developers sono i principali utenti della maggior parte delle piattaforme low-code.
- Le piattaforme low-code funzionano solo in un modo. Gli utenti possono modificare il diagramma o il codice ma non viceversa.
- Le piattaforme low-code mancano di supporto per il ciclo di vita dello sviluppo del software.
- Le piattaforme low-code hanno capacità di integrazione limitate.
- La mancanza di trasparenza crea il vendor lock-in.
Come risultato, i team che usano low-code e quelli che usano pro-code lavorano in silos; non c'è collaborazione. Questo è il modo in cui l'abisso low-code e pro-code si crea all'interno delle organizzazioni.
Alcuni potrebbero chiedersi perché dobbiamo attraversare questo abisso. Diamo un'occhiata a quello che sta succedendo nel settore. I vantaggi competitivi e i differenziatori vengono creati oggi fornendo migliori esperienze digitali a causa della domanda dei consumatori. Il software crea esperienze digitali, e ogni azienda, quindi, è diventata un'azienda di software indipendentemente dal dominio di business primario. Di conseguenza, ogni azienda richiede sviluppatori per pianificare, costruire, eseguire e gestire il software.
D'altra parte, c'è una carenza di sviluppatori di software, ed è difficile trovare le competenze necessarie per supportare le varie esigenze del dominio di business e la complessità della tecnologia di oggi, come l'ingegneria cloud-native, i microservizi, ecc. A causa di ciò, le organizzazioni devono aumentare la produttività e la collaborazione tra gli sviluppatori esistenti. L'abisso tra low-code e pro-code blocca questa mossa.
Una soluzione è quella di collegare i due silos di low-code e pro-code. Come si può fare? Una strada percorribile sta nel trovare soluzioni per ogni punto dolente negli attuali ambienti low-code.
- Democratizzazione dello sviluppo del software. Mentre le piattaforme low-code supportano i citizen e gli sviluppatori ad hoc, devono anche soddisfare i bisogni degli sviluppatori professionisti abbracciando lo sviluppo multi-esperienza. Di conseguenza, le tre diverse personas di sviluppatori possono contribuire allo sviluppo con un'elevata collaborazione.
- Parità grafica e testuale. Gli sviluppatori dovrebbero essere in grado di modificare il codice usando il low-code o un ambiente di sviluppo integrato (IDE). Una volta che modificano il diagramma, il codice deve cambiare. Quando il codice cambia, l'immagine deve essere automaticamente ridisegnata. In questo modo, citizen, sviluppatori ad-hoc e professionisti possono collaborare e lavorare nella stessa base di codice.
- Supportare l'intero ciclo di vita dello sviluppo del software. Agli sviluppatori piace passare attraverso il flusso di costruire, testare, eseguire e continuare a migliorare il codice. In questo processo, vorrebbero fare il debug del codice, controllare il controllo di versione, ecc.
- Supporto dell'ecosistema e punti di estensione. Affinché gli sviluppatori possano gestire requisiti di integrazione complessi, hanno bisogno del supporto di un ecosistema più ampio di sistemi cloud e non-cloud attraverso una ricca libreria di connettori e l'estensibilità per aggiungere nuovi connettori.
- Utilizzare standard aperti e generare codice pulito. Le piattaforme low-code che usano standard aperti e generano codice pulito permettono agli sviluppatori di controllare il codice e di modificarlo ed eseguirlo al di fuori della piattaforma low-code. Questo approccio crea molta trasparenza, dà agli sviluppatori il controllo sul loro codice e protegge dal vendor lock-in.
"Una piattaforma è una struttura di supporto che aumenta l'efficacia di una comunità".
Stiamo cercando di portare sempre più sviluppatori nello sviluppo del software e aumentare la collaborazione. Quindi, pur risolvendo i punti dolenti degli attuali strumenti low-code, dobbiamo adottare un approccio di piattaforma che supporti tutti i livelli di competenza. Allo stesso tempo, le organizzazioni si stanno dotando di piattaforme di innovazione digitale per accelerare i loro viaggi digitali. Incorporando queste caratteristiche nella stessa piattaforma digitale si evita il passaggio tra più strumenti e modelli di governance. Una tale piattaforma aumenta la collaborazione, la produttività e la riusabilità. Nel fare ciò, crea un ponte per attraversare l'abisso tra low-code e pro-code.