At my company I have seen a lot of bad software development practices over the years, so I have created a set of software development guidelines to help establish a set of best practices and baseline software requirements. I am publishing a series of experts from those guidelines here so that I might get some useful feedback that will help improve them.
Configuration options should be separated from the program. A program should be able to be configured using external configuration information whenever possible. This is especially true for file paths and network locations.
The location of the configuration information needs to be shared with the client services group so that they can create installation programs and assist in troubleshooting user issues.
Under no circumstances should configuration information be compiled into a software program. The configurable portions of the program should be read from a configuration file or other standard storage methods such as the Windows registry.
For interpreted software the configuration should be external to the code of the application, but in some cases it is also acceptable to have all the configuration variables changeable at the very beginning of the main file or routine. The configuration must be consolidated and not sprinkled through out the program.