Speaker

Alessandro Di Gioia

Alessandro Di Gioia

Co-Founder & Sociotechnical Coach at Alcor Academy

London, United Kingdom

Alessandro Di Gioia is a software crafter with over two decades of experience. His journey spans diverse organizational landscapes, from dynamic start-ups to robust multinational corporations. His expertise has been pivotal in driving technical excellence for his customers' teams in London, Norway, and Italy.

A crucial moment in his career was in 2006 when he embraced eXtreme Programming. This experience fundamentally altered his approach to software development, instilling a holistic view of the lifecycle of technological solutions from their conception to deployment. Alessandro is renowned for his advocacy for clear ('obvious' - he often says), concise and well-designed code. He possesses an exceptional skill in enhancing and refining complex legacy systems.

Alessandro is adept in Object-Oriented and Functional programming paradigms, showcasing his versatility in various technological approaches, with a special focus on scalable distributed asynchronous systems.

In 2020, Alessandro ventured into entrepreneurial waters by co-founding Alcor Academy. The academy is a testament to his vision of fostering a culture of socio-technical excellence within software development teams. Together with Marco Consolaro, Alcor Academy has pioneered its innovative Software Craft Training program, leveraging live remote Mob Programming. This unique approach has garnered significant success across Europe, enhancing the skills of hundreds of software professionals and cultivating a community of passionate software crafters.

Area of Expertise

  • Information & Communications Technology

Topics

  • TDD & BDD
  • ATDD
  • TDD
  • Hexagonal Architecture
  • refactoring
  • Continous Delivery
  • Continuous Integration
  • Continuous Deployment

DDD EU Katacombs

Welcome to the Katacombs challenge - backend edition. This workshop will guide you to write a text adventure game inspired by games like Colossal Cave Adventure.

Many times we had the feedback that exercises and katas tend to be too small and focused on learning a specific subject and disconnected from the "real world". We want to present a large enough exercise that will allow us to write "real code" while learning software engineering practices and skills.

We will try to implement a full-featured game using distributed computing, and deal with "real code" issues similar to the ones we find on a "real project". We will provide the REST API, architecture (hexagonal and DDD) and database definitions from where we will start the development. The approach we follow is to have a series of challenges, connected with a user feature. For each challenge, we propose a test to write in outside-in style and then implement unit tests and code to satisfy that acceptance test. We will complete a feature starting in a REST API and following the flow until we reach the end of the feature flow, test by test.

During the workshop, we will divide ourselves in a maximum of 3 mob programming groups that will work on the challenge. Each mob can decide what programming language to use, the only requirement being that a majority of the mob can write and run automated tests, use test doubles and has familiarity with a REST framework.

Connascent Mars Rover: beyond Coupling and Cohesion

In 2009 Jim Weirich defined Connascence as "The Grand Unified Theory Of Software Development". The concept is simple, yet very powerful in the context of Object-Oriented software development. It generalizes the ideas of Cohesion and Coupling, combining them in a more exhaustive classification under the three-axis, using a proper taxonomy. After an introduction to the concept, the participants will identify Connascence inside a codebase and apply some refactoring to correct the issues. We have prepared the exercise in Java and C#.

Modular Architecture Deep Dive

In this hands-on workshop, we will start with an acceptance test and test-drive some user stories on an enterprise-like application with live databases and APIs, Service bus messaging, a continuous deployment environment on Azure, and information radiators.

We will write Java code collaboratively in a mob/ensemble "fishbowl" programming and focus on the most important properties of an architecture: modularity, loose coupling, and business alignment.

Sit within the mob and help navigate the development of the solution or just relax among the audience watching the progress of the development and asking questions in real-time!

From Eventstorming to ATDD passing by Hexagonal Architecture. Go live on your first day on our team!

Imagine you are going to start working on a new team: this is your first day in your new job. How do you expect it to be? Boring? Would you be able to write code and deploy to production on your very first day?

In this hands-on workshop, you will join our team and work with us for one day in a production-like environment we prepared. The goal is to deploy one story to production by the end of the day. Impossible?

We will start by explaining the context of our Car Finance Business. Using Core Domain charts, bounded contexts mapping, big picture Eventstorming, Team Topologies, C4, and some custom Hexagonal Architecture class and sequence diagrams, we will show how to leverage the artefacts for onboarding new team members fast.

In the second part of the workshop, we will start writing code collaboratively with an acceptance test. We will help you to test-drive the user story on an enterprise-like application with live databases and APIs, Service Bus and event messaging, trunk-based development, continuous integration&deployment on Azure, and information radiators.

We will write Java code collaboratively in a mob/ensemble "fishbowl" programming and focus on the most important properties of an architecture: modularity, loose coupling, and business alignment.

Sit within the mob and help navigate the development of the solution, or just relax among the audience watching the progress, and asking questions in real-time. Impossible is nothing!"

Modular Architecture Workshop


Hexagonal, onion, clean, ports-and-adapters, layered... many names have been used for this architectural pattern.

In this hands-on workshop, we will test-drive a user story on an enterprise-like application with live databases and APIs.

We will write code collaboratively in a mob/ensemble "fishbowl" programming and focus on the most important properties of an architecture: modularity, loose coupling, and business alignment.

Sit within the mob and help navigate the development of the solution or just relax among the audience watching the progress of the development!

Part 2/2: C# .NET Outside-in development guided by tests in mob programming

Hands-on workshop in fishbowl mob programming where we will guide participants to implement and design software from the business perspective with tests that won't get in the way. Starting from some requirements and the acceptance criteria, we will write one acceptance test driving the outer loop of our Acceptance Test Driven Development suite. We will then use it as feedback for the progress of the implementation of the feature until it is completed.

This is a technique that we tried several times within delivery teams in the past, achieving amazing success, as far as we describe it also in our award-winning book. It includes elements of ATDD (London school), BDD, classic TDD, Domain Driven Design, Modular/Hexagonal Architecture, and it is ideal for expanding the functionality of the system incrementally, in harmony with business folks.

Join the mob and help navigate the development of the solution in C# .NET or just relax among the audience watching the progress of the exercise!

Outside-in development guided by tests in mob/ensemble programming

In this mob programming workshop, we will guide participants to implement and design software from the business perspective with tests that won't get in the way. Starting from some requirements and the acceptance criteria, we will write one acceptance test driving the outer loop of our Acceptance Test Driven Development suite. We will then use it as feedback for the progress of the implementation of the feature until it is completed.

We tried this technique several times within delivery teams in the past. We achieved great success, as far as we describe it also in our award-winning book. It includes elements of ATDD (London school), BDD, classic TDD, Domain Driven Design, and Modular/Hexagonal Architecture.
It is ideal for expanding the system functionality incrementally, in harmony with the business folks.

Sit within the mob and help navigate the development of the solution, or relax among the audience watching the progress and asking questions in real time!

Sviluppo Outside-In guidato dai test

Workshop pratico in cui guideremo i partecipanti a implementare software guidato da test che non intralciano e partendo dal punto di vista del business. Utilizzando alcuni requisiti e un criterio di accettazione ben definito, scriveremo un acceptance test che guida il ciclo esterno della nostra suite ATDD. Lo useremo come feedback per l'avanzamento dell'implementazione fino al suo completamento.

Questa tecnica include elementi di ATDD (scuola di Londra), BDD, TDD classico, Domain-Driven Design, Architettura modulare ed è ideale per espandere le funzionalità del sistema in modo incrementale, in armonia con il business. E' una metodologia di sviluppo che abbiamo utilizzato più volte in produzione nel passato ottenendo dei successi straordinari per quanto riguarda la velocita' della delivery.

Nel workshop scriveremo codice in modo collaborativo in mob/ensemble programming con "fishbowl". Puoi sederti con il mob e aiutare a implementare la soluzione o semplicemente rilassarti tra il pubblico e osservare il progresso dello sviluppo, aspettando il momento in cui tutti i test diventano verdi!

NDC London 2024 Sessionize Event

January 2024 London, United Kingdom

Working Software 2023 Sessionize Event

June 2023 Milan, Italy

NDC Oslo 2023 Sessionize Event

May 2023 Oslo, Norway

Domain-Driven Design Europe 2022 Sessionize Event

June 2022 Amsterdam, The Netherlands

Alessandro Di Gioia

Co-Founder & Sociotechnical Coach at Alcor Academy

London, United Kingdom

Please note that Sessionize is not responsible for the accuracy or validity of the data provided by speakers. If you suspect this profile to be fake or spam, please let us know.

Jump to top