Speaker

Alessandro Colla

Alessandro Colla

Evoluzione, Tech enthusiast, programmer, author, agile practitioner

Evoluzione, Tech enthusiast, programmer, author, agile practitioner

Brescia, Italy

Actions

Alessandro Colla is a seasoned eCommerce specialist, C# programmer, and Domain-Driven Design expert with over 30 years of experience in the IT industry. He has built management software and ERP systems from the ground up for diverse industries and has guided teams in improving their skills and practices. Alessandro actively contributes to and maintains open-source projects, is the co-author of Domain-Driven Refactoring, and co-founded DDD Open, an initiative promoting knowledge sharing and collaboration in the software development community.

Alessandro Colla è uno specialista di eCommerce, programmatore C# ed esperto di Domain-Driven Design con oltre 30 anni di esperienza nel settore IT. Ha progettato e sviluppato software gestionali e sistemi ERP da zero per diversi settori, guidando team nel migliorare competenze e pratiche. Alessandro contribuisce attivamente e mantiene progetti open source, è co-autore di Domain-Driven Refactoring e co-fondatore di DDD Open, un’iniziativa dedicata alla condivisione della conoscenza e alla collaborazione nella comunità dello sviluppo software.

Area of Expertise

  • Business & Management
  • Information & Communications Technology

Topics

  • DDD
  • CQRS & Event Sourcing
  • agile
  • C#
  • JavaScript
  • TypeScript
  • microservices
  • Domain Driven Design
  • Artificial Intelligence
  • Agile software development
  • Distributed Software Systems
  • Software Design
  • Modern Software Development

Sessions

Who fear the saga? en

Saga: a long story of heroic achievement.
This is why sagas are often perceived like a complicate piece of software.
How does it works? How many types we can choose from? How much business logic it is allowed inside?
In this workshop we will discover that it is not that complicated to create one, we will build one from scratch and discover how we can apply specification by example to test its behaviors.

Spec-Driven Development: Redefining the Software Architect in the AI Era en

LLMs are increasingly used to generate code, tests, and even architectural sketches. The problem is not their capability, but their lack of durable context: even when guided by ad-hoc prompts, their output is often inconsistent, unpredictable, and subtly misaligned with domain intent.
Specification-Driven Development (SDD) addresses this by treating specifications as more than just input for code generation. In SDD, specifications act as a shared, non-negotiable source of truth: a persistent memory that captures domain decisions, constraints, and language in a form that both humans and AI can consistently follow. Rather than asking a model to “do the right thing,” SDD makes domain intent explicit and enforceable within a bounded context.
Grounded in Domain-Driven Design, SDD reinforces a shared ubiquitous language, respects bounded contexts, and preserves the authority of domain experts by encoding their decisions into explicit, machine-readable rules. Through a series of hands-on exercises, participants will define domain specifications, evolve them collaboratively, and use them to guide AI agents in a controlled and deterministic way.
By the end of the session/workshop, participants will have produced a clear, domain-aligned specification and a concrete implementation plan derived from it.

Test non convenzionale nello sviluppo di microservizi con CQRS ed Event-Sourcing en

Lo scopo è quello di realizzare un'applicazione composta da due microservizi che sottoscrivono gli stessi eventi. Utilizzeremo CQRS ed Event Sourcing e vedremo in particolare come testiamo gli eventi tralasciando il classico unit testing in favore dell'event specification testing.
Ovvero test più espressivi, che riprendano i termini utilizzati nell'Event Storming, quindi che utilizzano l'Ubiquitous Language e siano comprensibili anche ai Business Expert.

Testiamo gli eventi en

Vi è mai capitato di dover testare un sistema ad eventi? In questo caso il classico approccio TDD può essere utile? Oppure servirebbe uno strumento di testing diverso, più appropriato? Scopriamo insieme, con tanti esempi e tanto codice, ed una libreria open source, come preparare un adeguato ambiente di test adatto a questo tipo di soluzione.

Advanced Refactor using DDD en

We have learned to apply Domain-Driven Design (DDD) patterns on greenfield projects and are now exploring how to leverage AI to deepen our domain understanding. However, most of our work involves refactoring existing applications. Architectural patterns like Onion Architecture offer a viable solution, but first, we must untangle our Big Ball of Mud using DDD principles. Crucially, we need to implement robust tests to support our refactoring efforts, ensuring the solution remains maintainable and, if needed, can evolve towards a microservices architecture.

Non agire più velocemente della tua capacità di prendere decisioni en

Negli anni, ho osservato come sia diffusa l'idea che un team di sviluppatori sappia naturalmente lavorare sotto pressione e con efficienza. Tuttavia, la mia esperienza mi ha insegnato che questa è una capacità che si sviluppa con il tempo e l'allenamento, e che non tutti riescono a raggiungere. Quando si verifica una situazione critica, come un bug che blocca i sistemi in produzione, se il team non è abituato a gestire lo stress elevato, è facile cadere nel panico, perdere la lucidità e agire in modo inefficiente, rischiando di aggravare ulteriormente la situazione. Un detto che ritengo molto significativo è: "Non agire più velocemente della tua capacità di prendere decisioni".
In questo talk, un po' provocatorio, desidero esporre alcune similitudini con altri contesti, qualche riflessione su esperienze passate ed esplorare possibili soluzioni.

Bounded Context is not Enough! en

When we consider to create a distributed system, frequently we use Bounded Contexts to handle specific business functions within clearly defined boundaries.
But is this enough? What about the static dependencies that each microservice has with the database or the servicebus or even with the frontend?
In this workshop we will explore the concept of Architectural Quantum (an independently deployable component with high functional cohesion) and how it can help us to create a distributed system with a clear separation of concerns.
Join us to discover a way to implement this architectural solution.

Prerequisites:
-Laptop
-Interest in software architecture

Advanced Refactor Using DDD en

This is a hands-on lab with limited capacity

Transitioning from greenfield projects to refactoring existing applications presents unique challenges in applying Domain-Driven Design principles. In this interactive 2-hour workshop, participants will learn how to leverage DDD to transform legacy codebases (and not only that), moving beyond the "Big Ball of Mud" towards a more maintainable and scalable architecture using patterns like Onion Architecture.
Attendees will explore strategies for decomposing and understanding tangled legacy code through DDD principles, implement robust testing frameworks to support safe and confident refactoring efforts, and guide the evolution from monolithic structures to maintainable architectures with an eye toward future microservices adoption.
Through hands-on exercises and real-world case studies, participants will gain practical techniques to apply DDD effectively in their refactoring projects. Whether the goal is to improve maintainability, scalability, or prepare systems for future architectural shifts, this workshop will equip you with the knowledge and skills needed to achieve your objectives.
Join us to master the art of applying Domain-Driven Design in the refactoring journey and transform your legacy systems into robust, domain-aligned solutions.

Come ti testo il Dominio con .NET en

Sentiamo parlare di applicazione Event-Driven, di CQRS/ES e di codice testabile.
E’ possibile far coesistere, senza necessariamente re-inventare ogni volta la famosa ruota, tutto questo nell’eco-sistema .NET?
Noi ci abbiamo provato e siamo riusciti a distribuire il tutto tramite NuGet.
Volete sapere come? Venite a scoprire con noi il nostro viaggio e a condividere le vostre esperienze.

All events are testable! en

Is it really that difficult to test an event-based domain?
In this session we will learn how to write tests that validate domain behavior, going beyond the classic TDD approach. We will focus on validate domain state change throughout its life cycle.
We will address the problem by using specification testing and see how this fully supports the development of a complex and evolving domain.

Smettila di dire che non hai tempo, semplicemente non lo sai usare en

Negli anni ho sempre cercato modi per "hackare" me stesso, sia per migliorarmi che per rendere più efficiente la mia produttività. Considerando poi che il mondo dell'IT evolve in continuazione, stare al passo con tutto e ricordarlo è praticamente impossibile. Oltre a questo, siamo bombardati da continue distrazioni che rendono veramente faticoso rimanere concentrati per un lungo periodo di tempo (forse alcuni non sono nemmeno più capaci di farlo). Quello che voglio condividere è la mia personale routine (in continua sperimentazione ed evoluzione), i libri letti, le metodologie, quello che stiamo sperimentando col mio team ed i risultati che stiamo ottenendo. Questo sperando di potervi dare spunti ed una base di partenza per poter fare meglio.

Cos'è la Felicità per te? it

"Cos'è la Felicità?"
Questa è la domanda che mi sono fatto diverse volte ed a cui ho cercato di trovare risposta; quali sono i tratti che la caratterizzano?
"Più soldi hai, più sei felice!", ma è davvero così o c'è un limite dopo il quale non cambia nulla?
Negli anni sono stati portati avanti diversi studi per capire in cosa, e come, la felicità viene influenzata. L'obiettivo di questo talk è introdurre i risultati di queste ricerche, mostrare alcuni strumenti che ognuno può provare a mettere in pratica e misurarne gli effetti sul lavoro e nella vita privata.

Alessandro Colla

Evoluzione, Tech enthusiast, programmer, author, agile practitioner

Brescia, Italy

Actions

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