5 ms·
Is "opinion-driven design" an attempt to reinvent YAGNI and to try to pass it off the concept as a brand new discovery? https://en.wikipedia.org/wiki/You_aren%
by rualca 5y ago
Is "opinion-driven design" an attempt to reinvent YAGNI and to try to pass it off the concept as a brand new discovery?
https://en.wikipedia.org/wiki/You_aren%27t_gonna_need_it https://en.wikipedia.org/wiki/You_aren%27t_gonna_need_it
- stepbeek 5y agoI guess that "there's nothing new under the sun". I used to get annoyed by instances like this where it feels close enough to be essentially a rebrand but now I view it as a posistive thing. If there's someone out there that never really understood YAGNI but ODD clicks then that's great.
- meheleventyone 5y agoIt’s top-down versus bottom-up. YAGNI is about individual decisions. This is about mindset. Naming it Opinion-Driven Design is a bit cringey and clouds the actual intent though. But a call for more opinionated software is a good thing IMO.
- rualca 5y ago> YAGNI is about individual decisions. This is about mindset. Is there any difference at all?
- meheleventyone 5y agoYeah I usually see YAGNI as a response to some specific feature or idea a programmer has. Where as the idea that you should start by building opinionated rather than very general software is much more about what you're building in the first instance and has implications outside of the resulting code. YAGNI boils up and "opinionated software" bubbles down. They're complementary though.
- rualca 5y agoCalling them complementary is quite the stretch. You've only talked about YAGNI twice, with one time throwing a "opinionated" label without any reason. I mean, let's be honest here: "you ain't gonna need it". That's what YAGNI stands for, and represents. That's what you say to anyone who claims "but it would be far more flexible if...". It's YAGNI, no matter how much makeup you want to slap onto it.
- hinkley 5y agoIt recently dawned on me that one of my tenets is just the flipside of the Rule of Three. People are very good at handling rules with one exception. All mammals are live birth except platypuses. All accounts have foo unless you live in California. Et cetera. Two implementations of a bit of logic is just a case of this. When you get to three cases, you’ve lost the plot. You have to reformulate the question to restore the two-ness of the system (even if that’s splitting it into two twos), otherwise it doesn’t scale conceptually. YAGNI isn’t a rule, it’s a dismissal. A dodge. A cop-out. As such, it gets misused, all the time. Anyone who wants to sound smart and be lazy will just say YAGNI, and it takes a lot of experience with a person to know whether they’re just lazy or lazy like a fox. The Rule of Three is concrete. It contains a contract/escape hatch which prevents inaction from becoming unbounded.
- junon 5y ago> YAGNI isn’t a rule, it’s a dismissal. A dodge. A cop-out. As such, it gets misused, all the time. And when properly employed, is extremely effective.
- robertlagrant 5y ago> YAGNI isn’t a rule, it’s a dismissal. A dodge. A cop-out. As such, it gets misused, all the time. Anyone who wants to sound smart and be lazy will just say YAGNI, and it takes a lot of experience with a person to know whether they’re just lazy or lazy like a fox. The trick is to know when the A stands for "ain't", and when the A stands for "are".
- etripe 5y ago> YAGNI isn’t a rule, it’s a dismissal. A dodge. A cop-out. Only when the abstractions proposed actually have a pragmatic use. As developers, for a lot of us, the immediate instinctual reaction is "add another layer of indirection". Each of these makes the software more complex, adds cognitive load and increases tech debt, making it a risky proposal. Those risks are often glossed over for purely philosophical benefits and - for lack of a better term - personal taste. Maybe you don't actually need factories, strategy patterns or even DI just because the Gang of Four book mentions it. Maybe worry about problems when they occur, not because the might occur. YAGNI is just a concrete implementation of KISS. I prefer the approach it proposes: question everything, say yes only when it makes sense. That is what YAGNI symbolises and reduces use cases, scope, feature creep and abstraction creep. For most companies, code isn't what's sold and merely enables (parts of) the business. What matters is whether it's fit for purpose, not whether it smells nice.
- undreren 5y agoI have a feeling that "opinionated software" is popular exactly because of YAGNI. Users feel like it's made for them instead of everyone.