Sviluppo mobile e programmazione: i consigli dell'esperto

Sasa Sekulic / CTO & Cofounder di Develhope / Mobile expert

Quando si vuole intraprendere un nuovo lavoro, ascoltare i consigli da parte di chi già fa parte dell’ambito è molto utile. Proprio per questo motivo abbiamo chiesto a Sasa Sekulic, CTO & Cofounder nonchè mobile expert, di spiegarci tutti i segreti sullo sviluppo mobile e del lavoro dello sviluppatore. Se stai pensando di diventare un programmatore professionista, quindi, non puoi perderti questo articolo.

Sviluppo mobile, tutto quello che c’è da sapere

“Il lavoro dello sviluppatore non assomiglia affatto a quello che si vede nei film sugli hacker. Per lo sviluppatore di un’azienda, la skill più importate è quella della comunicazione: il lavoro si svolge quasi sempre in team, per questo comunicare bene con gli altri membri è cruciale. Tante aziende, infatti, adottano sempre di più il modello agile per lo sviluppo, tramite team composti da membri cross-functional, ovvero con sviluppatori web front-end, back-end e mobile. Non solo: all’interno delle squadre sono presenti anche product owner o product manager, designer alle volte anche tester (QA). Un lavoro efficace, quindi, è possibile grazie a un team in grado di comunicare tempestivamente gli imprevisti così come i progressi durante lo sviluppo. Solo in quel modo si riesce ad adeguare e a offrire suggerimenti e supporto alla risoluzione dei problemi che possono presentarsi”, ci ha raccontato.

Entrando un po’ più nel tecnico, Sasa ci ha spiegato che “lo sviluppo di solito si organizza negli sprint, ovvero unità di tempo (da 2 a 4 settimane circa) che si utilizzano per organizzare il lavoro. Prima di incominciare lo sprint, è necessario analizzare le feature che si vogliono sviluppare, fare le stime di complessità e di durata di lavoro, organizzare gli sprint successivi. Dopodiché, durante lo sprint, si incominciano i daily standup, cioè brevi incontri giornalieri nei quali ognuno comunica quanto prodotto e gli obiettivi della giornata, e se ci sono dei problemi bloccanti che non riescono a risolvere individualmente. Alla fine di ogni sprint, poi, è prevista una demo per mostrare a tutti (dai dipendenti dell’azienda ai clienti) cosa è stato prodotto. Inoltre, si fa una retrospettiva dello sprint per individuare tutto ciò che è andato bene e cosa, invece, è migliorabile, scegliendo possibilmente due o tre punti su cui lavorare per ottenere risultati migliori.

Col tempo, però, può anche cambiare il focus di sviluppo di un team. Per i progetti nuovi, si cerca di capire cosa può interessare gli utenti e si sviluppano le funzionalità nuove. Una volta che un progetto è consegnato al cliente, o dopo essere stato pubblicato sul mercato, si passa in modalità di manutenzione e supporto. A quel punto, oltre a sviluppare le funzionalità nuove, si controlla anche lo stato dell'app e l'esistenza di eventuali problemi di performance. Ogni tanto, infatti, capita ci siano dei bachi bloccanti che si devono risolvere subito. In ogni caso, comunque, il monitoraggio di andamento del progetto è un dovere continuo. Può inoltre succedere che le cose che funzionavano bene in isolazione, una volta messe dentro l'app non funziona allo stesso modo, oppure che siano troppo lente per essere utilizzabili nel modo giusto dagli utenti. Per quanto riguarda le app mobile, infine, è importante controllare sempre i commenti sugli store per vedere se ci sono degli utenti scontenti”.

Le mansioni di uno sviluppatore junior nello sviluppo mobile, e non solo

Quali sono, però, i compiti più specifici di uno sviluppatore junior?

“Il lavoro di uno sviluppatore junior in team è abbastanza variegato, e dipende dal progetto e dal team stesso. Di solito, all’interno di ogni squadra di lavoro sono presenti sviluppatori di seniority differenti, in grado di aiutare anche i junior o i mid level a crescere. In questo modo, un junior può iniziare a lavorare sulla parte UI per sviluppatori front-end e mobile, oppure sulla comunicazione di rete di base per sviluppatori back-end. Dopo aver lavorato per un po’ sull’interfaccia utente, e dopo aver imparato le diverse parti delle app, si incomincia a lavorare sulle altre parti quali la comunicazione di rete e le operazioni con le basi dati. Infine, si arriva alla logica dell’app e della sua architettura, quindi dell’organizzazione delle parti strutturali. Questo è un passaggio che richiede buona conoscenza non solo della piattaforma, ma anche del dominio (inteso come problema che si va a risolvere, per esempio pagamenti oppure gestionali di certo tipo). Grazie a un percorso di questo tipo, uno sviluppatore junior dopo 2/3 anni è in grado di salire di livello e diventare un mid-level, il quale a sua volta dopo circa 5/6 anni diventa uno sviluppatore senior”.

Quali sono le mansioni di uno sviluppatore in una startup?

All’interno di una startup gli sviluppatori hanno diversi compiti, diversi da quelli richiesti all’interno di un’azienda alla quale serve un prodotto stabile. In una startup, infatti, è probabile che uno sviluppatore debba anche importare ambienti di sviluppo e lavoro (devops), o aiutare gli sviluppatori delle piattaforme. Ancora gli si può chiedere di aiutare nella pianificazione delle funzionalità di prodotto, nel marketing. In un’azienda più stabile, invece, queste mansioni sono ben definite, e ci sono solitamente delle persone indicate al loro svolgimento. Inoltre, è possibile che si siano dei progetti in fase di sola manutenzione, ai quali si offre esclusivamente supporto agli utenti e si fa debugging, ma non si aggiungono nuove funzionalità. In un’agenzia di sviluppo, poi, succede spesso che gli sviluppatori non si dedichino a lungo a un progetto particolare, per questo non si arriva mai alla fase di supporto e di manutenzione.

Al contrario, si cambiano i progetti anche più volte l’anno, il che può essere molto interessante per i programmatori che vogliono ampliare le loro conoscenze. Dall’altra parte, però, non offre molte opportunità si sperimentare sullo stesso prodotto o di analizzare i dati e apportare dei perfezionamenti in grado di migliorare l’esperienza degli utenti”.

Infine, un consiglio per tutti i giovani programmatori che vogliono lanciarsi nello sviluppo mobile: “Bisogna sempre essere ponti a imparare cose nuove e approfondire le conoscenze già acquisite, come ad aumentare la qualità dei propri codici. In linea generale, se un programmatore guarda un codice scritto in passato, dovrebbe essere sempre in grado di trovare qualcosa da migliorare. Se così non dovesse essere, significa che nel tempo non è riuscito a imparare niente di nuovo. In più, bisogna sempre allenare le capacità comunicative, e non sottovalutare la conoscenza della lingua inglese che sta diventando di giorno in giorno più importante in questo ambito.”

Saveria

Saveria