Cloud

Lunedì nuvoloso I: myCloud Desktop agil sviluppato!

Il servizio di cloud storage myCloud è disponibile pubblicamente dall'inizio del 2016. Nello spirito di un prodotto minimo realizzabile, inizialmente ci siamo concentrati sulle foto e abbiamo offerto una buona esperienza al cliente per questa funzione.

Perché?

Grazie all'analisi delle esigenze dei clienti, abbiamo identificato subito la sincronizzazione dei file (myCloud Desktop) come una delle prossime importanti funzionalità di myCloud:

  • Tutti i file sono sempre aggiornati e disponibili su ogni computer e dispositivo mobile.
  • I file nuovi e modificati vengono caricati dal computer a myCloud.
  • Se un file presente su myCloud è più aggiornato di quello presente sul computer, verrà scaricato.
  • I file sono disponibili anche "offline" con sincronizzazione automatica quando si torna online.
  • Tutti i dati sono conservati in modo sicuro e a tempo indeterminato in Svizzera.

Cosa c'è di impegnativo?

Il compito di myCloud Desktop è quindi quello di mantenere aggiornati i file sui computer di tutti gli utenti e di eseguirne il backup su myCloud. Sembra semplice, ma purtroppo non lo è:

  • Se un computer è offline, le modifiche non possono essere sincronizzate e gli utenti lavorano su dati potenzialmente non aggiornati.
  • Se gli utenti modificano un file con Word, ad esempio, questo viene bloccato e non può essere aggiornato.
  • Il trasferimento di un file può durare diversi minuti, durante i quali lo stesso file può essere modificato nuovamente.
  • E molto altro ancora...

Come è stato sviluppato myCloud Desktop?

Nel 2016 abbiamo avuto l'idea che myCloud Desktop dovesse controllare a brevi intervalli se un file era stato creato o modificato sul computer o su myCloud. Le differenze tra i rispettivi stati venivano poi trasferite in modo che la versione più recente di ogni file fosse disponibile sia sul computer che su myCloud. Questo approccio si è rivelato troppo lento nei test pratici e ha compromesso gravemente l'esperienza dell'utente.

Sulla base di questa esperienza, due colleghi di Swisscom hanno lavorato duramente per sviluppare un prototipo completamente funzionale per myCloud Desktop in poche settimane. Il prototipo era basato sugli eventi, il che significa che ogni modifica sul computer dell'utente o sul suo account myCloud veniva sincronizzata immediatamente. Il prototipo ha quindi raggiunto subito un alto livello di velocità e promette un'ottima esperienza d'uso.

Ora avevamo due idee e soluzioni e dovevamo prendere una decisione:

  • La soluzione precedente era molto più matura e la consegna sarebbe stata meno rischiosa.
  • Il nuovo prototipo era veloce e prometteva molto, ma era ancora lontano dall'essere un prodotto finito.

Tuttavia, le condizioni quadro erano chiare: avevamo bisogno di myCloud desktop entro marzo 2017.

Abbiamo quindi deciso di organizzare una "corsa di cavalli" per far vincere la soluzione migliore!

Per i primi sprint abbiamo quindi definito delle tappe fondamentali che i rispettivi team dovevano raggiungere con il nuovo prototipo e con la soluzione precedente. Nel senso di "fail fast", una soluzione veniva esclusa se non veniva raggiunta.

Dopo il primo sprint, entrambe le soluzioni hanno raggiunto gli obiettivi prefissati. Tuttavia, l'alta qualità e la velocità di sviluppo del team di Swisscom sono state così convincenti che il nuovo prototipo è stato scelto come base per myCloud Desktop.

Il compito comune ha saldato il team e lo ha spronato a dare il massimo, in modo da rispettare le milestone da novembre 2016 a marzo 2017 e quindi il piano di rilascio di myCloud Desktop.

Come funziona myCloud desktop?

La scelta di Electron per l'applicazione e di Java per la logica si è dimostrata vincente, in quanto molte funzioni specifiche della piattaforma, come le icone di stato o l'aggiornamento automatico, possono essere implementate con poco sforzo.

Cosa abbiamo imparato?

  • Le esigenze degli utenti devono determinare la priorità delle funzionalità.
  • I metodi di sviluppo agile motivano il team, lo aiutano a concentrarsi sull'essenziale e a correggere rapidamente gli sviluppi indesiderati.
  • Gli sprint brevi di una settimana ci hanno permesso di apportare correzioni direzionali a breve termine nei primi mesi grazie al rapido feedback. La condivisione verticale e coerente delle storie degli utenti è stata un prerequisito importante per il successo degli sprint brevi.
  • Le retrospettive e il "fail fast" sono importanti. Se gli obiettivi non vengono raggiunti, è necessario prendere delle contromisure a breve termine.
  • Scrum ha dimostrato la sua validità nello sviluppo di funzionalità, mentre Kanban sembra più adatto alle operazioni e alla manutenzione.
  • L'uso coerente ma ponderato di componenti open source esistenti è stato per noi più efficiente rispetto allo sviluppo e alla manutenzione di questi componenti.
Abdurixit Abduxukur

Abdurixit Abduxukur

Cloud Solution Architect

Altri articoli getIT

Pronti per Swisscom

Trova il posto di lavoro o il percorso di carriera che fa per te. Dove dare il tuo contributo e crescere professionalmente.

Ciò che tu fai, è ciò che siamo.

Vai ai percorsi di carriera

Vai alle posizioni vacanti cibersicurezza