• en | es


Crafted Design

Created by Sandro Mancuso

For experienced developers that want to get better at designing well-crafted solutions. It focuses on designing software that is responsive to changing requirements and new functionality, avoiding the pitfalls that lead to legacy code.

More courses Contact

Course Duration

2 days

Why attend?

  • Learn design techniques applied in successful projects
  • Use TDD as a design tool, applying Outside-In TDD
  • Drive out a flexible design
  • 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 entire 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


  • Four elements of simple design
  • Use TDD as a design tool with Outside-In TDD
  • Business application of SOLID principles
  • Testing and refactoring legacy code to express business domain
  • Interaction Driven Design (IDD)
  • Map and visualise business concepts in code
  • Express design and architecture in code, but keeping your domain clear
  • Learn an evolution of a subset of DDD


Software developers that:

  • Have experience in developing software commercially
  • Are familiar with at least one Object Oriented Language (such as Java and C#)
  • Are able to understand Java (the codebase and exercises are in Java)
  • Are comfortable using TDD to build software
  • Understand mock objects and know how to use a mocking library


Developers must:

  • Bring their own laptops
  • Have a development environment consisting of:
    • Java 8
    • Their favourite IDE
    • Maven 3.x
    • A unit testing framework
  • Be able to create projects, build source code and run test cases in their development environment

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

Talk to us about your training needs