This document discusses configuration management and version numbers. It explains that a build takes source code and converts it into artifacts that can run on end-user workstations. Builds are needed to add functionality, improve performance, or implement other requirements. Managing builds is important as applications grow more complex with multiple variants incorporating different property values like version, build type, OS, localization, platform, and maturity. Variants represent the output of a build with a specific set of property values. The version number can incorporate all variant properties to uniquely identify each variant.