CodeJam: una Jam Session di Reactjs ed Elixir
Q&A con Gabriele Lana ed Emanuele DelBono
Aspettando CodeJam…
Abbiamo incontrato nel “backstage” (cioè, sul canale Slack dedicato ;-)) i docenti dell’edizione di CodeJam del prossimo ottobre e ci siamo fatti raccontare la storia di un workshop on the bleeding edge.
Genesi
CodeJam (by Avanscoperta) nasce nel 2014, in un formato workshop di 2 giornate con Sandro Paganotti, l’uomo del front-end, e Gabriele Lana, l’uomo del back-end.
Finalità del workshop: costruire un’applicazione web in due giorni,utilizzare tecnologie edge, provare nuovi tool, sperimentare linguaggi.
Un resoconto della seconda edizione del corso (dicembre 2014), l’ha scritto Luca Fabbri sul blog di Red Turtle.
Evoluzione
CodeJam torna anche quest’anno: stesso formato, nuove tecnologie, nuovi docenti, o quasi…
Al beck-end, signore e signori, abbiamo ancora… Gabriele Lana!
Insieme al lui sul palco a ottobre Emanuele DelBono, architetto e sviluppatore, eroe del Codice Plastico!
Obiettivo
Costruire un work-organizer/time-tracker che permette la pianificazione del lavoro in locale, il tracking dei risultati e la visualizzazione dello stato del team distribuito in tempo reale.
Lo stack tecnologico di questa nuova tappa di CodeJam: Reactjs sul frontend, Elixir sul backend.
Parola ai Software Craftsmen
Alessandra: Gabriele, qual era l’idea iniziale da cui è nato CodeJam workshop?
Gabriele Lana: Sono un appassionato della serie di screencast chiamata “Play by Play” (purtroppo ora non esiste più neanche il sito, oggi un degno sostituto è peertopeer.io), dove un intervistatore dava ad un noto programmatore un problema, quest’ultimo aveva un paio d’ore di tempo per risolverlo. La parte più bella era vedere come questo programmatore risolveva il problema: quali strumenti utilizzava; quali percorsi logici seguiva; quali domande faceva; quali test scriveva e in quale ordine; ecc… Tutte cose che difficilmente puoi apprezzare da un libro o da un contenuto statico. Volevo replicare un format simile, volevo creare un workshop dove far vedere davvero e dal vivo come lavorano dei professionisti.
Alessandra: E il nome CodeJam da dove viene? Perché questa scelta?
Gabriele Lana: Ho pensato che sarebbe stato più divertente farlo in coppia, farlo insieme a qualcuno che stimavo professionalmente ed umanamente, in questo modo avrei reso anche più realistico il workshop in quanto difficilmente ti trovi a sviluppare un progetto in solitaria e l’interazione con gli altri è una parte importante del lavoro. Ho coinvolto Sandro e poi ho pensato ad un nome evocativo e alla fine è saltato fuori CodeJam ovviamente ispirato alle jam session.
Alessandra: Gabriele, com’è cambiato il “web” negli ultimi due anni, cioè da quando abbiamo lanciato il primo CodeJam ad oggi?
Gabriele Lana: Purtroppo o per fortuna il nostro ambiente cambia a velocità sostenuta, anche e sopratutto per questo vale la pena di ripetere la CodeJam con regolarità. Oggi, se il tuo prodotto ottiene un po’ di traction, non è improbabile ritrovarsi con qualche milione di utenti in poco tempo. La sfida è quella di trovare uno stack tecnologico che ti consenta di prototipare velocemente e che non richieda una riscrittura totale quando chiamato a scalare ma che possa evolvere a seconda delle necessità.
Alessandra: Hai cominciato a programmare da bambino, erano gli anni ’80. Da allora di strada ne hai fatta tanta. Come vedi oggi il ruolo dello sviluppatore in Italia rispetto al ruolo che il software occupa nella vita quotidiana di ognuno?
Gabriele Lana: È inevitabile che il valore dei programmatori crescerà con il passare del tempo. Il software ricoprirà un ruolo sempre più centrale nella vita delle persone e di conseguenza chi produce software sarà sempre più valorizzato. Purtroppo in Italia siamo ancora un po’ lontani, nella maggior parte delle aziende i programmatori sono considerati poco più che impiegati e questo limita un po’ la crescita della nostra professione. Però l’evoluzione non può essere fermata e alcune aziende stanno iniziando a capirlo, la cosa più saggia che può fare oggi un programmatore è quella di investire in formazione in modo da essere pronto per l’imminente, sfidante e remunerativo futuro
Alessandra: Ciao Ema e benvenuto a bordo! :)
“Architetto e sviluppatore, per diletto sviluppa applicazioni web in C#, Ruby e Javascript”. Ci racconti le tappe principali del tuo innamoramento per lo sviluppo software?
Emanuele DelBono: Tutto cominciò al tempo degli home computer, ma per farla breve sono stato da sempre affascinato dalla programmazione e dal poter realizzare “cose” con il software. Ho avuto la fortuna di cominciare in un’azienda con un bel team che mi ha insegnato molto e da lì ho sempre cercato di studiare cose nuove,linguaggi, metodologie, strumenti, di non accontentarmi della prima soluzione ma di cercarne di migliori e soprattutto di frequentare attivamente le community unico vero “strumento” per continuare a crescere.
Alessandra: Cosa significa sviluppare un’applicazione web con un’architettura ad eventi e “CQRS oriented”?
Emanuele DelBono: Significa smettere di pensare in termini di CRUD operation su un database e iniziare a pensare alle operazioni che la nostra applicazione fa per il cliente. Non si “salva un record sul db” ma si “apre una pratica”, “si effettua un controllo di validità”. Insomma basta pensare alla persistenza che è un “di cui”.
Alessandra: Lo stack teconologico di CodeJam 2016 sarà basato suReactJs per il front-end ed Elixir per il back-end. Roba da hypster?
Vantaggi vs svantaggi: ci fate un riassunto?
Gabriele Lana: Il vantaggio è che un’evoluzione in quanto tale è un miglioramento rispetto al passato, lo svantaggio è che non tutto quello che è nuovo è necessariamente un’evoluzione, lo scopo della CodeJam è anche quello di fare da filtro. ;-)
Emanuele DelBono: I vantaggi sono il fatto di poter lavorare construmenti che arrivano dopo gli altri e risolvono i problemi che conosciamo in un modo innovativo e rivoluzionario. ReactJs ha un approccio funzionale alla UI che semplifica in modo disarmante la progettazione della User Interface. È un approccio nuovo, diverso.
Lo svantaggio è che si lavora con tecnologie nuove e quindi non del tutto stabili dove le best practice vanno trovate e gli strumenti al contorno non sono ancora completamente pronti.
Alessandra: Ragazzi, voi vi iscrivereste a questo corso? E se sì, perché?
Gabriele Lana: È un requisito di tutte le cose che faccio, non farei mai qualcosa alla quale io stesso non parteciperei. :-D
Parteciperei principalmente per poter attingere a tecniche e tecnologie da mettere nella mia cassetta degli attrezzi per diventare un professionista migliore.
Emanuele DelBono: Sicuramente sì. Perché avrei l’occasione diprovare con mano su un caso reale uno stack tecnologico nuovoche, se anche dovessi decidere di non utilizzare fin da subito, mi darà spunti per introdurre alcuni pattern e meccanismi nelle applicazioni che scrivo tutti i giorni. Insomma, sporcarsi le mani con cose diverse e nuove è sempre un arricchimento che porta valore anche al di fuori dello specifico contesto del corso.