Hacker News new | past | comments | ask | show | jobs | submit login

Generality leads to bloat in software systems and increases complexity unnecessarily. As a general rule of thumb, software should be designed with the specific use-case in mind that applies to the current needs of the user. Generalisation should be delayed as long as possible in the design process. This is because the process itself reveals what would benefit from generalisation.



> Generality leads to bloat in software systems and increases complexity unnecessarily.

This is missing some qualifiers methinks. An interface is generic in that you don't have a concrete implementation, surely that can be used to decrease complexity rather than bloat it?


I'm thinking more in terms of what you put into that interface. Do you add features that you might need later? My approach would be no. You design your first interface with only what you need right now. And if you don't need an interface to do that, you bring in the interface later.




Join us for AI Startup School this June 16-17 in San Francisco!

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

Search: