A casa tua: microservizi e Agile al servizio di un progetto no profit

Mia-Platform Team 30 aprile 2020

In una fase delicata come quella che stiamo vivendo oggi, ciascuno di noi si è chiesto come poter dare il proprio contributo. Si sono così attivate tantissime persone e tantissime realtà, dando vita a idee innovative e geniali in qualsiasi ambito.

Anche in Mia-Platform è successo qualcosa: da un'iniziativa personale, quella di raccogliere e condividere una lista di negozi di quartiere che si sono attrezzati per fare consegna a domicilio, è nata un’iniziativa collettiva che ha coinvolto tante figure nell’azienda.

Obiettivo: creare uno strumento digitale, un sito e un’app, che permettesse alle persone di trovare i negozi e tutte le attività commerciali minori, che portassero la spesa a casa, evitando così le lunghe file ai supermercati e sostenendo i piccoli commercianti in difficoltà.

 

La storia

Domenica pomeriggio, siamo nelle prime settimane di lockdown e le notizie raccontano di file infinite ai supermercati e di piccoli commercianti in serie difficoltà economiche.

Chiara, del team comunicazione di Mia-Platform, propone a Federico e Giulio, CEO e CTO dell'azienda, di creare un file condiviso in azienda con suggerimenti sulle attività che fanno consegna a domicilio. “Va bene”, la risposta.

Ma si può fare meglio: con Federico (un altro!), storico sviluppatore dell’azienda, arriva l’idea: perché non torniamo alle nostre origini (Mia-Platform nasce con un progetto di casa editrice di app) e sviluppiamo un’app che possa aiutare tutti a trovare i negozi che fanno consegna a domicilio?

Il va bene si trasforma in “Vi supportiamo, sia come attività che economicamente”, e così insieme a Chiara e Federico piano piano si aggiungono Tommaso, Davide, Francesca, Simone, Giulia, Antonio, Federico e poi Sofia, Nicolò, Edoardo e molti altri che la sera (e la notte) mettono anima e corpo per sviluppare il progetto. In primis il management aziendale, che quella stessa domenica si entusiasma: è il CTO stesso a porre le basi del lavoro insieme a loro.

 

Il progetto

Nel giro di un week end viene rilasciata la prima versione del sito: una lista e una mappa che, rispetto alla geolocalizzazione, forniscono informazioni sui negozi che consegnano a domicilio. Non solo, anche un filtro per selezionare la tipologia di prodotto: frutta e verdura, carne, pesce, igiene e casalinghi, ecc.

In pochissimi giorni, grazie alla DevOps Console di Mia-Platform e ai componenti di runtime forniti dalla piattaforma per accelerare lo sviluppo di API e microservizi , è stato possibile lanciare un progetto al quale piano piano si sono aggiunte sempre più persone affinché fosse realmente collaborativo. Il lavoro di data entry e di ricerca di informazioni sulle attività commerciali è stato prezioso, fino a quando non è stato inserito il form per l’aggiunta dei negozi. Ora anche cittadini e negozianti possono aggiungere le attività e renderle subito visibili sulla piattaforma.

Alla pubblicazione del sito sono subito seguite le app iOS e Android.


A_casa_tua_App

 

La tecnologia

A casa tua è stato lanciato in pochissimi giorni grazie alla tecnologia di Mia-Platform, messa liberamente a disposizione dell’iniziativa.

Mia-Platform ha fornito strumenti rapidi e sicuri per lo sviluppo del progetto, dalla creazione degli ambienti al rilascio di microservizi e API. Il team di development e operations ha potuto lavorare in modalità “self-service” attraverso la DevOps Console di Mia-Platform, che ha facilitato la collaborazione e l’allineamento di tutti anche da remoto e reso molto semplici i rilasci continui, in ottica incrementale. Il modello dati CRUD alla base del progetto è stato configurato in pochi minuti, e da lì si è potuto procedere ad arricchire “A Casa Tua” di contenuti, grazie all’Headless CMS.

Il progetto ha in ogni caso posto numerose sfide tecniche da affrontare, sia in termini di design che di performance che di sviluppo di funzionalità. Questa è stata l’occasione per sperimentare alcuni nuovi pattern, soluzioni e tecnologie che eravamo curiosi di affrontare. 

 

A_casa_tua_web


L’approccio agile

Ciò che ha permesso di pubblicare il progetto in pochissimi giorni, e di affrontare le sfide che si sono poste mano a mano che il progetto andava ampliandosi, è stata una mentalità agile.

Il team si è chiesto, fin dal primo momento, quali fossero le funzionalità base indispensabili per uscire ed è stato quindi dato un ordine di priorità alle tante idee che stavano emergendo.

Una delle funzionalità che rappresenta meglio questo processo è quella dell’aggiunta dei negozi. In progetti come questo, offrire una buona base dati è fondamentale e perciò era importante dare a tutti la possibilità di aggiungere posti. L’opzione ideale era infatti quella di dare la possibilità all’utente di compilare direttamente una scheda.

Questo però avrebbe allungato di molto i tempi di pubblicazione perciò si è deciso di andare a step: 

  • nel primo rilascio è stato messo a disposizione un indirizzo e-mail ad hoc cui scrivere per richiedere di aggiungere un posto, che sarebbe stato inserito poi a mano da noi sul CMS; 
  • nel frattempo è stato elaborato un excel che potesse essere comodamente importato nel CMS, ed è stato fatto girare tra amici e parenti; 
  • in ultima fase è stato pubblicato un form, facilmente compilabile e che si aggiornasse automaticamente con le nuove tipologie di prodotti inseriti, grazie al quale oggi tutti possono aggiungere nuovi negozi.

Non è solo nell’aggiunta dei posti che l’approccio agile è stato determinante. Lo è stato anche per quanto riguarda il monitoring.

A casa tua restituisce una lista di negozi ordinata per distanza. Ci si è quindi chiesti da dove arrivassero maggiormente le richieste e quali fossero le zone per le quali gli utenti mostravano maggiore interesse nel vedere la lista di negozi. Questo perché, mano a mano che aumentava il numero di negozi, le performance di A casa tua hanno iniziato a risentirne ed era necessario studiare un migliore algoritmo di ordinamento.

Grazie alle dashboard Kibana è stato possibile monitorare il numero di richieste e utilizzare questo dato per implementare un’ottimizzazione che andasse incontro alla necessità di migliorare le performance. Era importante anche fare delle prove per vedere le reazioni dei vari utenti. Partendo da un'implementazione veloce, abbiamo capito quale fosse la key feature del prodotto e da li abbiamo stabilizzato l'implementazione confrontando diversi linguaggi:

  • Node JS è stato il linguaggio usato in principio. Nonostante non fosse il più performante, ha permesso di fare numerose prove velocemente perché più adatto a livello implementativo
  • Go è stato poi utilizzato per fare un confronto con altri linguaggi mano a mano che diventava sempre più chiaro che questa sarebbe stata la sfida stabile da affrontare
  • Rust è stato il linguaggio utilizzato per riscrivere il microservizio una volta fatto un confronto di performance e stabilita la modalità in cui l’utente vuole vedere il dato

 

Agilità e microservizi

Un approccio agile, unito all’utilizzo dei microservizi, ha realmente permesso di tarare il progetto sulle nuove esigenze, testarlo velocemente e migliorare i punti più difficili.

Se utilizzare microservizi e api, abbinati a un approccio a step incrementali, può dare la sensazione di impiegare più tempo inizialmente, ci ha permesso invece di gestire in breve tempo molte delle difficoltà sorte successivamente

Abbiamo potuto così riscrivere l’algoritmo di ordinamento senza andare a toccare nulla di ciò che era pubblico e funzionante, come il frontend, l’inserimento di un negozio, ecc., e di continuare a valutare miglioramenti e nuove funzionalità.



A casa tua oggi

A casa tua oggi conta quasi 2000 attività in tutta Italia, tantissimi negozi in fase di approvazione e una base utenti in continua espansione.

Il Comune di Milano ha inoltre segnalato l’iniziativa tra i servizi collaborativi e innovativi a disposizione di tutti i cittadini.

L’idea è che il progetto possa allargarsi a livello geografico: l’infrastruttura è già pronta per essere utilizzata anche all’estero.


Visita il Sito 

Scarica l'App per iOS 

Scarica l'App per  Android

Segui A casa tua su  Instagram

 

Mia Platform - White Paper - Tutto quello che devi sapere per orientarti nel mondo del DevOps

Post Correlati

Da monolite a microservizi: come far evolvere un’applicazione legacy

La trasformazione digitale ha introdotto innovazioni tecnologiche, software e applicative, che si sono dimostrate estremamente vantag...
Mia-Platform Team 13 marzo 2020

Cinque libri sulle architetture a microservizi che dovresti leggere

Negli ultimi dieci anni, i microservizi sono stati probabilmente l’argomento a fare più  tendenza e generare maggiore attenzione nel ...
Mia-Platform Team 27 marzo 2020

Come i Microservizi favoriscono il lavoro dei Feature Teams

In questo articolo andremo a esplorare cos’è un feature team e come i microservizi possano favorirne il lavoro. 
Mia-Platform Team 12 giugno 2020