3 ms·
> Chet has already told the author about B in the first sentence No. Chet says, I quote, "so since we’re going to need this more complicated thing I want to do
by cauch 3mo ago
> Chet has already told the author about B in the first sentence
No. Chet says, I quote, "so since we’re going to need this more complicated thing I want to do it now". Chet does not explain what is this more complicated thing that he wants to do, what is the problem exactly, if it is a problem linked to A failing the requirements of today or not, ...
> It’s not Chet explaining what B is, it’s Chet explaining why B is better.
Ok, first, for the author to not be a shit team lead, he needs to understand B itself, but also how B fit into the picture.
(also, what is the problem with that: if Chet's opinion is that B is better, I __want__ to hear it. It does not mean I will agree. It does not mean Chet is right. But if someone reached a different conclusion than me, I need to understand why just to check if indeed I've missed something or not)
But secondly, that is again your bias talking. You are brainwashed by YAGNI, so when you read what Chet says, you are unable to imagine that the exact same conversation can happen if Chet is presenting a real new problem that the author missed.
That's my whole red flag with the article: it starts with this scenario, and then continue explaining YAGNI. The author explains YAGNI perfectly. But the big problem is that in his initial scenario, he is showing in fact a scenario I saw over and over again: he fails to notice that someone may say exactly the same thing as Chet __and yet__ "YAGNI" as he correctly describe it later does not apply. The author just teaches readers to be idiot, to not think, to just see someone saying "3 weeks" and then jumps into "YAGNI" without even checking if YAGNI applies or not.
> Assuming the author don’t know anything about B and that it can’t understand the tradeoffs between A and B is where you are wrong.
Read what you have just said and think about it. I am saying "everyone, sometimes, can miss something". And for some strange reason, you understand "this person know absolutely nothing".
I am saying that the author know a lot about the constraints of the project. But unless the author is an idiot, the author also knows that he may have missed something and that someone else may have noticed.
In this dialog, the author does not check if Chet has found something he has missed. He directly assumed Chet is wrong and he is right.
Why is Chet even in the company? You are saying that the author is god: he is never ever wrong, he knows everyyyyything, he is perfect. As soon as you admit that this is obviously bullshit, then you have to admit that the author should engage with Chet to check if something was missed. Again, taking the exact dialog of the article (as you whined about), looking it word-for-word, Chet did not explain his point and the author interrupted him before he could. You can INVENT that the author knows things behind the scene or that they said other things on top of what is written, but then not only you are hypocricital, but on top, it shows that both the author and you just took some hypothesis for granted: you are biased.
> Especially if ...
Again with "you gave a counter-example that shows I'm wrong, but let's ignore it and take an example I've built myself where it works".
Again, I'm saying: "the author is a poor lead because he did not check if Chet has found something he missed", and your answer is "but let's assume Chet did not found something he missed". But the problem is still there. A good bus driver looks both ways before crossing the busy road. "Let's assume no car was coming" means that this mistake, in this specific case, has no bad consequences, but the bus driver is still a terrible bus driver if he did not look both ways. Here, if we assume Chet did not notice something that the author missed, then the author has been lucky, but he still failed to do something he needed to do in order to be a good lead.
> And about the taking the logic further, ...
Do you even understand the principle of "taking the logic further"? Are you telling me that "to take the logic further", one should apply the same logic to THE SCENARIO THAT ALREADY EXIST? How is that moving it further?
Pushing the logic further demonstrates the flaw in the logic. If your logic was sound, than pushing this logic further would not create any absurd situation.
> Because what Chet is talking about is abandonning A, a simple solution, for B, a complex one, where the primary reason is that B will be useful 3 weeks later.
HOW DOES LISTEN CHANGE ANYTHING?
You just LISTEN. You don't say "tell me Chet, and once you told me, I will have no choice but to accept".
You LISTEN to Chet, and if Chet explains and you see that the trade-off is bad, YOU TELL HIM "WE WON'T DO THAT".
That's the problem: for some strange reason, you seems to believe that if Chet just tell you his reasoning, it means you agree with him. You don't have to agree with him, you just have to check if the reasoning of Chet is indeed the reasoning you assumed he had at the start when he did not explain his reasoning yet.
- skydhash 3mo ago> The author just teaches readers to be idiot, to not think, to just see someone saying "3 weeks" and then jumps into "YAGNI" without even checking if YAGNI applies or not. If that’s your take away from the article, no wonder you’ve been trying to twist the dialog to justify it. From the article YAGNI is not an excuse to never design as some critics have characterized it. If you need it, build it. YAGNI is a meditation on timing. Building structure too soon is as risky as building structure too late. That’s why the author says YAGNI in the article. It’s not about never discussing B. It’s about shipping A before shipping B. especially when by shipping A, you can start providing value sooner. > You don't say "tell me Chet, and once you told me, I will have no choice but to accept". It’s Chet that refuses to accept that, from the author point of view, B isn’t better than A. > That's the problem: for some strange reason, you seems to believe that if Chet just tell you his reasoning, it means you agree with him That’s what YOU believe is the problem. Chet himself has said that B will matter in 3 weeks. He hasn’t said that B matters now. The problem is clearly stated and argued in the article. It’s better to focus on the simple solution that solves current problems than trying to implement complex solution that solves future problems. Do you agree or not with that statement?
- cauch 3mo agoAs I've said (quote): "The author explains YAGNI perfectly". My point is that he does not notice that he is doing, in the scenario, what he is saying should not be done. What the author is doing is a common mistake with a lot of people into YAGNI: they just think that because they see "3 weeks", it means that the problem is not about you failing TODAY'S REQUIREMENTS. And again, it does not mean that Chet is always talking about today's requirement. The problem is that if you are the team lead and Chet said exactly what is quoted here, you make a mistake by blindly assuming Chet is trying to solve 3-week-away problem. It may be the case, it may be today's requirement that will become visible in 3 weeks. > It’s Chet that refuses to accept that Who cares about what Chet accepts or not. Neither me, you or the author has to agree with Chet. Just LISTEN to him to check if what he is talking about is in fact about the current solution failing TODAY'S REQUIREMENT (or if today's requirement were misleading) or not. Again, for the hundredth time: if Chet is indeed talking about a future requirement, then say "no" to him. But in this scenario, with the exact quote that is used, you don't have enough information to understand if Chet is talking about today's requirement or future-in-3-weeks requirement. > Chet himself has said that B will matter in 3 weeks. He hasn’t said that B matters now. And I gave you several examples where people can say that the failure of doing the task according to the requirement of TODAY will only appear later. That's your problem: you see "3 weeks" and you conclude "so it is not today's subject". If today's subject is to install the correct wheels, if you install the incorrect wheels, which will break down in 3 weeks, you failed TODAY'S PROBLEM. Today's problem was to install the correct wheels, not the incorrect wheels. Or, even more generally: if I write a piece of code and forget about some requirements, if someone said "hey, you forgot some of the requirements, when we are going to plug it with this other tool in 3 weeks, it will crash", I cannot say "if it does not work in 3 weeks, then it means it is a different feature". If what you say is true, then I can always write incorrect code that will not play nicely with the rest of the systems when deployed, and just say "we haven't deployed yet, so my code is perfectly fine". In fact, another way of seeing this: almost all mistake in today's requirement can be magically transformed in any future requirement according to you: just postpone running the unit test: "I've finished the code and it looks ok when I look at it. Chet is saying that the unit test will crash in 3 weeks when we are going to run the unit test, so this mistake in the code is a future-hypothetical-different-feature" > Do you agree or not with that statement? I agree with that statement. What I don't agree with is saying that just because Chet says "3 weeks", it means it is not about the current problems. That's the common problem with some people defending YAGNI. They are talking about "meditation on timing" and "building too soon or too late", but they don't realise that knowing if the problem is today's problem or the problem is 3-weeks-away problem is not as trivial as just noticing the word "3 weeks".