All’inizio di Internet, non c’erano molte applicazioni Internet. Le applicazioni venivano infatti scritte quasi unicamente per i sistemi operativi Windows, Linux e Macintosh. La formula “software delivery” spesso significava copiare un file binario su un server o creare un programma di installazione di Windows e renderlo disponibile su un CD-ROM per la vendita nei negozi fisici.

Le varie release dei software venivano eseguite molto di rado, solo una volta all’anno o con tempistiche ancor più dilatate. I cicli di sviluppo erano misurati al massimo in settimane e il tempo tra la ricerca di un bug e la fornitura di una correzione era spesso misurato in mesi.  Una nuova versione doveva inoltre essere il più possibile perfetta, perché le opportunità di fornire correzioni di bug erano rare e difficili da gestire.

Oggi le cose si muovono un po’ più velocemente, grazie soprattutto alle applicazioni SaaS (software-as-a-service), che costituiscono una parte significativa dello sviluppo software odierno. Le applicazioni SaaS in genere hanno un’API back-end basata su JSON che comunica con un browser di qualche tipo. Potrebbero anche comunicare con applicazioni native su smartphone, ma il dispositivo su cui viene eseguita un’applicazione sta diventando sempre più irrilevante.

Qualunque sia il front-end, l’intero approccio è un cambiamento radicale rispetto all’applicazione Windows o Mac distribuita in modo classico anni e anni fa. Le applicazioni SaaS possono essere riparate, aggiornate e distribuite in pochi minuti anziché mesi ed ecco perché modello SaaS ha cambiato radicalmente il modo in cui il software viene sviluppato e distribuito.

Ma perché le applicazioni SaaS sono diventate così desiderabili e di successo?

Ci sono quattro ragioni principali:

  • I team di sviluppo controllano tutta l’esecuzione del codice.
  • Il codice viene eseguito in un ambiente rigorosamente definito e altamente controllato.
  • La consegna può essere immediata e frequente.
  • I team possono osservare come i loro clienti utilizzano il software.

Tutto il tuo codice appartiene a noi

Nel mondo client/server, gli sviluppatori compilavano il codice all’interno dell’azienda, ma poi rilasciavano quel codice sul mercato, dove veniva eseguito su chissà quali macchine, sistemi operativi e configurazioni. Certo, tutto funzionava su Windows e Mac, ma quelle macchine erano tutte diverse e gli sviluppatori avevano uno scarso controllo su come veniva eseguito il codice o su come era configurata l’applicazione. Se poi c’erano molte impostazioni dell’applicazione, gli utenti potevano configurare l’applicazione in modi che gli sviluppatori non avevano mai considerato o addirittura ritenuto possibile.

Con l’avvento del modello SaaS, il back-end di un’applicazione SaaS funziona totalmente sotto il controllo degli sviluppatori e negli ambienti che configurano, regolano e persino modificano secondo necessità. Anche il codice front-end risiede sui server degli sviluppatori e viene consegnato su richiesta ed eseguito in un numero limitato di browser web.

 

Un ambiente rigorosamente definito

Sì, ci sono molti browser, ma il loro numero è limitato e i browser sono per la maggior parte un ambiente noto e testabile. Le applicazioni SaaS incontrano solo un numero limitato di ambienti di esecuzione e ciò consente ai team di sviluppo di eseguire un lavoro di test più approfondito rispetto al modello di distribuzione classico.

Esistono ancora problemi con la varietà di smartphone Android disponibili, ma sempre di più gli sviluppatori forniscono le loro applicazioni in soluzioni basate su browser. E ora che Internet Explorer è finalmente uscito dai nostri radar, i browser rimanenti fanno un ottimo lavoro nell’implementazione degli standard che rendono più semplice lo sviluppo di applicazioni Web.

sviluppo software

Consegna immediata e frequente

Le applicazioni SaaS evitano poi di fornire ai clienti un bug sconosciuto senza alcun modo per risolverlo per settimane o mesi. I giorni per la consegna di una patch a un prodotto installato sono finiti (per fortuna) nel dimenticatoio. Invece, se un bug catastrofico si fa strada attraverso la pipeline di sviluppo e in produzione, lo si può riconoscere non appena colpisce e prendere le dovute misure prima che i vostri clienti se ne accorgano. Spesso è possibile correggere il bug e distribuire la correzione addirittura in pochi minuti anziché mesi.

E non parliamo solo di bug. Non dovete più tenere le nuove funzionalità della vostra applicazione come “inventario”, in attesa della prossima release principale. In passato, se si creava una nuova funzionalità nelle prime settimane dopo una versione principale di un software, quella funzionalità avrebbe dovuto attendere potenzialmente mesi prima di essere resa disponibile ai clienti. Ora, un’applicazione SaaS può fornire immediatamente una nuova funzionalità ai clienti ogni volta che il team dice che è pronta.

Totalmente osservabile

Poiché un’applicazione SasS viene eseguita in un insieme limitato di browser, è molto più facile osservare cosa sta succedendo all’interno dell’ambiente di esecuzione. Strumenti come Datadog e Dynatrace consentono di osservare e tenere traccia di tutto ciò che accade all’interno dell’applicazione. Il monitoraggio degli errori con strumenti come Rollbar può segnalare i problemi del cliente man mano che si verificano, riducendo drasticamente il tempo medio di intervento.

L’osservabilità diventa così, in effetti, una cosa in tempo reale piuttosto che qualcosa che accade indirettamente quando i clienti segnalano problemi. Le applicazioni sono in esecuzione su dispositivi connessi a Internet, siano essi un computer con un browser o un dispositivo mobile, e quindi possono facilmente segnalare problemi, come viene utilizzata l’applicazione e cosa sta facendo l’applicazione.

Conoscere il vostro cliente

Nel mondo client/server, le società di software tradizionali hanno faticato non poco nel sapere chi fossero i loro clienti, tanto meno cosa stessero facendo con il software e quanto spesso lo stessero utilizzando. Potevate letteralmente acquistare software, installarlo e usarlo senza che nessun altro sapesse che lo stavate facendo. Le applicazioni SaaS, invece, ci consentono di vedere praticamente tutto ciò che i nostri clienti stanno facendo con il software.

I loro dati sono archiviati sui nostri server e possiamo vedere cosa stanno facendo ora e la cronologia di ciò che hanno fatto in passato. Questo non è il Grande Fratello che guarda o una minaccia alla privacy dei clienti. Le applicazioni SaaS non hanno l’abitudine di archiviare informazioni di identificazione personale. Piuttosto, il monitoraggio del comportamento dei clienti consente alle aziende SaaS di collaborare più strettamente con i clienti e di lavorare per aiutarli a vedere il valore reale dei prodotti esaminando i loro modelli e dati di utilizzo.

Di conseguenza, è possibile aggregare l’attività dei clienti e concentrare lo sviluppo in aree che mostrano un utilizzo elevato. Possiamo vedere come i clienti utilizzano e non utilizzano il prodotto. Possiamo aiutarli a utilizzare meglio il prodotto. Possiamo indicare dove stanno utilizzando le best practice e dove non lo stanno facendo. Possiamo adattare i nostri sforzi ai clienti che hanno bisogno di aiuto e trascorrere il nostro tempo in modi più produttivi.

Sapere chi sono i vostri clienti e come stanno usando il vostro prodotto è un’informazione preziosa e le applicazioni SaaS ve lo consentono. Questo porta a risultati migliori per la vostra azienda e i vostri clienti. SaaS non è solo un modo migliore per fornire software, ma anche un modo per creare software che soddisfi meglio le esigenze dei vostri clienti.