PRO TIP: Instead of making it hard, don’t
This sounds obvious, but it’s surprising how often people need to be reminded of it. Like me, for example.
I propose the idiom “leave the wolf,” possibly accompanied by “Why do we need a wolf?,” after this comic:
https://xkcd.com/1134/
This is indeed a close friend of YAGNI. To my mind, “leave the wolf” is specifically about accepting that it’s OK if the problem at hand has a simple solution, resisting the urge to complicate things until the complication is a problem — to turn the situation into a logic puzzle.
“Maybe we should grab those groceries on the way there…” “Nah, leave the wolf.”
Taking @corycarson’s wisecrack seriously, because it is serious:
https://gnu.gl/@corycarson/111820431351256065
The idiom applies to those times when you have a choice, to •realizing• when you have the choice of making things easy.
It’s not about wolves that are attacking you. [Aside: wolves rarely attack humans unless threatened; they are much maligned that way.] It’s about (as in the comic) when the wolf is optional, it’s easy without the wolf, and you realize you can just leave the wolf and it’s •fine•.
In software, the wolf often takes the form of putative requirements that have become untethered from the problem they solve. Leaving the implementation team crystal clear about goals and context creates the freedom to leave the wolf; giving the implementation team a rigid design or feature checklist leaves them needlessly paddling the boat across the river multiple times.
@inthehands wisdom!
although there are probably a minority of situations where the team gets to the other side sans wolf and realize that the wolf was keeping the local rabbit population under control, etc
@voxpopsicle Indeed, “why” is a question that’s just as crucial about the features you’re cutting as it is about the ones you’re including.