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).
CategoryExtremeProgramming