Refactoring for Software Design Smells

Managing Technical Debt

Salient Features of the Book

Design Smells Catalog

Contains a comprehensive catalog of 25 structural design smells (organized around four fundamental design principles) that contribute to technical debt in software projects.

Illustrative examples

Includes illustrative examples that showcase the poor design practices underlying a smell and the problems that result.

Pragmatic Refactorings

Covers pragmatic techniques for refactoring design smells to manage technical debt and to create and maintain high-quality software in practice.

Anecdotes and case studies

Presents insightful anecdotes and case studies drawn from the trenches of real-world projects.

Hear what experts say


"... a delightful, engagin, actionable read... you have in your hand a veritable field guide of smells... one of the more interesting and complex expositions of software smells you will ever find..."

From the foreword by Grady Booch, IBM Fellow and Chief Scientist IBM Research

"Evolving software inevitably accumulates technical debt, making maintenance increasingly painful and expensive. The authors, based on their extensive experience, categorise the major design problems (smells) that come up in software, and lucidly explain how these can be solved with appropriate refactoring."

Prof. Diomidis Spinellis, Professor at Athens University of Economics and Business and author of "Code Reading" and "Code Quality".

"...the book I would have loved to write... 'Refactoring for Software Design Smells' is an excellent book. It is another milestone that professionals will use... I'm sure that you will learn a lot from it and that you will enjoy it."

From the foreword by Stephane Ducasse, Author of "Object-Oriented Reengineering Patterns".