Advice: don’t overwhelm with configurability
Today I want to talk about configurability. I was installing our main project onto a new server and using our self-checker tool to verify the installation. During that process we talked with other developer and realized that path for our minifier output is configurable, yet checker won’t recognize that and will always check default one.
Which brings us basically to two choices – improve checker (more obvious) or make this path hardcoded (less obvious). When I thought about this more and talked about this with the colleague, we realized that this setting has never being changed on any of our installations. So we have a flexibility which we don’t need. And more than that – we have to maintain that flexibility, and yet it’s not going to pay out.
Another thing to think about is when config goes into client’s hands. It’s not the case for all, but sometimes it happens and client has to configurate the system. The more settings and options the client has, the harder it is to maintain the config or even understand which option means what.
So I make a rule:
When you want to make something configurable – think in which case it might be needed. If there is no realistic scenario – hardcode it