Ciao mi chiamo Federico e mi occupo di sviluppo e progettazione di software da più di 8 anni. La mia esperienza mi ha portato a lavorare sia su progetti per piccole start up sia su progetti di grosse multinazionali e ho notato una cosa frequente: più grande è la realtà e più è difficile far comprendere la complessità del lavoro che vi stanno chiedendo.
Fortunatamente non è sempre così ma è invece quasi certo che il lavoro che dovete stimare oggi doveva essere consegnato per ieri, o l’altro ieri ancora. Quanti come me?
E a proposito della mia vita da sviluppatore di prodotti, oggi voglio raccontarvi un aneddoto: di quella volta che mostrando l’avanzamento lavori il cliente dopo 30 secondi aveva trovato un grossissimo problema.
Iniziamo la riunione come sempre con la demo, mostrando la parte web del backend, quella non visibile all’utente finale ma solamente all’amministratore del sistema. Ma ecco il problema: il colore di sfondo non era quello corretto!
Per comprendere che il problema era del tutto gestibile sono stati necessari circa 30 minuti, prima di poter riprendere con la demo. Oltre a essere un problema molto semplice da risolvere non era minimante così centrale rispetto agli argomenti da trattare in quella sede. Non scendo nei dettagli di quali fossero le richieste o lo scopo del progetto, vi basta sapere che era composto da un’applicazione mobile e una sua controparte di backend web/api da cui venivano impostati e recuperati i contenuti da mostrare nell’applicazione. I tempi, come spesso accade, erano stretti ma il cliente non sapeva ancora su che piattaforma avrebbe dovuto girare l’applicazione se iOS o Android: un’informazione che sarebbe stata centrale per farci sfruttare al massimo il poco tempo che avevamo a disposizione. Decidiamo così di utilizzare React Native. Siamo partiti sviluppando le grafiche base, consapevoli del fatto che quando ci fosse stata la decisione finale tra iOS o Android avremmo dovuto poi integrare alcuni moduli nativi custom per sfruttare alcune funzionalità native del device. Di pari passo abbiamo iniziato a sviluppare il backend in Python con Turbogears2 e integrandoci delle Dashboard in React per la visualizzazione di diverse statistiche/dati provenienti dai device in tempo reale.
Per la riuscita del progetto abbiamo dovuto sfruttare e integrare molto altro tra cui:
– MongoDB come storage
– Redis come cache
– WebSocket per le statistiche/comunicazione
– Docker per facilitarci in fase di sviluppo e rilascio
– Kubernetes per deployare l’applicativo
Però effettivamente il colore dello sfondo era un problema grosso.