4 ms·
YAGNI conspires against me. When I spend a lot of time building potential future features or creating a bunch of abstractions, I pretty much always never end u
by meowface 7y ago
YAGNI conspires against me.
When I spend a lot of time building potential future features or creating a bunch of abstractions, I pretty much always never end up using any of them and it ends up as a (potentially huge) waste of time.
When I'm building something and thinking about whether or not to make it more abstract / support potential future features, and decide "nah, ain't gonna need it", inevitably within a week or month I get some feature requests for those exact things, often requiring me to do a lot of rewriting from the ground up which I wouldn't have otherwise needed to do if I had started off with a more abstract model or added those features when I was initially considering them.
(Obviously this isn't literally always true, and I'm getting better at it over time, but those are the ones that stick out.)
- quickthrower2 7y agoThis is the pain with “agile”. The problem with building the skateboard first and morphing that into a car (as per the cartoon strip meme/trope) is that a car is nothing like a skateboard. It’s a rewrite. If you can know you need a car upfront then you save a YAGNI/OFINI cycle. I’ll let you guess what OFINI means :)
- codr7 7y agoIt's certainly no Silver Bullet, and can be taken too far; but it was born as a reaction to the industry going way down the opposite drain. At least at that point, you know what kind of car you need. I still find it easier to refactor a simple solution into a more elaborate one than going the other way, easier to motivate as well as ripping out features is pretty much impossible in a corporate setting. Truth is always somewhere in between the extremes.
- collyw 7y agoAgile could never have solved this problem well. But it did encourage the problem to appear by claiming that it could.