Crafting Design

Learn design principles and techniques that lead not just only to well-crafted code but also well-crafted solutions!

This is a hands-on course for Developers that are comfortable writing code but want to be better at designing software. In this course about software design, you will learn to:

  • design well crafted solutions
  • produce software that is responsive to changing requirements and new functionality
  • avoid the pitfalls that lead to legacy code

Why Attend

You should attend if you want to:

  • 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

In this workshop, participants will also learn how to:

  • Design better solutions
  • Keep not just your code, but also your design, clean using Test-Driven Development
  • Become comfortable in mapping business requirements to software components
  • Build software that reflects business requirements

Who Should Attend

This course is designed for 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

Practical Details

  • Language: English
  • Experiential, hands-on, interactive online learning with practical examples
  • Participants will be awarded a Mozaic Works certificate of completion

This Learning Program is Available on Demand


    • Four elements of simple design
    • Mapping and visualising business concepts in code
    • SOLID principles
    • Testing and refactoring legacy code to express business domain
    • Expressing design and architecture in code
    • Outside-in TDD
    • Interaction Driven Design (IDD)
    • DDD and supporting architecture types (i.e. layered, hexagonal and event driven)

    More details and full agenda here


    Developers must:

    • Bring their own laptops
    • Have a development environment consisting of: Java 8, 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.

    Meet Your Trainers

    Sandro Mancuso

    Software Craftsman | Managing Director at Codurance

    Sandro Mancuso, Software craftsman , author of Software Craftsmanship: Professionalism Pragmatism Pride and Founder of the London Software Craftsmanship Community (LSCC). Sandro has been coding since a very young age but just started his professional career in 1996. He has worked for startups, software houses, product companies, international consultancy companies, and investment banks. He coded in a variety of projects, with different languages and technologies, across many industries. He has spent countless hours tinkering with Java in an enterprise environment (JEE). With an extensive experience as a hands-on mentor, his main objective is to help developers become proficient software craftsmen. Sandro has a lot of experience in bringing the Software Craftsmanship ideology and Extreme Programming practices to organisations of all sizes. Sandro is…

    More about Sandro Mancuso >
      Your Cart
      Your cart is empty
        Apply Coupon
        Available Coupons
        individualcspo102022 Get 87.00 off
        Unavailable Coupons
        aniscppeurope2022 Get 20.00 off
        Scroll to Top