OpenMake Meister

Improving Continuous Integration using Build Avoidance

 

To fully support a development process where incremental changes are encouraged, the Build itself must become incremental.  If not, your Continuous Integration process is impeded by a Build process that was written to support a waterfall development methodology,  that must build all binaries each time – the "big bang" approach.

 

When using OpenMake Meister for powering Build, the default Build is an incremental Build.  Nothing special is required to execute a build using Build Avoidance.  Your Build will automatically be executed on an incremental basis reducing your Build times down from hours to minutes.

 

Incremental Builds substantially decrease Build times by avoiding the execution of Build steps that are not needed.  This is a critical component of lean methodologies such as Agile Unified Process (Agile UP), Scrum, and Rhythm (Unified Build Infrastructure).  If you are looking for ways to improve Build times, the use of incremental Build will allow you to reach your goal.

Incremental Builds determine all dependent relationships in the Build regardless of language.  For Java, an incremental Build determines the dependency of all .jar, .war and .ear files including jar files that are used by other jar files and their dependent java source files.   Similarly, in more traditional languages such as C/C++ or COBOL, dependency relationships are discovered for all included headers, copybooks, etc.

 

Note:  If you choose to always execute Builds using a "clean all" option, pass the following parameters to the om process when executing your Builds:

     -a or clean all

If the clean all parameter is not passed, your Build will be performed in the most efficient manner using Build Avoidance.