Quando há vários desenvolvedores trabalhando na mesma aplicação, sempre há o risco de na geração do build haja incompatibilidades entre as várias modificações realizadas que impedem essa geração. Quanto antes esses problemas forem encontrados mais fácil será resolvê-los.

Integração contínua é o processo de geração de builds frequentemente (várias vezes ao dia) e somente quando o build é gerado corretamente e todo os testes automatizados passaram com sucesso é que a tarefa de integração está finalizada.

Qualquer pessoa deve ser capaz de numa máquina zerada, fazer o check out do código fonte do repositório, ativar um único comando e ter a aplicação funcionando completamente. Isso inclui os scripts de banco de dados e bibliotecas.

Cada desenvolvedor faz as modificações necessárias no código principal, cria os testes automatizados e cria o build integrando com os códigos de outros desenvolvedores. Caso ocorram erros de compilação, o desenvolvedor deve corrigi-los até a compilação ser feita com sucesso.

Integração contínua implica em comunicação contínua entre os desenvolvedores. Todos devem estar cientes do que os outros estão fazendo.

A regra é que todo desenvolvedor faça uma integração ao menos uma vez por dia. Quanto mais frequente for, mais fácil será localizar problemas de integração.

Essa regra estimula que os desenvolvedores trabalhem com tarefas menores que possam ser realizadas totalmente em um dia ou em poucas horas.

Para evitar diferenças de ambiente que possam causar problemas de integração, é recomendável utilizar um servidor de integração onde um dos desenvolvedores é responsável pela integração diária (no caso de integração manual) ou utiliza-se um servidor automático de integração como o CruiseControl que monitora o repositório de fontes e a cada commit executa o build e envia o relatório de erros para o desenvolvedor.

O tempo de criação de build não deve ser maior do que 10 minutos. Cada minuto de um build é um minuto do tempo do desenvolvedor, portanto vale o esforço de criar scripts de build que agilizem o processo.