Symptom

The same group of fields travels together everywhere — (street, city, zip), (start, end), (firstName, lastName) — appearing as parameters, class fields, interface properties, or method args.

Goal

The clump becomes a value object with its own name and its own behavior.

Smellier version

function send(name, email, street, city, zip) {
// ...
}

Fresher version

class Address { /* street, city, zip */ }
function send(name, email, address) {
// ...
}
Example source: Illustrative example written for this site, not a quotation from any source.
Pressure

Adding or removing a field of the clump means touching every site; the clump's identity is invisible.

Tradeoff

Introducing the value object forces every consumer to construct and destructure it; for short-lived clumps the ceremony can outweigh the gain.

Relief

Operations on the clump (formatting, validation, equality) live with it; method signatures shrink.

Trap

Wrapping field groups that don't actually represent a coherent domain concept — the object exists only to shrink signatures and has no real behavior to attract.