Integration Machine

Context: Multiple development pairs in a team are working on a code base simultaneously and need to periodically (hourly to daily; ContinuousIntegration) integrate their code with the main code base.

Forces: Each integration should begin and end with clean (GreenBar) code. If two pairs are integrating simultaneously, they can break each other's tests and cause confusion.

Development environments can diverge, so it is useful to have an authentic standard platform so you don't hear "The tests all passed for me! What's your problem?"

Resolution: Serialize integration by making developers go to the IntegrationMachine to integrate their code and run tests. The software configuration on the IntegrationMachine is treated as a standard for the development environment, to avoid divergence in developers' workstations from being an issue.

Variation: An IntegrationToken, which serializes commits to the code base without providing an authentic configuration base. ("I need to integrate, who has the Rubber Chicken?") If your development environment is automatically built from a script, maybe YouArentGonnaNeedIt applies to a distinguished integration station.

RefactorToPattern form if you feel inclined.

From ExtremeProgrammingCorePractices (a support practice).


EditText of this page (last edited March 20, 2006) or FindPage with title or text search