Symptom

Functions taking five, six, or more parameters — especially when several travel together as a logical group.

Goal

Related parameters travel together as one well-named value object that the function (and its callers) refer to by domain meaning.

Smellier version
function book(name, email, street, city, zip, depart, arrive, seat) {
  // ...
}
Fresher version
function book(traveler, address, trip) {
  // ...
}
Savings

Adding a related field is one type change instead of touching every signature; intent is named at the call site.

Note

Callers must remember argument order and meaning; refactoring becomes a coordination exercise across every call site.