Crafted Design

Crafted Design

Keep your design clean as your application grows and requirements change

Course Abstract

Crafted Design is for experienced developers who want to get better at designing well-crafted solutions.
This training addresses design from the most micro level (via TDD) all the way up to defining microservices by analysing business requirements.
After the workshop you’ll be able to design software that is responsive to changing requirements and new functionalities, avoiding some of the pitfalls that lead to legacy code.


Day 1

  • Write tests focused on behaviour instead of state
  • Emergent design through classicist TDD
  • SOLID principles
  • BAP – Balanced Abstraction Principle
  • Use TDD as a design tool with Outside-In TDD
  • Tell, Don’t Ask
  • Commands, Queries, and Open/Close Principle compliance.

Day 2

  • Principles of Domain-Driven Design
  • IDD – Interaction-Driven Design
  • Structure projects in a way that expresses what the application does and what it is about
  • Differences between layers, hexagons, features, and components
  • Modeling behaviour using Outside-In Design
  • Identifying services from business rules
  • Express design and architecture in code, but keeping your domain clear
  • Understanding Impact Mapping and how a services architecture can be derived from it.

What will you learn in this course?

  • Learn design techniques applied in successful projects
  • Use TDD as a design tool, learning about the two main TDD styles (Classicist and Outside-In) and how they differ when driving the design of your code
  • Drive out a flexible design at different levels, from details of code all the way up to microservices
  • Build software that is not bound to a specific technology or framework by keeping them at the boundaries of your system
  • Express your business domain in every facet of your application, not just methods and classes
  • Keep your design clean as your application grows and requirements change
  • Let your architecture emerge, rather than designing a rigid and unchangeable structure up-front
  • Learn how to derive a microservices architecture from business requirements and bounded contexts
  • Learn how to model behaviour intsead of state keeping your design more aligned to business goals.

Expect to get your hands dirty

Here’s what you can expect to be doing during this highly interactive advanced hands-on workshop:

The first day is dedicated to software design at coding level. You’ll be working in pairs on two large exercises, using different TDD styles and comparing their solutions.
Throughout the day there will be plenty of moments for design discussions around the exercises and real world scenarios.

The second day is dedicated to software design at application level (internal structure, layers, components, delivery mechanism, core domain) and also at microservices level using business requirements to drive their design (such as define the responsibility of each service, how services collaborate, their internal and external visibility, number of services we need to create, etc).
You will be working in groups of 4 and come up with design solutions that later are shared with the wider group. Many design discussions during exercises will focus on real world scenarios.

Target audience

Crafted Design is an advanced workshop aimed at software developers who:

  • Have at least a couple of years of experience developing software commercially
  • Are familiar with at least one Object-Oriented Programming language (such as Java, C#, or C++)
  • Are comfortable using TDD to build software
  • Understand mock objects and know how to use a mocking library
  • Have a general understanding of different architectural styles, including microservices.


Tools & Laptop: Should I take my laptop with me?

Entry requirements: Is there anything I need to do before the workshop?
Please set up the environment on your machine according to these instructions.

In order to be able to attend and fully benefit from this workshop, you’re required to:

  • Bring your own laptop
  • Be using TDD regularly in your projects. If you are not very proficient with TDD, you may struggle during the first day of this training. This course is NOT an introduction to TDD
  • Be able to create projects, tests, and code and run them in your local environment.

In addition, a distributed version control system such as Git is desirable.

A basic/intermediate knowledge of at least one Object-Oriented language would be beneficial.

Teaching language: What language will this workshop be in?
This course will be taught in English.

Vuoi saperne di più sui nostri biglietti?


Under_Cover_LearnerSCONTO 20%

Se ti stai iscrivendo al corso a titolo personale e non hai la Partita IVA, c’è una tariffa speciale per te: uno sconto del 20% sul prezzo corrente del biglietto

Come? Inserisci il codice Under_Cover_Learner nel campo "Immetti codice promozionale" di Eventbrite.

Note: lo sconto non è cumulabile con altri codici sconto.

Sandro Mancuso

Sandro Mancuso è un software craftsman, autore del libro "The Software Craftsman", e fondatore della London Software Craftsmanship Community (LSCC). Ha iniziato a scrivere codice molto presto, e la sua carriera professionale è iniziata nel 1996. Ha lavorato con startups, aziende software, aziende di produzione, agenzie di consulenza internazionali, e banche d'investimento.

Info pratiche sul workshop

Lingua: Il corso sarà tenuto in inglese.
Orari: dalle 9.30 alle 17.30 ciascun giorno.
Venue: Pirelli Institute, Viale Fulvio Testi, 223, 20162, Milano (qui puoi scoprire come raggiungere l’Istituto Pirelli).
Laptop: Sì, è necessario che porti il tuo laptop con te.
Dress code: Informale.
Compreso nel prezzo: Nel prezzo del biglietto sono compresi i coffee break e i pranzi insieme al docente e agli altri corsisti. Perché anche il networking è importante! :-)

Come arrivare a Milano?

Puoi raggiungere il centro di Milano grazie ai collegamenti con ben tre aeroporti: Linate, Malpensa, e Bergamo Orio al Serio. Non male, vero? :-)

Visita la nostra pagina Venue & Location Info Page e inizia a preparare il tuo viaggio! Ci troverai un sacco di informazioni utili su dove dormire, alcune opzioni di viaggio, dove si trova la venue del workshop, e molto altro ancora!


Il workshop sarà confermato al raggiungimento del numero minimo di partecipanti. Invieremo una comunicazione con la conferma del corso agli iscritti al più tardi tre settimane prima del corso.

Domande? Dubbi? Scrivici a info@avanscoperta.it.

Istituto Piero Pirelli - Come arrivare ed Info
Hai domande su questo workshop?

Vuoi leggerci il venerdì mattina insieme al primo caffè della giornata?

Iscriviti alla newsletter