Last Updated: November 24, 2019
· beezee

The problem with YAGNI in solution design

I've seen horrible over-engineering, and I know that there's a real risk when nobody stops to ask why they're doing what they're doing.

I also see a fair amount of the opposite, where questioning the value of a certain outcome appears to be in bad faith - rather than truly assessing cost/benefit, someone may be clearly working to build a case against a particular goal and their bias is showing.

I just stumbled across this comment which clicked something into place for me. In response to "this feature may not be widely used enough to implement", you have "how can a feature not implemented be widely used?"

Cost/benefit analysis refers to two separate processes, occurring in two different domains. You cannot analyze benefit in the solution domain, only in the problem domain. You cannot analyze cost in the problem domain, only in the solution domain. When those wires cross, you have a solution being prescribed from conflicting interests, and you may get nothing but the lowest hanging fruit, or the most ambitious product that never existed.

When it appears someone has an ulterior motive in their suggestion that something is unnecessary, it's always valid to question how you know something that is presently impossible is unnecessary. Nobody has had the option to try it, and determine for themselves whether they find it valuable.