18 Ago 2016
Local flavour

Tecnologia: come vengono sviluppate le nuove caratteristiche dell’app car2go

Il sogno di ogni team è quello di fornire un valore aggiunto ai propri clienti in modo  semplice e affidabile. Reagire prontamente ai cambiamenti, controllarli e adattarsi agli stessi è un aspetto fondamentale per essere apprezzati dagli utenti quando si crea qualcosa di nuovo.  Anche perché spesso non si tratta un compito facile.  La nostra filosofia? Migliorare il prodotto giorno per giorno e alla fine, cliccare su un tasto e bere un caffè mentre vediamo compiersi la magia.

 

Ma come avviene la magia e, in particolare, come possiamo automatizzare la release di un’applicazione mobile ogni due settimane e avere ancora il 99,9% di utilizzi senza arresti improvvisi? In poche parole, gli sviluppi di un prodotto nascono integrando continuamente nuove funzionalità, implementando test automatizzati e assicurandosi che ogni  nuova versione possa essere realizzata attraverso un processo di integrazione continua (CI) .

Vediamo ora nel dettaglio il percorso di vita di una funzionalità, dalla progettazione allo sviluppo fino all’utilizzo da parte dei nostri utenti.

 

process

 

Fase di pianificazione

All’inizio c’è ovviamente una fase di brainstorming in cui confluiscono molteplici idee. Le idee provengono dai “car2go lover” attraverso vari canali, partner commerciali, clienti, il team, ecc… Ai vari concetti va dato poi un ordine di priorità e vengono aggiunti al backlog (parleremo di più di questo processo in futuro).

 

Dato che le idee provengono da racconti degli utenti, il nostro team di progettazione ha bisogno innanzitutto di capire il problema e fare una bozza della possibile nuova caratteristica. Dopo un paio di esperimenti viene messo in piedi un primo prototipo che viene testato da utenti reali che ci confermano se stiamoprocedendo nella direzione giusta.

 

Dopodiché il nuovo concept viene analizzato da un punto di vista tecnico. Il Product Owner, insieme al team di sviluppo, affina il processo e esamina la complessità del caso. Per il tracking e il monitoraggio dei progetti usiamo Atlassian Jira.

 

A questo punto, in base alle priorità, entriamo nella fase più concreta, stabilendo i dettagli di implementazione e dividendo i compiti all’interno della piattaforma.

 

Fase di sviluppo

Qui è il momento di implementare e testare l’idea. A tal fine usiamo Gitflow. Una volta completata questa fase, arriva il momento di eseguire un controllo minuzioso della progettazione e verificare se vengono soddisfatti tutti i parametri. Quindi facciamo una richiesta di pull, assicurandoci che i test di integrazione siano ok e solo a seguito dell’approvazione degli altri sviluppatori, integriamo la nuova storia nel nostro branch CI.

 

Fase di distribuzione

Terminata la fase di sviluppo ha inizio la fase test: il team si riunisce in un meeting durante il quale ogni partecipante può provare le nuovi funzioni e scoprire eventuali problemi. Giunto il momento di lanciare la nuova versione, uno degli sviluppatori attiva un Jenkins job, un software molto utilizzato nei processi di CI, che esegue test automatizzati, crea, firma e carica i binari in un app store.

 

Concluso il meeting, la fase di test si allarga coinvolgendo un numero maggiore di utenti (alpha test): i pacchetti binari vengono caricati sugli app store e tutti gli utenti selezionati come tester ricevono l’aggiornamento dell’app. Se gli sviluppatori non ricevono feedback negativi e tutto funziona come previsto si passa alla seconda fase di test (beta test), in cui il numero di utenti aumenta sensibilmente. Dopo ulteriori analisi e dopo l’approvazione del Product Owner e degli stakeholder, la modifica dell’applicazione viene promossa a release ufficiale e tutti gli utenti ricevono l’aggiornamento.

 

Di seguito sono riportati alcuni dati che mostrano come il nostro processo si è evoluto nel corso del tempo. L’app car2go è stata aggiornata dal 2012 fino ad oggi con questi ritmi: 5 volte nel 2012, 6 volte nel 2013, 10 volte nel 2014, 18 volte nel 2015 e 8 volte quest’anno (questi dati statistici non includono le versioni hotfix). Provate la nostra ultima versione di Android, iOS, BlackBerry e Windows Phone e ricordatevi di eseguire sempre l’aggiornamento e stare al passo con le ultime funzionalità.

 

Per concludere, queste sono solo delle generiche linee guida che il nostro team ha disegnato nel corso del tempo. Ma ancora più importante per noi è sapere che non esiste una ricetta universale e che questo è un processo in continuo sviluppo e miglioramento. Per eventuali suggerimenti o domande, scriveteci qui i vostri commenti.