Naresh uses the phrase:
“Smartest Possible Thing That Could Possibly Work”.Stick that bromide in your quiver. I like that sentence.
Version One's marketing material refers to simple design, quoting poet Wallace Stevens
"the art of what suffices."in reference to growing application functionality that is
- Wallace Stevens
for today's story, and today’s story onlySadly that advice is counter to our natural inclinations. We love to flex our muscles to unwittingly complicate things.
I sometimes feel victimized by Swiss-Army Knifing on the development team. Forget about gold plating being bereft of value to our product owners, I am referring to so-called re-usable components that well-meaning developers build. It's an affliction that inexplicably infects the C# practitioners more so than purveyors of Java.
Many times re-usable components are a detriment to the development team who feel obliged to use them. These re-usable Rube Goldberg contraptions present technical debt we must shoehorn into our code because...well ...because, um, they took so long to build?
Many of us have the unfortunate proclivity to grow do-all components; ostensibly for others to re-use. Unfortunately these knives do more than cut. Much more. So much more, they don't even cut very well. Our Swiss Army knives end up being clunky and difficult for others to understand. Plus, they sag our pants. Turn Jam into Jelly.
Is the Swiss Army knife approach little more than the flexing of coding muscles?
In XP, the acronym is YAGNI, for
"You Aren't Gonna Need It"
Let's resolve to keep it simple.
I plan to heed Naresh's advice to focus on, the “Smartest Possible Thing That Could Possibly Work”.
Thanks for the reminder.