Ever since we stopped build applications to run on specific machines there’s been a need for configuration to allow an application to operate in its environment. This leads to an inevitable question What do we configure? (it also leads to How do we configure this? but that tends to be a platform specific question). In practice what we tend to find is that either almost everything is hardcoded (and nothing can be changed), or just about everything can be configured (and the size of the configuration can outweigh the code that uses it). It’s not unusual to see both of...