Programação de pares e ISO 27001


16

Trabalho com uma equipe de programação eXtreme e faço programação em pares há mais de 7 anos em um ambiente Windows. Quando começamos a fazer isso, alguém fazia login com suas credenciais do Windows e, portanto, todo o acesso aos recursos do domínio e, mais especificamente, o controle de versão, seria responsável perante esse usuário do Windows. Eventualmente, evoluímos para ter contas de emparelhamento de janelas para estações de emparelhamento específicas (por exemplo, pairA, pairB, PairC, etc.). Todos os desenvolvedores conhecem as senhas dessas contas. A responsabilidade pelas confirmações (check-ins) é alcançada colocando as iniciais dos programadores no comentário durante a confirmação.

Até agora, isso funcionou bem para nós, mas minha empresa atualmente está passando por uma auditoria da ISO 27001 e isso foi sinalizado pelo auditor como um risco. Eu tenho várias soluções possíveis, como criar uma conta de emparelhamento para cada combinação de pares, mas eu realmente gostaria de saber se mais alguém encontrou esse problema e como o resolveu.

Que solução foi aceitável pelos auditores?


11
Eu consideraria que a maioria das pessoas que emprega práticas de programação de pares acha que tudo o que a ISO faz é o formato da data e as codificações de caracteres.
Lars Viklund

6
Por que você precisa ter contas emparelhadas? Não funcionaria para manter contas individuais nas quais você pode fazer login em qualquer máquina?
Garrett Hall

Você não pode usar contas individuais porque o que acontece se alguém entra no trabalho mais cedo / vai ao banheiro etc e a máquina está conectada como outro usuário?
John Sibly

@JohnSibly Você quer dizer que deseja continuar com o trabalho em andamento nessa conta? Caso contrário, você poderá abrir outra sessão no computador como seu próprio usuário.
Sinjo 24/07/12

2
@JohnSibly, o driver efetua logoff e permite que o par faça logon. Se eles forem ao banheiro, tranque a máquina se não confiar em seus colegas. No entanto, nenhuma confiança é um problema maior que deve ser corrigido.
CaffGeek

Respostas:


13

Eu diria que os auditores preferem que os desenvolvedores efetuem login como eles mesmos e não como um "par" com senha compartilhada. O risco deve ser óbvio - um desenvolvedor adiciona um código malicioso como "PairA" e coloca as iniciais de outra pessoa no comentário (ou não o comenta). Como você rastreia o desenvolvedor mal-intencionado?

Eu recomendo que quem estiver dirigindo primeiro (em uma sessão) faça logon com seu próprio ID e o par continue colocando as duas iniciais nos comentários - dessa forma, o código permanecerá rastreável para um desenvolvedor real.


+1, é isso que é feito na minha empresa. Temos a opção de revisão de código por pares ou programação de pares. O caso de programação de pares é apenas um caso especial de revisão por pares, em que o mesmo tem revisado continuamente enquanto o código foi escrito.
Daniel Pryden

@ Daniel Daniel obrigado por compartilhar sua experiência. Quando começamos o emparelhamento, era o motorista que fazia o login. No entanto, nossas sessões de emparelhamento agora são mais promíscuas e muitas vezes um par é trocado antes que uma tarefa seja totalmente concluída. Embora isso não seja o ideal, às vezes é necessário orquestrar nossos swaps, pois todos são obrigados a emparelhar no código de produção. Isso significa que o 'driver' original precisa ir embora e, assim, sair. Podemos fazer o check-in desse código sem eles, mas a interrupção do par, que está potencialmente no meio da depuração do aplicativo, não deve ser tomada de ânimo leve.
Martin Hughes

7

Eu manteria as contas como estão, normalmente apenas uma pessoa está dirigindo e, mesmo que a outra pessoa use a máquina (não oficialmente), a pessoa conectada ainda deve estar ciente do que está acontecendo em sua máquina.

Os check-ins ainda precisariam de comentários para mostrar quem era o par.


Você quer dizer manter as contas em pares ("mantenha as contas como estão") ou use contas individuais ("a pessoa conectada")?
Caleb

@Caleb, indivíduo como a pessoa logado quem está fazendo a condução
CaffGeek

6

Em vez de criar contas separadas para que o trabalho não seja bloqueado para um usuário possivelmente ausente, use seu sistema de controle de versão. Quando um par começar a funcionar, crie uma ramificação de tarefas. Confirme o código na ramificação da tarefa sempre que os testes forem aprovados. Quando a tarefa estiver concluída, volte e feche o ramo da tarefa.


5

Até agora, isso funcionou bem para nós, mas minha empresa está passando por uma auditoria ISO 27001

ISO 27001 ou não, seu sistema atual funciona apenas porque você é uma pequena empresa onde há um alto grau de comunicação e confiança mútua. Esse tipo de coisa não aumenta muito bem, então você provavelmente teria que considerar outras opções em algum momento no futuro.

Criar uma conta separada para cada par possível parece ainda menos prático: você precisaria de 90 contas para um grupo de 10 desenvolvedores, e cada um desses 10 desenvolvedores precisaria conhecer 9 combinações diferentes de login / senha.

A única solução prática é usar contas individuais, como outras pessoas sugeriram, e rastrear a identidade da segunda pessoa do par de outra maneira (comentar na confirmação do controle de versão, campo no sistema de rastreamento de problemas etc.).


2

Pelo bem de Pete, deixe que o membro que dirige o par assuma o crédito / responsabilidade pelo envio / confirmação. Da próxima vez que o outro membro irá dirigir. O "motorista" não fará nada que ele não concorde com o co-piloto.

A programação é um esforço colaborativo. Nenhuma escritura de programação é 100% individual. Não há necessidade de ser exigente, querendo refletir que um determinado envio / confirmação foi feito por Tom e Harry, e não apenas por Tom. Os benefícios da programação em pares valem a pena negligenciar essa nuance.

O auditor está certo, as contas de "pool" devem ser evitadas.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.