DDD Europe 2016
Gli spunti portati a casa...
Si è da poco conclusa DDD Europe, la prima edizione della conferenza Europea di riferimento per il Domain Driven Design, un approccio allo sviluppo software particolarmente adatto a progetti complessi, e che devono durare nel tempo. Considerata la natura dei progetti su cui lavoriamo quotidianamente, non potevamo farci mancare quest’opportunità di approfondimento e confronto con i più illustri esperti al mondo nella materia.
La conferenza non poteva iniziare meglio: il keynote iniziale è stato tenuto da Eric Evans, autore del libro “Domain-Driven Design: Tackling Complexity in the Heart of Software” (anche chiamato “The Big Blue Book”), il testo di riferimento per la metodologia. Nel suo intervento ha spaziato fra i vari aspetti del DDD fornendo alcuni spunti interessanti. Uno di questi riguarda la definizione del modello: Eric afferma come esso non debba necessariamente essere realistico e allineato alla realtà; deve piuttosto risultare utile nel contesto in cui viene usato. Tendiamo a seguire e suggerire questo tipo di approccio; siamo stati lieti di trovare una conferma così illustre.
Nel talk successivo, “Arm yourself with Domain Driven Security. It’s time to slay some security trolls…”, gli speaker Dan Berg Johnsson e Daniel Deogun hanno fornito una panoramica di come la sicurezza di un progetto possa essere gestita in DDD. E’ stato per questo coniato il nuovo acronimo DDS: Domain Driven Security. E’ emerso un concetto interessante: applicare DDD correttamente consente già di gestire opportunamente le problematiche della sicurezza, senza di fatto pensarci esplicitamente. Un aspetto molto importante che rende così la sicurezza già intrinsecamente gestita in un progetto.
Il pomeriggio si è aperto con il talk “The precision blade” di Alberto Brandolini, unico italiano tra gli speakers, assieme a Carlo Pescio (che non abbiamo però avuto modo di ascoltare). Alberto ha presentato una retrospettiva sull’Event Storming, metodologia da lui inventata, e che consente di analizzare il dominio su cui si andrà a lavorare partendo dagli eventi di dominio e coinvolgendo in maniera costruttiva tutti gli attori coinvolti nello sviluppo: dagli sviluppatori agli esperti. E’ una metodologia visuale, che quindi consente di avere una panoramica d’insieme sugli eventi (e quindi sui processi) del dominio. L’analisi viene tipicamente condotta in progressione e regressione, in modo tale da minimizzare le possibilità che eventi di rilievo vengano omessi. L’approccio è senza dubbio interessante, sicuramente utile.
“Cognitive Cynefin: How Language and Bias Keep Us Complicated” di Liz Keogh ha chiuso la prima giornata, proponendo un’interessante riflessione sull’utilizzo del linguaggio e delle metafore e di come queste ci aiutino a muoverci con più facilità nell’analisi di domini complessi e complicati.
Il talk più tecnico a cui abbiamo avuto modo di partecipare è stato “Event sourcing and stream processing at scale” di Martin Kleppmann, che ha presentato un interessante parallelo tra l’event sourcing, metodologia molto diffusa in DDD, e lo stream processing utilizzato dalle più importanti compagnie web per processare l’ingente mole di dati che raccolgono. Lo speaker ha illustrato il funzionamento di Apache Kafka, uno strumento secondo noi molto promettente. Lo stiamo di fatto già utilizzando come server di messaggistica (pub/sub); interessante scoprire nuovi risvolti della sua versatilità, derivanti dalla capacità di gestire efficacemente stream di eventi.
La conferenza è stata chiusa da Greg Young, coniatore del termine CQRS, con il talk “A Decade of DDD, CQRS, Event Sourcing”, in cui ha ripercorso la storia dell’Event Sourcing e di CQRS, evidenziandone i pregi e i difetti, o meglio, gli aspetti delicati a cui fare attenzione per utilizzare questo approccio in maniera proficua.
Oltre che seguire i talk, durante le due giornate abbiamo anche avuto modo di partecipare alle sessioni denominate “Modelling with Strangers”. Si è strattato di momenti in cui è stato possibile condividere una situazione pratica sull’applicazione del DDD ad altri partecipanti o a esperti della metodologia. Si è trattato di momenti molto utili, che ci hanno consentito di confrontarci con altri professionisti di fama mondiale su problemi quotidiani e di ricavare spunti decisamente interessanti su come migliorare ulteriormente nell’applicazione della metodologia.