Nicola, ci racconti la tua storia in Synesthesia?

“La mia storia professionale comincia prima che Synesthesia nascesse. Ho iniziato a collaborare con Francesco (CEO di Synesthesia) nel 2010 su alcuni progetti di sviluppo Android. Per circa due anni ho lavorato con lui che all’epoca era un freelance e siamo rimasti costantemente in contatto. Dopo la nascita di Synesthesia ho seguito con interesse la sua crescita fino al 2012, quando la mia voglia di cambiare si è incrociata con la necessità di avere il primo project manager dedicato in Syn e nell’ottobre 2012 sono salito a bordo.  Synesthesia era piccola, contava meno di 10 persone, quasi tutti sviluppatori mobile”.

In che cosa consiste il ruolo che svolgi? Di cosa ti occupi esattamente?

“Nell’arco di questi 8 anni, Synesthesia è cresciuta in modo vertiginoso. I ruoli si sono arricchiti e strutturati. Per parlare del lavoro che svolgo io partirei un po’ dalla sua evoluzione: a partire dall’essere un project manager fino ad aver responsabilità su altre aree con team di 60-70 persone. Ciò che faccio è coordinare tutta l’area produttiva della Factory, capisco quali sono le sue necessità e mando avanti il flusso. Mi occupo della fase di pre-sales, quindi delle stime economiche dei progetti, di effort e durata (cioè quanto ci vuole per produrre quel determinato pezzo di software) Mi occupo delle trattative, partecipo alle gare, curo la parte di delivery e operations, quindi coordino il gruppo di PM sui vari progetti, verifico il budget e l’allocazione delle persone”.

Qual è l’approccio che il tuo team ha nella fase di sviluppo dei progetti?

“Siamo versatili e ci adattiamo alle esigenze e alla struttura del cliente. Ci sono progetti che partono con una fase di analisi e design, altri che partono direttamente nella fase di sviluppo. In generale prediligiamo l’approccio AGILE, in particolare SCRUM. Questo, però, chiaramente non è sempre possibile perché dipende dal progetto e dal tipo di budget che il cliente ha a disposizione. Passiamo da progetti che sono waterfall fino ad arrivare a progetti più complessi e strutturati, quelli richiesti dai clienti più grandi che hanno la forza di poterli portare avanti e mantenerli. In questo caso, si tratta di progetti che sono puramente AGILE. Team autogestiti partecipano attivamente alla riuscita di queste commesse condividendo con gli altri le migliori soluzioni. Questa è una delle caratteristiche dell’approccio AGILE, cioè il fatto di essere maggiormente interattivo e migliorativo. Così facendo, ogni progetto, ogni sprint di progetto ci viene un po’ meglio di quello precedente”. 

Le nuove applicazioni utilizzano tecnologie sempre più innovative e di frontiera, basate su importanti scoperte scientifiche e sul significativo impiego dell’intelligenza artificiale. Fino a dove queste tecnologie potranno spingersi?

“Sicuramente ben oltre quello che noi immaginiamo in questo momento. Grazie alla tecnologia a disposizione: possiamo continuare a vivere le nostre vite, ordinare il cibo a casa, vedere film senza andare al cinema per proteggerci dal contagio del coronavirus. Oggi ci sono tecnologie che sono talmente avanti da sembrare quasi magiche, come la traduzione del linguaggio in tempo reale in un’altra lingua; l’identificazione dei pattern nelle foto o nei video; i Sentiment analysis, che consentono di capire il mood di una frase. C’è poi un’altra interessante evoluzione che tende a “portare fuori” la tecnologia dai classici dispositivi (pc, telefoni, televisori) per trasferirli in oggetti che fino a qualche tempo fa erano considerati “non intelligenti”, come per esempio gli orologi o i sensori di vario genere, ora in grado di adattarsi in base all’ambiente”. 

Oggi Google Home e Alexa hanno ormai portato il sistema di riconoscimento vocale nelle case di tutti, un po’ come avvenne tempo fa con le televisioni. Come te le immagini le applicazioni del futuro?

“Le applicazioni del futuro probabilmente non saranno applicazioni. Se portiamo questo paradigma all’estremo non avremo più applicazioni come le intendiamo oggi. Forse non avremo più bisogno di avere un’interfaccia, ci basterà parlare o fare dei gesti. Per esempio, il frigo potrà ordinare dei prodotti non perché l’intelligenza artificiale gli avrà fatto capire che lo yogurt è finito, ma avrà capito che io ne voglio comprare ancora semplicemente perché lo desidero e perché ho un determinato budget da spendere. Molti sistemi simili a quelli che ho descritto esistono già, ma si tratta di sistemi che ignorano alcuni fattori, come per esempio quello del prezzo. Siamo solamente agli inizi di tutto questo. Le applicazioni del futuro saranno certamente molto più integrate con tutto quello che ci circonda. Stiamo andando incontro a una sempre più estesa “virtualizzazione dei processi umani”, che ci permette di compiere qualunque azione attraverso un’applicazione, tramite un servizio, senza dover andare fisicamente in un luogo. Questo rappresenta un vantaggio indiscutibile ”.

Lavorare per Synesthesia significa? 

“Crescere. Crescere con delle persone a cui voglio bene. Significa fare un lavoro che amo profondamente. Lo amo perché lo faccio con le persone giuste che mi danno la fiducia di farlo. É un’avventura incredibile. Quando ho iniziato a lavorare ricordavo a me stesso che ogni due anni volevo cambiare azienda. Per i primi anni è stato così, fino a quando ho iniziato a lavorare qui. Mi auguro di continuare così”.


Se hai domande o feedback, scrivici. Saremo contenti di leggere le tue richieste o le tue opinioni.

  1. Serve un Mac – Per sviluppare un’app per iOS, serve necessariamente una macchina in grado di supportare macOS e Xcode (l’ambiente di sviluppo nativo per tutte le app Apple). Se non si hanno esigenze particolari, il MacMini (nella sua nuovissima edizione 2020) è il dispositivo con il miglior rapporto qualità/prezzo, perfetto per iniziare.
  2. Swift – Il linguaggio di programmazione da utilizzare per le app iOS è Swift, sviluppato da Apple a partire dal 2016 e in seguito reso open-source anche per piattaforma Linux (su cui si può usare per applicativi server-side, software in console e simili, ma non per app native). In alternativa a Swift, iOS continua a garantire il supporto a Objective-C, il linguaggio di programmazione “storico” usato da Apple per i propri framework di sistema e da tutti gli sviluppatori prima del 2016.
  3. Apple developer program – Per pubblicare le proprie app sull’App Store, è necessario registrarsi sul portale degli sviluppatori Apple tramite una sottoscrizione annuale di 99$. Se si intende distribuire applicazioni aziendali a stretto uso interno senza renderle pubbliche sull’app store, è possibile registrare un profilo enterprise al costo di 299$/anno, previa approvazione da parte di Apple tramite un questionario.
  4. Sign in with Apple – Da Aprile 2020, tutte le applicazioni dotate di un “social login” (autenticazione dell’utente tramite un social network come Facebook) dovranno obbligatoriamente supportare Apple Sign In, il sistema di autenticazione nativo integrato negli iPhone che garantisce maggiore privacy ai propri utenti. Le app dotate di solo accesso tramite email e password sono invece esenti da questo obbligo.
  5. App review – Prima di approdare sull’App Store, ogni applicazione deve superare la “review” da parte del team di Apple. Durante questa fase, viene controllato che il software rispetti i termini di utilizzo tramite test automatici e prove fisiche dell’app da parti di addetti al controllo qualità. In caso di problemi, il team di validazione comunica l’anomalia riscontrata e lo sviluppatore deve ri-sottomettere una nuova versione dell’app fino all’approvazione finale.
  6. Videogame e Arcade – Per sviluppare un videogioco, è possibile utilizzare i framework nativi SpriteKit e SceneKit (rispettivamente per 2D e 3D) o affidarsi a soluzioni cross-platform come Unity e Unreal Engine, perfettamente compatibili con iPhone, iPad, AppleTV e Mac. Apple, inoltre, seleziona e finanzia sviluppatori indipendenti e aziende che siano in grado di sviluppare videogiochi per la piattaforma Apple Arcade (con priorità a chi accetti di sviluppare in esclusiva per la piattaforma stessa).
  7. SwiftUI – Dal 2019 in avanti, è disponibile SwiftUI, un framework per realizzare interfacce grafiche native. SwiftUI permette l’anteprima in tempo reale dell’interfaccia in via di sviluppo (senza necessità di compilare e avviare l’app, risparmiando tempo) e permette di scrivere codice per componenti grafici indipendente dalla piattaforma finale: in altre parole, lo stesso blocco di codice, senza modifiche, può essere utilizzato dalle 4 piattaforme principali di Apple (iOS, watchOS, macOS e tvOS). Sarà il sistema operativo, una volta avviata l’app, a scegliere il componente di visualizzazione opportuno.
  8. Gestione display – La gestione della risoluzione video dell’app è completamente automatica e non deve essere tenuta in considerazione durante lo sviluppo. Apple ci ha abituati ai vari display Retina, Liquid Retina e Super Retina, ognuno abbinato a varie risoluzioni dello schermo tra i vari iPhone e iPad di varie dimensioni. Grazie al sistema di Autolayout per la creazione delle interfacce grafiche e la gestione multi-densità degli asset grafici (le immagini che si incorporano nelle app), lo sviluppatore non deve preoccuparsi delle varie differenze di schermo: ci pensa il sistema operativo.
  9. Playgrounds – Per iniziare a programmare con Swift, Xcode mette a disposizione i Playground, semplici “contenitori” costituiti da singolo file dove testare brevi istruzioni di codice visualizzandone il risultato in tempo reale. É anche possibile utilizzare l’app Swift Playgrounds direttamente su iPad per iniziare a prendere dimestichezza con Swift anche senza l’uso di un Mac.
  10. App webview-only – Le webview consistono in componenti nativi in grado di visualizzare al loro interno dei contenuti web (in HTML). Sebbene la tentazione di raggiungere l’AppStore (e relativi benefici in termini di visibilità sui motori di ricerca) sia condivisibile, è utile sapere che non è possibile pubblicare sullo store app che comprendano soltanto webview e contenuti già fruibili via browser senza evidenti distinzioni: il team di review ha precise istruzioni per rifiutarle tutte. Come regola generale, l’app deve aggiungere valore all’esperienza utente già presente online, utilizzando funzionalità del device che non sono disponibili su browser (bluetooth, localizzazione, notifiche push, ecc.) o comunque presentando un’interfaccia grafica nativa e fluida.

Synesthesia, grazie al lavoro di team esperti sviluppa applicazioni all’avanguardia per i propri clienti e per i propri partner. Scopri le nostre Creazioni digitali all’interno di questa pagina dedicata. Continuate a seguirci per essere aggiornati costantemente sulle novità della nostra factory.