In one of my previous posts – YAGNI is king – I advocated the idea of not anticipating future when it comes to developing features.

I got some feedback that I want to discuss: YAGNI applies to features, not design. When designing software, you have to anticipate the future. Therefore, sometimes you have to give up on YAGNI if you want a good design.

In other words: on a pull request, when you see an extra piece of code, don’t automatically assume it violates YAGNI. Maybe it’s for design purposes.

I take the point, but also have to add something on my defense.

Continue reading