Some code you write needs configuration information when you build and install it. For example, consider a program that can use any of several optional and conflicting plug-ins. The user must decide what to use when she builds the module, especially if some of the dependencies themselves have dependencies. When you run your tests and the code in general, having this information available in one spot is very valuableyou can avoid expensive and tricky checks if you hide everything behind a single, consistent interface. How do you collect and store this information? Ask the user, and then write it into a simple configuration module!