As you may know, the term CIB (or continuous integration and build) refers to the process of integrating code frequently (or on-demand) to reduce large integrations, complexity, and pain in the future and to make functional software readily available for testing and the customer. It provides development with immediate feedback on the success or failure of changes via an integration, full build, and smoke test of the product and reduces large integration efforts.
The benefits of CIB include:
- Integration ensures the integrity of your code baseline.
- Building frequently lets you and the customer know where things stand as a mark of value delivered.
- Continuous integration raises merging issues to the forefront more quickly for more expedient resolution.
- Frequent builds have fewer changed files which reduces the amount of time on debugging build issues and painful integrations.
- Working functionality provides continuous feedback.
- Can be applied to any project methodology (Agile, Waterfall, Hybrid, etc.)
- It is often easier said than done
- It requires a focus on areas broader than most folks realize (beyond just merge and build)
- May cause more churn than progress if not managed well
- Requires a mindset change, thinking in smaller units, bite-size tasks and continuous change
- Moves from event-driven model with ceremony to a continuous change model
- Adds stress and load to CM and build tools