Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

What about the next 37 cases, wherein you didn't need the second feature?

Yagni says that more often than not, you won't need it. Every single case may not prove out according to that dictum, but that doesn't mean that the overall approach is suboptimal.



Yagni says that more often than not, you won't need it.

No, it doesn't. But even if it did, it could still be wrong.


YAGNI refers to _average_ ROI (as well as time to market, reduced complexity/bugs, 2/3 of features never being needed).

If you want to argue that ROI might not hold true in your particular case, you not only need a time machine, but even worse if you view your work in the context of an ongoing program, you have a halting problem to contend with.

Now as a business owner commissioning software, a) potentially shaving a few dimes is much more expensive to me than not having knowable sums going in and out over the next quarter and b) I may take a financial view that is alarmingly short term to many engineers :)


>No, it doesn't.

Oh? What does it say?

>But even if it did, it could still be wrong.

Not sure what you mean here. As I am reading it, it's a non-statement.


It says, "You aren't going to need it". There's no hedging about more-often-than-not in typical YAGNI advocacy, in this thread or otherwise.


>It says, "You aren't going to need it". There's no hedging about more-often-than-not

Taking it that literally is silly though, right? I mean, no one is stating that in every single case you couldn't possibly need an anticipated feature. How could anyone argue that? Such a literal interpretation actually reduces the entire discussion to indenfensible nonsense.

YAGNI is an approach, not a statement of fact. Even in the article that is the subject of this thread, the author states the following in the opening paragraph:

>It's a statement that some capability we presume our software needs in the future should not be built now because "you aren't gonna need it".

Note the word "some".


Taking it that literally is silly though, right?

Well, I'd certainly say so, but I seem to encounter plenty of people who would disagree. Even in this HN discussion, we seem to have some people who are arguing for always assuming YAGNI despite also arguing that YAGNI is an average/on-balance/overall kind of deal and they subjectively assume that the odds will always favour doing no unnecessary work straight away. I also see some people who appear to support the YAGNI principle yet make an exception for refactoring, with an acknowledged open question so far about when refactoring is justified and why it should deserve special treatment in this respect.

Note the word "some".

Unfortunately, the statement you quoted can be parsed at least two ways, with very different meanings, so I'm not sure that really furthers the debate here. Certainly there are some in this HN discussion who do seem to be explicitly arguing that it's very much an all-or-nothing proposition.


> There's no hedging about more-often-than-not in typical YAGNI advocacy, in this thread or otherwise

There absolutely is. This is the original source - http://c2.com/xp/YouArentGonnaNeedIt.html - note the use of "usually".




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: