Successful Highly Configurable Software projects use hierarchical properties in conjunction with key configuration points (KCPs) to produce a single set of deliverables for all environments, preferably using an automated build process. The build process can be simplified, unified, and streamlined following the suggested practices in this article in conjunction with our prior Highly Configurable Software articles available at sofiac.us.
All build processes must produce a single set of deliverables that are then used across all environments. Highly Configurable Software facilitates this single set of deliverables, and it fixes instances where teams are building different deliverables per environment, unpacking and modifying the deliverables in each environment, or copying and modifying a separate set of configuration files for each environment. Ideally, this single set of deliverables should be placed in a Centralized Management Repository where it can be version controlled and easily distributed.
Automated builds should be simple such that everyone on the team can perform them. The configuration management strategy should be included in the automated build process. Continuous Integration (CI) tools, like Jenkins, allow for continuous building of the code. These deliverables are easier to manage when stored in a Central Management Repository. This ties directly into our next article, Automated Deployments, so please continue this journey with us.