Maneira fácil de envolver não programadores (ou seja, designers) no controle de versão?

13

Quais são algumas das principais maneiras de envolver sua equipe no uso do controle de versão durante o desenvolvimento, desenvolvimento web ou outro?

Recuso-me a trabalhar sem ele, o que significa que qualquer pessoa envolvida no projeto também deve usá-lo. É apenas uma boa prática.

GUIs como o Tower ajudaram, mas o conceito dele é recebido com raiva ('não é o meu trabalho!', Meio que atitude), timidez ou simplesmente não o usa (usando FTP em vez disso, contornando o controle de versão para dizer, desenvolvedor ou implantação) )

Edit: Eu deveria ter esclarecido um pouco que não me refiro apenas a imagens / PSDs.

Kevin
fonte
11
Faça com que seja fácil de usar ...
1
Acho que o Git é bem fácil depois que você passa alguns dias com ele e tem um consenso sobre como o desenvolvimento deve ser ... ainda tem sido um obstáculo maior para os outros.
Kevin
2
Um pouco a lembrar é que o controle e o backup de versão às vezes se fundem (embora sejam muito diferentes) e para um designer com dados binários; o backup já pode ser a norma e, portanto, é necessário entender o que ele está ganhando.
Aaron McIver
1
@ Kevin: O que é fácil, óbvio e intuitivo para um programador não é necessariamente algo desse tipo para outras pessoas, nem mesmo para outras pessoas inteligentes e criativas.
David Thornley
1
Envolva-se com um designer e envolva-o em particular no controle de versão. :)

Respostas:

11

Trabalho em uma equipe de desenvolvedores e designers e todos usamos o controle de versão. Para os designers, é uma merda.

O compartilhamento / backup de arquivo sempre é igual ao Controle de Versão

Quando voce diz:

Recuso-me a trabalhar sem ele, o que significa que qualquer pessoa envolvida no projeto também deve usá-lo. É apenas uma boa prática.

Você precisa estar ciente das armadilhas do uso do controle de versão com dados binários:

  • Substituição : Se dois designers estiverem trabalhando no mesmo arquivo, o segundo a confirmar substituirá as alterações da primeira como a versão atual. A única maneira de evitar isso é o bloqueio ou a comunicação constante sobre quem está fazendo o que com qual arquivo, os quais podem prejudicar o fluxo de trabalho de sua equipe.
  • Mesclagem : a mesclagem assistida por ferramenta é inexistente em dados binários. A fusão manual é dolorosa e propensa a grandes quantidades de erros.
  • Inchaço do repositório: Os sistemas de VC armazenam apenas linhas alteradas para arquivos de texto. Isso não é possível com dados binários, pois o arquivo inteiro terá uma aparência diferente do sistema do VC. Isso significa que, enquanto 20 versões de um arquivo de texto de 10 KB podem ocupar apenas 20 KB, 20 versões de um arquivo de 1 MB provavelmente levarão mais perto de 20 MB. Uma equipe de design de tamanho moderado pode gerar facilmente muitas revisões em dezenas de arquivos binários. Seu departamento de TI poderá em breve odiá-lo pelos requisitos de armazenamento e, possivelmente, até mais memória / CPU que seu servidor de VC terá.

    Você e outros desenvolvedores também podem odiar em breve quanto tempo demoram os checkouts ou atualizações, a menos que você configure uma organização de repositório muito boa para evitar os arquivos binários.

  • Benefício reduzido : Seus designers raramente, se alguma vez, retornam às versões anteriores de arquivos binários, porque 1) não é uma maneira fácil de verificar o conteúdo de uma versão anterior 2) não é uma maneira fácil de mesclá-lo de qualquer maneira e, o mais importante, 3) eles não funcionam dessa maneira - eles são usados ​​para criar versões alternativas de alguns gráficos que ainda podem ser úteis nos próprios arquivos de produção.

Para o seu código, você absolutamente deve usar o VC e tem razão em exigi-lo.

Mas você precisa verificar a suposição de que isso significa que todos também devem usá-lo, e também se é uma boa prática para designers (embora o backup seja). Você deve armazenar os recursos gráficos finais exigidos pelo seu site / aplicativo no seu VC, mas, para arquivos de produção, pode não ser a solução certa.

Nicole
fonte
Em relação ao "inchaço do repositório": você pode tentar solucionar isso com os formatos de arquivo corretos. A documentação armazenada em um formato de linguagem de marcação de documentos e os gráficos armazenados em um formato de linguagem de marcação de gráficos em vez dos formatos binários equivalentes podem ajudar bastante. Obviamente, a viabilidade disso depende do projeto em questão e da vontade e competência das pessoas envolvidas. ;)
Baelnorn
5
A substituição não ocorre nos VCSs que valem nada. O que acontece é que você tem duas versões do mesmo arquivo. Sim, o HEAD do repositório terá o último salvamento; mas o trabalho do outro designer não se perde como se estivesse em um disco rígido compartilhado. Eu acho que é uma distinção importante.
Berin Loritsch
2
@Berin: Isso é verdade, mas um dos benefícios do VCS moderno é que duas pessoas podem trabalhar na mesma coisa ao mesmo tempo e muito do trabalho de reconciliação é automático. No entanto, com um arquivo binário em que não há processo de mesclagem significativo, isso não é possível. Além disso, o chefe do repositório é aquele que as pessoas consideram "real".
jprete
1
Como o ciclo de vida do código-fonte e da documentação do design difere, certifique-se de usar repositórios separados para eles. Não concordo que os repositórios sejam ruins para designers; passa mais tempo pensando e modelando, sem fazer pequenas alterações nos documentos. Também estabelecemos uma regra para proibir a mesclagem automática (em todos os arquivos armazenados nos repositórios) e, portanto, temos bloqueio obrigatório para edição. Combinado com uma boa comunicação da equipe, isso evita muitas desvantagens que você menciona.
RSP
1
Você está completamente errado, por exemplo: Substituir - isso não é um problema de controle de versão; pelo contrário, ajuda a detectá-lo. Os sistemas de VC armazenam apenas linhas alteradas para arquivos de texto. - Falso para git.
Maaartinus 12/03
4

Recuso-me a trabalhar sem ele, o que significa que qualquer pessoa envolvida no projeto também deve usá-lo. É apenas uma boa prática.

Essa é uma ótima atitude, lá em cima com 'não é o meu trabalho!' :-)

A melhor maneira de obter adesão é usar algo como o TortoiseGit ou o TortoiseSVN para integrar o controle de versão ao Explorer (assumindo o Windows). Leva tempo para obter benefícios reais se você não estiver acostumado ao paradigma de controle de versão. Tartaruga, pelo menos, facilita o trabalho com VCS com o mouse. Basta um simples "clique direito -> check-in".

Por esse motivo, tenho procurado implementar um controle de versão transparente no TortoiseGit em todos os arquivos fechados. Se você fornecer a alguém um ramo no qual trabalhar e cada gravação / fechamento se tornar uma operação de confirmação, em algum momento você, como desenvolvedor, poderá mesclar o seu ramo sem se preocupar com a consistência de todo o repositório, e eles poderão continuar com o negócios de fazer o que fazem sem ter que saber sobre o controle de versão.

Eu tenho esse mesmo problema com um enorme conjunto de documentos de auditoria que não consigo levar as pessoas ao controle de versão; portanto, temos 50 versões do mesmo documento flutuando que são sutilmente diferentes.

Chris K
fonte
4

A maneira de abordar esta questão é configurar um sistema de compilação (como Hudson ), que usa o sistema de controle de versão para recuperar as fontes de compilação e torná-lo uma regra de projeto que apenas artefactos que são um entregues pelo sistema de compilação está indo para a equipe de teste e eventualmente implantado no site do cliente.

Deixe bem claro que, no que diz respeito ao processo do projeto, qualquer coisa que não venha da compilação é privada apenas para os desenvolvedores; contanto que o trabalho de alguém não seja aceito na compilação, é possível que não exista.

rsp
fonte
2

Ilustre as vantagens:

  • Mostre a eles como eles podem economizar tempo, permitindo que todos compartilhem trabalho e acessem um local central.
  • Mostre a eles como isso permite que os designers trabalhem em diferentes partes do projeto ao mesmo tempo e os mesclem novamente.
  • Mostre a eles como eles podem marcar e criar uma versão mais antiga de um aplicativo para teste ou solução de problemas.
  • Mostre a eles como eles podem mexer com um design para experimentação e, em seguida, atualize o projeto e não mantenha as alterações, se não quiserem.
  • Mostre-lhes como eles podem ver o que aconteceu ao longo do tempo.
jzd
fonte
1
-1 Tratava-se de envolver não programadores; a lista aparece voltada para um programador. Se você modificar sua resposta, certamente removerei o voto inativo ...
Aaron McIver
1
Eu acho que você perdeu a parte "para não programadores". Todas as tarefas que você mencionou são tarefas do programador.
Erik Funkenbusch
Desculpe, acabei de ler a pergunta, não o título. Vou editar a resposta.
jzd
1 Removido ...
Aaron McIver
1

"Não é meu trabalho" sobre controle de versão é uma atitude sensata de um não programador.

Crie um sistema de controle de versão tão simples e invisível quanto o Dropbox para sincronização ou o Time Machine para backup.

Deveria funcionar. Sem check-out, sem confirmação. Basta colocar os arquivos na pasta do projeto.

mouviciel
fonte
1

Estou usando o tortoiseHG / mercurial com a nova senhora do site, sem problemas por lá. Não fazer check-out torna tudo muito simples e pressiona a pessoa que realmente precisa garantir que os arquivos sejam sincronizados. Nem parece "mais uma coisa a fazer", é apenas "ok, vou fazer uma demonstração no site, então preciso pedir a Peter para ressincronizar as alterações". e isso não é problema.

Eu não tinha experiência com mercurial antes, usamos o VSS e eu nunca desejaria isso a ninguém pelo controle de origem do site. Eu tentei uma vez e não culpo ninguém por não querer usá-lo.

Peter Turner
fonte
0

Eu diria que o uso de clones de tartaruga * é mais simples. Ou integre o controle de versão, no IDE ou o que for.

Coiote21
fonte