Clean Craftsmanship: Disciplines, Standards, and Ethics
Review by Sven Woltmann
In his latest book, Uncle Bob teaches us the basic practices and principles of software craft that every professional programmer should know and follow.
The book consists of three parts:
Part 1, “Discipline”, describes five core disciplines of Extreme Programming (XP): test-driven development (TDD), refactoring, simple design, pair programming, and acceptance testing.
TDD takes up almost half of the book. Uncle Bob lets us look over his shoulder as he solves test-driven several katas (also available as videos).
Part 2, “Standards”, is about how to continuously balance high productivity with stable quality; it’s about effort estimates in the form of probability distributions and the courage to say no when the boss wants to impose his unrealistic schedule on us.
Part 3, “Ethics”, is about our responsibility to our users, our colleagues and managers, society, and – last but not least – ourselves. By consistently writing robust and effective code, we avert harm and build trust in our work.
Like all of Uncle Bob’s books, this one is highly recommended. It’s easy to read and, as always, is lightened by historical background and many of the author’s anecdotes (though many are repeated throughout his works).
🎧 Suitable as an audiobook? The book is not currently available as an audiobook. Should this change (other works by Uncle Bob are available as audiobooks), I would advise against it due to the numerous code examples and diagrams in Part 1 (which, after all, comprises two-thirds of the book).
Other Recommendations From This Book’s Genres
Clean Code: A Handbook of Agile Software Craftsmanship
The Clean Coder: A Code of Conduct for Professional Programmers
Agile Software Development: Principles, Patterns, and Practices
Clean Architecture: A Craftsman’s Guide to Software Structure and Design
Design Patterns: Elements of Reusable Object-Oriented Software
Refactoring: Improving the Design of Existing Code
Working Effectively with Legacy Code
The Pragmatic Programmer: From Journeyman to Master
Growing Object-Oriented Software, Guided by Tests
Clean Agile: Back to Basics
Pattern Hatching: Design Patterns Applied
Domain-Driven Design: Tackling Complexity in the Heart of Software
Implementing Domain-Driven Design
Extreme Programming Explained: Embrace Change
The Unicorn Project: A Novel about Developers, Digital Disruption, and Thriving in the Age of Data