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

No. You need to have information about what you're implementing right now, and the willingness to write it well.

What you generally see is that if you have a complex code base with lots of plan-for-the-future abstractions in it, refactoring it in any non-trivial way is really hard[1], so people don't, and you end up with hacks.

Whereas if the system is as simple as possible, you can make bigger changes more easily, and the code can stay cleaner.

That's no guarantee that it will -- code quality still requires discipline and sound engineering -- but it's a lot more likely with YAGNI than without.

[1] "Hey, we need to make our pricing system handle multiple currencies."

"Oh geez, that's going to wreak havoc with our risk plugin system, that change will take at least three weeks."

"Oh yeah, and we'll definitely need that risk plugin system when we get to the piracy risk feature later this year... what if we just kind of hack currency systems up by [doing something awful]?"

"Sure, we can do that in a week. I don't like it, but it's the only choice given our deadline right now."



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

Search: