Requirement: greet a user
🧩 Over-engineered Waste
factory GreeterFactory
interface IGreeter
interface GreetingStrategy
class DefaultStrategy
class Greeter
files/classes5
indirection3
✅ Simple Honest
function greet(name) {
  return "Hi " + name;
}
files/classes1
indirection0
New requirement? Flip what's actually true
Keep it simple — YAGNI
No force varies. The 5-file build buys nothing the problem asked for.
Same job, two costs
The requirement is tiny: greet a user. Both columns produce "Hi Ada" — but the left one pays for 5 files. Flip a chip below to see when that cost is justified.
The same pattern is waste or wisdom depending on one thing: whether a real, present force demands it.