logoalt Hacker News

cauchyesterday at 6:15 PM1 replyview on HN

> The whole car example is flawed because insufficient does not mean wrong or incorrect.

In the car example, the solution proposed by the team leader is insufficient. The result is that the solution proposed by the team leader will lead to either the project to fail or to a waste of money.

> Why are you so sure the author cannot compare <complicated thing> and <simple thing>?

What are you talking about? I'm not saying you cannot compare <complicated thing> and <simple thing>, I'm saying that the author does NOT COMPARISON: he has no idea what Chet is talking about, because Chet want to explain and the author shut him down.

You cannot say that Chet's solution, which is more complicated, is less valuable than the simple solution, because you don't even know if the simple solution has any value.

> The simple thing has value today.

No, YOU DON'T KNOW THAT. You invent that. Take the car example: having a wheel but no engine has no value. There are ton of other examples: for example, if someone is talking about a bug that occur because in three weeks we are in 2026 and that the code has a bug that make the code unusable if the year is 2026. If the product is released in February 2026, then the simple thing has zero value. (that's a made-up example for the sake of simplicity, but having bad design that destroy the quality soon after is a real thing, very common)

> How do you value your user’s time?

And how do you value users leaving because in 3 weeks that see the product is not able to do something they were expecting?

> What the user needs today and what it will need in three weeks are different things.

You don't know that. In the example of the car, the user don't need a 1 wheel car with no engine.

Again, because you have no idea what Chet is talking about, you have no idea if what Chet is talking about impacts today's users.

> blablabla ETL blablabla

You keep giving example where someone over-engineer (or ask for working on something too early, or ask to work on something out of scope, or ask to adapt the current goal based on hypothetical future goal, ...). EVERYONE HERE agrees that this is bad and should be avoided. The disagreement is that in the dialog in the article, the author did a terrible job at assessing if Chet contribution was a good or a bad thing (based on these criteria), because the author has drunk the YAGNI cool-aid and jumped to the conclusion it was a bad thing while there are plenty of situations where Chet will act exactly like that when it is not some of these bad things.

(and again, my criticism is not these "bad" things are not bad and should not be avoided, my criticism is that some devs say "YAGNI" and shut down the contributions that are fully relevant to do a good job and deliver value. A simple solution is to not be an obnoxious d*khead and just listen to Chet, to check if it is a real bad thing or not, and act accordingly like an adult instead of behaving like a little kid)

PS: I note that you just ignore elements where you cannot answer. (for example, the food that you don't buy one item at the time, the fact that "prioritization" means nothing when you don't even know between what and what you are prioritizing, ...)


Replies

skydhashyesterday at 8:29 PM

> In the car example, the solution proposed by the team leader is insufficient

Because you created that situation out of the blue. And you’ve been ignoring any case where both solutions do work, but one is more complicated than the other. And the simple one can be delivered very soon, but the complicated one will be useful only three weeks later,

> if someone is talking about a bug that occur because in three weeks we are in 2026 and that the code has a bug that make the code unusable if the year is 2026. If the product is released in February 2026

But the simple thing can let us deploy in 2025 and land a big contract before the holidays. Perfect is the enemy of good as we say.

> Again, because you have no idea what Chet is talking about, you have no idea if what Chet is talking about impacts today's users

It is explicitly mentioned that the complicated thing will only matter in 3 weeks, not today.

> You keep giving example where someone over-engineer. EVERYONE HERE agrees that over-engineering is bad and should be avoid.

And you keep ignoring that time matters and a problem in the future doesn’t mean it exists right now. You do the thing that matters for today, then you do the thing that matters for next week.

Your argument has been the thing that matters for today may not really matter and that is not what Chet has been saying.

  I could do this simplistic thing now but in 3 weeks that will be insufficient
Insufficient in 3 weeks only matters if we can’t ship the simple thing in that timeframe. If we can do so in one or 2 days, we can then focus on the complicated thing.

And that’s assuming Chet knows more about the project constraint than the project leader. Something my be great technically, but the other perspectives that the leader have is why he is refuting it. Like he got an email this morning that we will be abandoning the project in 3 weeks but we’re contractually obligated to fix every bug. He can’t discuss that with you, but he can direct your workflow.

So the next time you hear YAGNI, ask why. Don’t rush to prove your point.

show 1 reply