Hacker News new | ask | show | jobs
by bastijn 3788 days ago
"YAGNI stands for “You ain’t gonna need it” and tells developers to keep things simple and only design and implement the things that you know you are really going to need. It can be tempting to think that in the future you might need feature x and so you may as well already create it now. But remember that requirements are likely to change so chances are that you won’t need it after all." [0]

I work in a platform team in a large multinational and had to laugh about the XKCD. I also was a bit surprised about the one-sided view presented here to unexperienced readers who might not think ahead. I cannot count the number of times I encountered the other side of the story where each team tells me their code is special, different from everybody else. Costing the company lots of money while all they are doing is reimplementing data storage, authentication, image processing algorithms, or feature X for the 10th time. The surprise on their face when we let our generic platform component handle it for them with just a few lines of code is always priceless (usually after such a demonstration they come shopping and start "aha-ing" when we tell them that other feature they now want for free from us is too specific to have in a platform :D)

[0] http://www.csfieldguide.org.nz/SoftwareEngineering.html#agil...

1 comments

I was with you until the parenthetical remark, which seems to contradict the point. Platform software is great for getting 80% of the way there; then you can be screwed.

My last company threw away our expensive IP and tried to use off-the-shelf platform stuff. They're struggling now, with a product lacking features, performance and scalability. Funny, that's what the platform promised to deliver!

I think there is a difference between in-house developed platforms and platforms bought externally. Apart from that, if that 80% is of high quality and suits your needs doing the last 20% yourself is of course the idea. A platform can't give you 100% as it isn't tailored to your specific needs as a product. It shouldn't be in the way for the last 20% that's what a great platform should be. Kick-start you for 80% and not be in the way for the last 20%.