Thomas PIERRAIN (aka use case driven on twitter)
VP of Engineering in a booming European scale-up (Agicap), Thomas is a former entrepreneur, consultant, architect and eXtreme Programmer obsessed with use cases (as opposed to the solution-oriented approach that we tend to choose in our job a little too much) during more than 25 years. Also co-organizer of the DDD France (and former BDD Paris) meetups, Thomas likes to use autonomy, DDD and TDD to boost his efficiency and that of others at work.
Long-time promoter of hexagonal architecture (through articles, talks, trainings or live coding sessions - including one with Alistair Cockburn) Thomas is now advocating for a specific style of TDD called Outside-in Diamond 🔷 TDD . This fits perfectly with Alistair's pattern, and also allows for more secure, antifragile, and Domain-Driven tests to be written.
More than 67 talks made worldwide since 2014 (lots of live-coding sessions, talks, keynotes, etc)
Most well-known conferences I've made as speaker: DDD Europe (Amsterdam), µCon (London), Cukenfest (London), DDD eXchange (London), XP conf (Porto), Explore DDD (Denver), KanDDDinsky (Berlin), Devoxx (Paris), NewCrafts (Paris), FlowCon (France), Lean Kanban France (Paris), SoftShake (Geneva), MS Experiences '16 (Paris), MixIT! (Lyon), BDX.io (Bordeaux), Sunny Tech (Montpellier), Agile Tour (Lille, Bordeaux), Alpes Craft (Grenoble)...
(version Française)
VP of Engineering dans une scale-up Européenne en plein essor (Agicap), Thomas est un ancien entrepreneur, consultant, architecte et eXtreme Programmer obsédé par les usages (par opposition à l'approche orientée solution qu'on a un peu trop tendance à choisir dans notre métier). Également co-organisateur des meetups DDD FR et anciennement BDD Paris, Thomas aime utiliser le DDD et le TDD pour booster son efficacité et celle des autres au travail.
Promoteur de longue date du TDD et de l’Architecture Hexagonale (qu’il a même eu l’occasion de live-coder une fois aux côté d’Alistair Cockburn), Lors de ces 15 dernières années, Thomas a développé un style un peu particulier de TDD nommé : Outside-In Diamond 🔷 TDD. Celui-ci permet d’écrire des tests encore plus fiables, antifragiles, mais surtout orientés métier.
Un peu plus de 67 talks réalisés depuis 2014 à travers le monde (pleins de sessions de live-coding, quelques keynotes et beaucoup de talks)
Les conférences les plus connues auxquelles j'ai pu intervenir en tant que speaker: DDD Europe (Amsterdam), µCon (London), Cukenfest (London), DDD eXchange (London), XP conf (Porto), Explore DDD (Denver), KanDDDinsky (Berlin), Devoxx (Paris), NewCrafts (Paris), FlowCon (France), Lean Kanban France (Paris), SoftShake (Geneva), MS Experiences '16 (Paris), MixIT! (Lyon), BDX.io (Bordeaux), Sunny Tech (Montpellier), Agile Tour (Lille, Bordeaux), Alpes Craft (Grenoble)...
- My articles on Medium (+32)
- My former blog: http://tpierrain.blogspot.com/
Loving to speak with others and to live-code on stage, I'm a big fan of Nancy Duarte's Resonate. As a speaker, I try to mainstream things I do at work (DDD, Software Craftsmanship practices, Reactive Programming and low latency stuffs, Architecture, etc.).
This is a sum-up of all my public intervention & covered topics over the last years:
- 2024 - The Hive (modular monotlith strategy), Process Comm, and High-speed DDD (revisited)
- 2023 - Process Comm, Autonomy and High-speed DDD
- 2022 - Hypergrowth, Scale-up, Autonomy & (outside-in diamond) TDD
- 2021 - Product management, Beyond Hexagonal Architecture (Functional Core) & Outside-in Diamond TDD
- 2020 - COVID-19 year. Nonetheless, I've made some stuffs about Hexagonal Architecture, DDD & a keynote about eXtreme Programming (eXtreme)
- 2019 - (Theater play about) strategic DDD, Process Comm, Event Storming & Example Mapping, CQRS/ES
- 2018 - Another keynote, Event Sourcing, Example mapping, Pair programming and...
- 2017 - Keynote & live coding sessions related to DDD, Legacy, Hexagonal Architecture and Event Sourcing
- 2016 - DDD, Network, Craftsmanship & Legacy
- 2015 - TDD, Hexagonal architecture & Craftsmanship
- 2014 - Reactive programming, & Refactoring techniques
- The Hive: a scaling and supple architecture style for your growing and complex domain: with my friend Julien Topçu. Video not yet published. slides / code
-
High-Speed DDD (revisited) : reviewed version of my Voxxed Luxembourg talk
-
Équilibrez le Stress, Maximisez la Collaboration : communiquez sans heurts à l’aide de la Process Communication (deep-dive intro) : a deep-dive introduction (180') of Process Communication (in french)
- High-Speed DDD : talk about how to efficiently deliver software with impact, even with hard time-to-market constraints
- The scale-up, The Autonomy and the nuclear submarine: reviewed version of our talk with Pauline JAMIN about the challenges of fostering Autonomy in a scale-up context (lots of new discoveries).
- Agile Toulouse Unconference: (June 1-2 2023) Invited by the organization, I animated 5 sessions during this event:
- Introduction to Process Communication (part 1, the basics)
- Introduction to Process Communication (part 2, the toolbox)
- Outside-in Diamond 🔷 TDD to write Antifragile & business-oriented tests (in discussion mode with the public)
- Animation of "the office" kata carpaccio
- and a whiteboard session in the sun to test the material of the future conference: DDD when everything goes too fast (aka. "High-Speed DDD").
- Show me your domain: Cash Flow monitoring & forecasting: talk with Caroline DESPLANQUE where we presented the domain of Cash flow Forecasting in front of our Context Map.
- Outside-in Diamond ◆ TDD pour écrire des tests Antifragiles & orientés métier: long version (big Q & A session with a large audience) of this talk but the video capture of which was unfortunately lost.
- La scale-up, l'autonomie et le sous-marin nucléaire: talk with Pauline JAMIN about the challenges of fostering Autonomy in a scale-up context.
-
Debrief Battle Artisan developeur: Discussion around the question: Is Code quality compliant with startup? (time to talk about Kent Beck 3X model, startups and scaling, code quality, Domain Driven Design, refactoring, staff engineering & roles)
-
Podcast Artisan developeur podcast about hypergrowth and autonomy.
- La scale-up, l'autonomie et le sous-marin nucléaire: talk with Pauline JAMIN about the challenges of fostering Autonomy in a scale-up context.
- De l'autre côté du miroir: Keynote for the opening of the School of Product (Sept 21th in Paris). A mix between Product management, Domain Driven Design and how to be efficient as dev team.
- Podcast sur le TDD, eXtreme Programming, le cargo cult
- eXtreme: my eXtreme Programming talk made at TADx
- Write Antifragile & Domain-Driven tests with ”Outside-in diamond” ◆ TDD: a talk made for DDD Africa user group on how I ended up doing TDD for many years
- Live coding - Beyond the hexagonal architecture: Functional Core & ... The english version of our Functional Core live coding (with Bruno) at Virtual DDD
- eXtreme: a keynote about eXtreme Programming and its real specificity
- Une nuit dans l'hexagone Fish-bowl panels at #DDDFR with french devs about their usages of Hexagonal Architecture
- DDD clinic A nice Q&A night with DDDFR and other European DDD specialists
- Functional Core, l’alternative FP à l’architecture hexagonale at "La rentrée des speakers" online conference. It was the first time Bruno and I were live-coding about Functional Core.
With a 3 acts Theater play (written by Bruno and I), a 2 days workshop about how to go from Problem space to solution space and another keynote, this year was very intense regarding writing and event preparation for me. I also discovered (and liked) the awesome Sunny Tech conference (in Montpellier) and was proud to be the keynoter for the first edition of AlpesCraft (in Grenoble).
- Parcours dev Podcast parcours dev (avec Saad) ou on parle du wu-tang, de la magie et de logiciel aussi
- Equiper sa voie My former AlpesCrafts keynote about my main take aways from 20 years of career but mostly about Process Communication techniques (psychology funded by NASA).
- Eventstorming and Example Mapping From Problem Space to Solution Space - The same 2 days workshops ran at DDDD Europe.
- Experience Event Storming with Example Mapping - Same 2 hours hands-on session that has been ran at Cukenfest.
- Et si on parlait Ethique ? - former keynote from Agile Tour Bordeaux.
- Equiper sa voie (keynote) My third keynote was about my main take aways from 20 years of career but mostly about Process Communication techniques (psychology funded by NASA).
- Experience Event Storming with Example Mapping Same 2 hours hands-on session that we ran at Cukenfest with Bruno BOUCARD.
- EventStorming and Example Mapping From Problem Space to Solution Space A 1 day version of the workshop we ran at DDD Europe, with Kenny BAAS-SCHWEGLER and Bruno BOUCARD.
- Experience an Energized Event Storming with Example Mapping A 2 hours hands-on session with Bruno BOUCARD.
- EventStorming and Example Mapping towards solution space with Kenny BAAS-SCHWEGLER and Bruno BOUCARD.
- CQRS et EventSourcing https://podcasts.apple.com/fr/podcast/larchitecture-cqrs-et-eventsourcing-avec-thomas-pierrain/id1294016248?i=1000433850284 and https://www.cafe-craft.fr/32-bonus
-
L'émancipation des devs https://artisandeveloppeur.fr/lemancipation-des-developpeurs-avec-thomas-pierrain/
-
C'est quoi le DDD https://compagnon.artisandeveloppeur.fr/veille/podcast-c-est-quoi-le-ddd-avec-thomas-pierrain
The year started quite well with 2 sessions at the amazing DDD Europe conference where I talked about Bi-temporal Event Sourcing and live-coded with Bruno (with an amazing and interactive audience). A couple of weeks after, Bruno and I animated a workshop about Example Mapping during the first edition of the School of PO.
The very same Example Mapping workshop that we animated during NewCrafts Paris, where I also had the chance to talk about Bi-temporal Event Sourcing (but with a brand new talk about technical challenges this time).
Then, Bruno and I did a live-coding talk illustrating the power (and challenges) of Pair Programming at Explore DDD (Denver) in September and then in french at BDX.IO and Becomx.
Last but not least, I've made a keynote in french about ethics related to how software is eating the world where I talked a lot about privacy and how the "free app" model was impacted our lives much deeper than we think.
Becomx (Becomx)
- Pair ou impairs ? (live-coding sanglant) like we did qt BDX.IO
-
Pair ou impairs ? (live-coding sanglant), like the one we did at Explore DDD with Bruno BOUCARD, but in french this time.
-
Example mapping workshop: a nice edition of our regular Example mapping workshop.
- Closing Keynote: Et si on parlait un peu Ethique? in french. Note: it really starts after 11m 26sec
- Distill the Core Domain from Your Legacy App: probably the last time where Bruno BOUCARD and myself were doing our 2 hours of live-coding on how to refactor Legacy code using DDD tactical patterns
- Bruno and I have also helped our friend Kenny Baas-Schwegler to animate his 2 hours workshop mixing Event Storming and Example Mapping.
- Communication Is Everything; Especially While Pairing (Survival Guide) the very first version of our theatratical talk about Pair Programming with Bruno BOUCARD
-
My very first experience of DDD a short talk where Jéremie GRODZISKI and I talk about our very first experience of DDD at work. Talk in french but with subtitles in
-
All videos from this main event. Most of the talks are in but those in french have english subtitles.
-
As time goes by… (technical challenges of bi-temporal Event Sourcing)
-
Discover Example Mapping: the real essence of BDD (with Bruno BOUCARD)
- Du DDD dans mon legacy (Université tout en live-coding) avec Jérémie GRODZISKI et Bruno BOUCARD.
Incredibly intensive year for me as a speaker with many various topics (11 different talks), including a first experience of an opening keynote at BDX.IO and a keynote at the French Ministry of Digital.
For once, all my CFP had been accepted (cool!) and I experienced a intensive period at the end of the year with 5 conf, 8 sessions, 7 diff talks (including 2 live codings and 2 workshops) in 7 consecutive weeks... .
- Event Storming (workshop) with Bruno BOUCARD
- Du DDD dans mon legacy! (live-coding) with Bruno BOUCARD
- Opening Keynote: Sortir de sa zone de confort
- Du DDD dans mon legacy! (live-coding) with Bruno BOUCARD
- The art of Software Design with my friend Jeremie GRODZISKI
- L'agilité à grande échelle : conservez l'esprit, pas la lettre (October 6th 2017)
- How To Distill The Core Domain From Your Legacy App (Live Coding) with Bruno BOUCARD
Two major events in June (both in live-coding):
-
L'après-midi du Domain Driven Design : a crazy afternoon of { DDD + legacy code + live-coding } with Bruno BOUCARD and Jérémie GRODZISKI at Microsoft France. Vidéos available here
-
Alistair in the Hexagone: an exceptional event end of June in Paris where Alistair clarified his pattern (and other related things) and where I live-coded next to him to illustrate it. Fun! Vidéos available here
-
The art of Software Design with Jérémie Grodziski
- Legacy Club with Bruno Boucard
- Legacy Club with Bruno Boucard
This year, I started trying to reboot Domain Driven Design (DDD) with Jérémy GRODZISKI (at DevoxxFR, then NCrafts.io). Our main objective was to make DDD wisdom & efficiency more mainstream. We had lots of fun to make it live but I have to admit that I'm very happy to see that this subject has met its target audience at the end of the day (being one of the most viewed video from the last Devoxx FR)
Another intense moment for me at DevoxxFR was the 3 hours talk of network mechanical sympathy we've made with Raphaël Luta and my friend Cyrille Dupuydauby: Pourquoi il ne suffira pas de faire du HTTP 2.0 pour faire des applications performantes. We didn't have too much time to prepare it (I was very busy with the elaboration of the DDD reboot talk) but explaining how TCP works with post-its, buckets and the audience -as the network- was really fun. While preparing this talk, I was very impressed by Raphaël's knowledge about network and performance.
I also continued to promote Software Craftsmanship this year during mainstream events with my mate Bruno BOUCARD (at Paris JUG, during the MS experiences'16, etc.). Lots of interesting interactions with people. The climax being the Microsoft experiences'16 event in Paris (i.e. the new version of MS tech days in the Palais des congrès). After the success of our previous Learn to craft event at MS France last year (with Jean-Laurent), Bruno and I were offered the animation of 3 sessions related to Software Craftsmanship. We then decided to illustrate the wide spectrum of it: from the business requirements (via Event Storming), to the app implementation (using CQRS and hexagonal architecture), including the deployment (with Docker). We also decided to ask some help from my friend Tomasz Jaskula for the animation (he was a great domain expert for the Event Storming BTW). The CQRS session was an opportunity for me to discover ASP.NET MVC with dotnetcore (to allow Docker deployment). I also drop my CQRS sample app on github few days before. Putting it to github was really an interesting move since I got feedbacks from friends and experts just before the MS event.
Last but not least, I'm very proud of the Legacy Club session we built with Bruno. A mix of inspirational storytelling, live-code and advanced techniques of refactoring. We played it once at Agile Tour Lille (with nice feedbacks), and I hope that we will have many other occasions to meet people with it again. We've been invited to play it at Lean Kanban France (we will slightly remaster it for the occasion; i.e. reducing the live-coding parts in order to improve the storytelling one).
Just before XMas, I also made a 30 minutes talk about MS Async-Await and its related pitfalls at alt.net meetup.
- Legacy Club with Bruno Boucard
- Legacy Club, with Bruno Boucard
- DDD: et si on reprenait l'histoire par le bon bout ? with Jérémie Grodziski
-
Découvrir son sujet grâce à l'EventStorming with Bruno Boucard, Tomasz JASKULA & Eric Vernié
-
Découvrir CQRS par la pratique with Bruno Boucard, Tomasz JASKULA & Eric Vernié
- Let's reboot DDD! (improvised during the unconf part, but in the big room ;-) with Jérémie Grodziski
- DDD: et si on reprenait l'histoire par le bon bout ? with Jérémie Grodziski
- Let's reboot DDD! with Jérémie Grodziski
- Soirée Software Craftsmanship with Bruno Boucard, Diego Lemos and myself. (pics here)
- DDD: et si on reprenait l'histoire par le bon bout ? with Jérémie Grodziski
- Pourquoi il ne suffira pas de faire du HTTP 2.0 pour faire des applications performantes with Raphaël LUTA & Cyrille DUPUYDAUBY
I started the year with a 3 hours talk at Devoxx FR about Hexagonal Architecture with Cyrille Martraire. Despite the fact that i) I know the topic, ii) I've written blog posts on it, and iii) Cyrille and I have already made a 30 minutes talk on it at Société Générale... I have to admit that this 3 hours university format was probably the most stressing experience of my entire speaker carreer (due to the lack of time we had to prepare it). At the end of the day it was some kind of Miracle ;-) We had great time and have probably successfuly animated the biggest architecture dojo ever ;-) with more than 800 people in the room).
During Devoxx this year, I also made a Culture Craft lightning talk that has resonate a lot with the audience (in a nutshell, I provide tips and tricks on how to wake-up and change your team or organisation's culture). This is the very same talk I've played afterwards during a human talk evening hosted in SocGen.
The second part of the year was dedicated to TDD with my friend Bruno Boucard. Initially motivated to talk about our developper's mental models, we end-up with a talk about TDD, trying to explain the big picture of it and giving tips and tricks for people to successfully retry the experience (note: being exclusively practicing TDD since 2005, I've probably made all possible errors with it ;-) We played it a lot to conferences or during Brown Bag Lunch sessions, and the feedback on it was very positive.
We end up by writing a serie of french article about TDD in Programmez (see. Le TDD comme rempart contre nos biais)
- Coder sans la peur du changement avec la -même pas mal- architecture hexagonale avec Cyrille Martraire - University format (3 hours)
- Culture Crafts - lightning talk (15 minutes)
- Si le TDD est mort, alors pratiquons une autopsie with Bruno Boucard
- TDD is dead?!? Let's do an autospy with Bruno Boucard
- Si le TDD est mort, alors pratiquons une autopsie, with Bruno Boucard
- Si le TDD est mort, alors pratiquons une autopsie, with Bruno Boucard
- Diamond kata coding dojo with Bruno Boucard
With Bruno Boucard, Jean-Laurent de Morlhon and myself
-
TDD and pair programming in a nutshell (live coding session) with Bruno Boucard
-
Refactoring de code legacy avec des tucs en "N" (live coding session)
Some feedbacks (in french) are available here and there
- Si le TDD est mort, alors pratiquons une autopsie, with Bruno Boucard
- a lot... (at Betclic, Ullink, Criteo, Air France, Université Paris XIII,...)
First year for me as a public speaker, I've studied a lot and trained very hard to make it work (verbal, non-verbal). Discovering by chance what I consider the best book ever written for public speakers (Resonate, by Nancy Duarte), I was thrilled to share this discovery with my mate Cyrille Dupuydauby and to use it with him in order to build our "Basses latences, hauts débits : les secrets de la finance pour avoir des systèmes réactifs" talk. Considering the warm feedbacks we had and the number of time we played this talk about Reactive Programming over the years (the core concepts, not the trendy libraries), this was a really good investment ;-)
Loving to live-code, I was also pleased to play Refactoring de code legacy avec des trucs en "N" here and there. Impressed by David Gageot' usage of Golden Master to refactor legacy code in Java, I had decided to make a .NET ecosystem version of it to share it with non-java audience.
- Basses latences, hauts débits : les secrets de la finance pour avoir des systèmes réactifs with Cyrille DUPUYDAUBY
- Refactoring de code legacy avec des trucs en "N" (live coding)
- a lot...