The Diamond Kata

Apply Combinant Design to avoid anticipation and overdesign.

The Challenge

  • The Diamond Kata challenges developers to generate a diamond-shaped pattern through code
  • Software Design Gurus like Seb Rose, Alistair Cockburn, Jon Jagger, George Dinwiddie, Emily Bache, Nat Price, Matteo Vaccari and Ron Jeffries 1 and 02 have tackled this kata, but many believe TDD requires anticipatory thinking to succeed here.
  • The Diamond Kata is a challenging problem for Test-Driven Development (TDD). Many attempts at solving it result in algorithmic, rigid, obscure solutions full of IF statements and FOR loops—solutions that focus on manipulating characters rather than the intentional design of abstractions that can evolve and adapt.
    A
   B B
  C   C
 D     D
  C   C
   B B
    A              

Related Products

Complete Programming & Diagrams Ebook (With Commentary)

A detailed guide combining screenshots of each programming step in Visual Studio Code, alongside collaboration diagrams, class diagrams, and Francesco Cirillo’s expert commentary. This ebook walks you through both the code evolution and design decisions of the Diamond Kata.

Available from December 20, 2024

Full Diamond Kata Workshop Video (No Participants)

A complete video recording of the Diamond Kata workshop, with Francesco Cirillo presenting all key topics, including TDD and Anti-IF Programming, without live participants. This course offers structured learning for those who prefer to learn at their own pace.

Available from December 20, 2024

Step-by-Step Development Video Course (No Commentary)

This video course streams the full development process of the Diamond Kata. You’ll follow along step-by-step as the code evolves, with a focus solely on the programming steps, without any additional commentary or explanations.

Available from December 20, 2024

Step-by-Step Programming Ebook (No Commentary)

This ebook includes screenshots of each and every programming step taken in Visual Studio Code to solve the Diamond Kata. It’s a visual guide for hands-on learners who want to see how the code evolves step-by-step, without additional commentary.

Available from December 20, 2024

Diamond Collaboration Diagrams Ebook (No Commentary)

A collection of collaboration diagrams, class diagrams, and other diagrams that visually represent the evolution of the Diamond Kata through its development. This ebook provides a structural view of the solution but contains no textual commentary.

Available from December 20, 2024

Incremental Codebase Access (GitHub)

Get access to the Diamond Kata’s incremental codebase on GitHub, showing the code’s evolution step-by-step. Each stage is marked so you can explore and understand how the code develops over time.

Available from December 20, 2024

GitHub Repository with Final Source Code (Free)

Access the final source code of the Diamond Kata directly from our GitHub repository. This code reflects the complete solution developed during the workshop, allowing you to explore and use the final implementation.

Available from December 20, 2024

Premium Bundle (Complete Access)

A comprehensive bundle for premium customers, including access to the live workshop, the complete programming & diagrams ebook with commentary, the full video course, and the incremental codebase on GitHub. Perfect for developers seeking the complete learning experience.

Available from December 20, 2024

Upcoming Events