La progettazione di moderne applicazioni web tramite processi agili come il Design Thinking richiede un’architettura pensata per essere flessibile, scalabile e facilmente manutenibile.
Come farlo?
Lo abbiamo spiegato nel precedente articolo “API Management: l’innovazione passa dalle User Experience API” in cui evidenziamo come l’approccio più efficace consista nel separare le funzionalità di interfaccia dalla business logic (le funzioni di base specifiche di ogni software), realizzando web application completamente autonome che dialogano con i servizi di backend tramite API.
In passato, abbiamo già descritto le caratteristiche e i vantaggi di realizzare Single Page Application con Jhipster, soluzione tecnologica che, grazie alla recente inclusione di React, garantisce lo sviluppo di Single Page Application (SPA) interattive, sicure e performanti.
Le SPA sono la soluzione più semplice ed efficace per sfruttare al massimo i benefici apportati dall’adozione di un sistema di API management. Sfruttando lo stesso set di API su cui si basano le app mobile o desktop, esse risultano:
- veloci da realizzare,
- facili da mantenere, monitorare e distribuire,
- compatibili,
- scalabili.
In questo articolo ci concentreremo su un aspetto tecnologico che a mio avviso evidenzia la bontà del tandem React e Sviluppo Agile: Thinking in React.
Quando la tecnologia incontra la metodologia (agile)
La metodologia agile nasce negli anni ’90 come conseguenza dell’adattamento dei modelli di gestione aziendale alle sempre più turbolente condizioni di mercato.
I benefici che apporta sono diversi:
- monitoraggio continuativo dello stato di avanzamento di un progetto,
- test in anticipo per individuare velocemente gli errori , sia tecnici (bug) e progettuali (UX), sia di comunicazione tra cliente e team,
- realizzazione di prodotti più conformi alle esigenze dei clienti,
- realizzazione di prodotti modulari, manutenibili e scalabili.
In Intesys, il processo di sviluppo delle SPA prevede l’utilizzo di React: un framework rivoluzionario e molto flessibile, che incoraggia un approccio basato su componenti funzionali, facili da spostare, modificare e riutilizzare, in linea con i principi della metodologia agile.
Una preziosa pagina della documentazione di React, intitolata “Thinking in React”, descrive passo dopo passo il metodo di realizzazione di un’applicazione React.
Partendo da un prototipo “visuale”, si aggiungono gradualmente funzionalità, approfittando di ogni ciclo per consolidare quello che si è testato nel ciclo precedente.
Tutto questo coerentemente con quanto prescrivono tutti i metodi agili (plan, do, check, act), nonché la ricetta più performante attualmente conosciuta per raggiungere risultati di qualità limitando gli sprechi.
Semplificare i processi con metodologie agili e scalabili
Ricorrere ad un metodo di sviluppo agile implica automaticamente l’adozione di un approccio orientato alla scalabilità.
Agile = scalabile dalla nascita, per definizione
L’approccio agile, infatti, consente di realizzare un prodotto funzionante secondo la strategia Minimum Viable Product.
Essa punta a costruire prodotti che i clienti vogliono in tempi rapidi, secondo un’evoluzione continua che prevede incrementi costanti in termini di funzionalità, User Experience, performance e, in generale, di qualità.
Parallelamente, nell’ambito della realizzazione di una Single Page Application scalabilità significa:
- estendere le funzionalità dell’applicazione senza modificarne la sua architettura,
- scalare i servizi di backend senza modificare la SPA o con adeguamenti minimi,
- estendere il supporto a nuovi device,
- migliorare le performance.
L’approccio che sposa la tecnologia React favorisce lo sviluppo di componenti disaccoppiati, riutilizzabili e intercambiabili, che rappresenta il modo più efficace per ottenere applicazioni altamente scalabili in grado di semplificare i processi aziendali e l’interfaccia con gli utenti.
Inoltre, se nel processo di realizzazione si include l’adozione dell’Atomic Design, il vantaggio di scalabilità di una SPA in React garantisce anche elevata coerenza in termini di User Experience e di Visual Design.