Normalmente, cada membro da equipe faz todo o trabalho em seu workbench individual, isolado dos outros. Eventualmente, eles desejarão compartilhar seu trabalho com os outros e obter as alterações de seus colegas de equipe. Isso é feito através dos fluxos.
Os fluxos são o local onde uma equipe compartilha e integra seu trabalho contínuo.
O fluxo pode ser tido como uma área de trabalho compartilhada que é atualizada pelos membros da equipe enquanto fazem alterações no projeto. Esse gabarito permite aos indivíduos trabalhar em um projeto em equipe, compartilhar seu trabalho com outros durante a realização de alterações e acessar o trabalho de outros durante o desenvolvimento do projeto.
Enquanto os membros das equipes produzem novo trabalho, eles o compartilham liberando essas alterações no fluxo. Da mesma forma, quando desejam obter o trabalho mais recente disponível, eles capturam as alterações no fluxo. Assim, o fluxo está constantemente sendo alterado, avançando conforme os membros das equipes submetem novo trabalho.
O fluxo representa efetivamente o estado atual do projeto. Em qualquer ponto, um membro da equipe pode alcançar o fluxo para captura e saber que está atualizado.
Modelo de Programação de Equipe
Os sistemas de controle de versão fornecem dois recursos importantes requeridos para trabalhar em uma equipe:
um histórico do trabalho submetido pela equipe
uma maneira de coordenar e integrar esse trabalho.
A manutenção do histórico é importante porque cada um pode comparar o trabalho atual com o anterior, reverter para o trabalho mais antigo que for melhor, etc. A coordenação do trabalho é essencial para que exista uma definição do estado atual do projeto contendo o trabalho integrado da equipe. Essa coordenação é fornecida através do gabarito de fluxo.
Um gabarito otimista é aquele no qual qualquer membro da equipe possa fazer alterações em qualquer recurso ao qual tenha acesso. Como dois membros da equipe podem liberar no fluxo as alterações para o mesmo recurso, poderão ocorrer conflitos os quais precisarão ser resolvidos. Esse gabarito é chamado de otimista porque assume que os conflitos são raros.
Geralmente, os recursos não existem isoladamente: eles contêm, normalmente, dependências implícitas ou explícitas em outros recursos. Por exemplo, as Web pages possuem links para outras Web pages e o código fonte possui referências a artefatos descritos em outros recursos do código fonte. Nenhum recurso é uma ilha.
Conforme os recursos são liberados no fluxo, essas dependências podem ser afetadas. Assegurando-se de que a integridade das dependências é importante porque o fluxo representa o estado atual do projeto: em qualquer ponto, um membro da equipe poderá pegar o conteúdo do fluxo como base para novo trabalho.
Portanto, o fluxo de trabalho ideal é aquele no qual a integridade do fluxo é preservada.
O fluxo de trabalho ideal prossegue da seguinte maneira:
Iniciar a atualização: Antes de começar o trabalho, mantenha-se atualizado com o estado atual do fluxo. Se tiver certeza de que não haja trabalho local pelo qual esteja interessado, a maneira mais rápida de manter-se atualizado será selecionar os projetos nos quais estiver interessado no fluxo e selecionar "Incluir na Área de Trabalho". Os recursos do fluxo sobreporão totalmente seus recursos locais.
Fazer alterações: Trabalhe localmente no workbench criando novos recursos, modificando recursos existentes, salvando localmente durante o trabalho.
Sincronizar: Quando estiver pronto para liberar o trabalho, sincronize-se com o fluxo.
Capturar: Examine alterações de entrada e as inclua no workbench local. Isso permite determinar se há alterações que podem afetar a integridade do que você está prestes a liberar. Resolva os conflitos. Reteste, execute verificadores de integridade (ou seja, verifique se há links de hipertexto interrompidos, assegure-se de que o código compile, etc.).
Liberar: Agora que você está certo de que as alterações estão bem integradas com o conteúdo mais recente do fluxo, libere-as no fluxo. Por segurança, repita a etapa 4 se houver novamente novas alterações de entrada.
Naturalmente, esse é um fluxo de trabalho ideal. Sob determinadas condições você pode ficar seguro de que as alterações de entrada não o afetarão e escolher liberar sem capturar. Entretanto, é aconselhável que os membros da equipe esforcem-se para seguir um fluxo semelhante ao acima para verificarem se a integridade do fluxo não foi comprometida acidentalmente.