3 ms·
I am the complete opposite. I hardly ever regret adding things that I later decide to remove, and I frequently regret dismissing the potential need for somethin
by playpause 5y ago
I am the complete opposite. I hardly ever regret adding things that I later decide to remove, and I frequently regret dismissing the potential need for something that would have been much easier to add (or at least to lay the groundwork for) at the start.
If you add something and later decide you don’t need it, you can remove it. If you added it badly, with loose couplings etc such that it is now painful to remove or replace, well there’s your problem. Flexible, modular patterns are the better solution for that, not a blanket stand against adding stuff.
- lmm 5y ago> I frequently regret dismissing the potential need for something that would have been much easier to add (or at least to lay the groundwork for) at the start. > If you add something and later decide you don’t need it, you can remove it. If you added it badly, with loose couplings etc such that it is now painful to remove or replace, well there’s your problem. I don't understand this logic at all. If it's not something that needs to be deeply intertwined with other logic, then it's no trouble to add it later. If it does need to be deeply coupled to the rest of the system, then ipso facto it'll be painful to remove. Flexibility and modularity are no substitute for simplicity; indeed it's often much harder to add something to a modular system if the module boundaries aren't in exactly the right place (and they usually aren't).
- playpause 5y agoMaybe you often add too many things and get into a complexity nightmare that way. I often err too far the other way, skipping working on boring-but-important groundwork features, I try to press on without them, making life too hard for myself. I tend to justify this avoidance as I’m keeping the system ‘simple’ but then I end up stupidly creating more complexity to work around not having the sensible/useful thing I’ve been avoiding adding. So for you, YAGNI is a useful corrective notion to try to keep in mind. For me it’s playing to my worst instincts. This is the case for all one-sided and unbounded advice like YAGNI. It is useful for people who need to hear it and harmful for those who don’t. I prefer the idea of “everything should be as simple as possible, but no simpler”. The last bit is crucial for me and is missing from “YAGNI”.