Code Smell Catalog

All 22 code smells in Martin Fowler's taxonomy, organised into five categories and annotated with severity, detection hints, refactoring strategy, and an estimated annual cost per instance. Select your team's smells in the calculator below, or open any smell for the full deep-dive.

Smell Profile Calculator

Select the code smells present in your codebase, set instance counts, and see the estimated annual cost.

Select smells present in your codebase:

Long Method
God Class
Primitive Obsession
Long Parameter List
Data Clumps
Switch Statements
Refused Bequest
Alternative Classes with Different Interfaces
Temporary Field
Divergent Change
Shotgun Surgery
Parallel Inheritance Hierarchies
Duplicate Code
Lazy Class
Data Class
Dead Code
Speculative Generality
Comments (as Smell)
Feature Envy
Inappropriate Intimacy
Message Chains
Middle Man

Bloaters

5 smells

Code structures that have grown so large they become hard to work with. Bloaters accumulate gradually as the codebase ages and new features pile onto existing structures without adequate refactoring.

Object-Orientation Abusers

4 smells

Incorrect or incomplete application of object-oriented principles. These smells arise when teams partially adopt OO patterns or misunderstand inheritance and polymorphism, creating structures that fight against the language rather than working with it.

Change Preventers

3 smells

Structures that make any single change require modifications in many other places. These smells directly multiply the cost of every feature request and bug fix, because one change cascades into five or ten.

Dispensables

6 smells

Code that serves no purpose or could be removed without affecting behaviour. Dispensables are the easiest smells to fix but their accumulation slowly buries the important code under layers of noise.

Couplers

4 smells

Excessive coupling between classes or modules. Couplers make it impossible to change or test one part of the system without dragging in half the codebase, turning simple tasks into complex multi-file operations.

The 22 Smells (whitepaper)Tech-debt calculatorDetection toolsCost model

Updated June 2026