Motorista e navegador em ação (versão norte-coreana da metodologia)De um tradutor: Hoje estamos publicando
um artigo para você por
Andrew Sprul , especialista em ciência de dados. Ele fala sobre os benefícios de emparelhar programadores no mesmo projeto.
Costumo ouvir pessoas dizerem que trabalham melhor sozinhas. Entendo que algumas idéias e métodos adequados para uma pessoa não são adequados para outra. Mas, no entanto, o ditado "uma cabeça é boa e duas é melhor" está perto de mim. Abaixo do corte, há dois vídeos que mostram como duas pessoas podem trabalhar em uma única tarefa. Isso é apenas harmonia - literal e figurativamente.
A Skillbox recomenda: um curso prático de dois anos, "Sou um desenvolvedor Web PRO" .
Lembramos que: para todos os leitores de "Habr" - um desconto de 10.000 rublos ao se inscrever em qualquer curso Skillbox usando o código promocional "Habr".
Aqui está o segundo vídeo (o autor proibiu a incorporação de recursos de terceiros, mas definitivamente vale a pena dar uma olhada).
A música não é a única área em que a colaboração entre duas pessoas pode beneficiar um projeto comum. Há muito mais, como descrito pelo professor de sociologia da Universidade de Buffalo, Michael P. Farrell, em seu livro Círculos Colaborativos: Dinâmica da Amizade e Trabalho Criativo. Em particular, ele acredita que muitas grandes idéias apareceram em pessoas que trabalhavam em pares: poderiam ser cientistas, artistas, escritores.
Na pintura, é Monet e Renoir, por escrito - Tolkien e Lewis, em ciência - Creek e Watson ... Você pode listar por um longo tempo. Além disso, cerca da metade dos ganhadores do Nobel na categoria "Fisiologia e medicina" são equipes de duas pessoas.
Bem, atualmente, a “programação em pares”, que a Wikipedia descreve como metodologia ágil para desenvolvimento de software, que consiste em dois programadores trabalhando na mesma estação de trabalho, fornece excelentes resultados. Um deles, o motorista, escreve o código, o segundo, o observador, monitora o processo e lê cada linha digitada. Os programadores costumam mudar de função.
Esta técnica não está relacionada ao trabalho no modelo de "professor-aluno", estamos falando do trabalho conjunto de dois especialistas iguais. Um deles pode ter mais experiência, mas funciona da mesma maneira, os direitos são iguais. Em geral, a ideia é que duas pessoas encontrem uma solução mais rapidamente que uma.
Inicialmente, pode ser difícil para um casal funcionar sem problemas e, de fato, esse fluxo de trabalho parecerá ridículo para muitos. Mas aqui, como em outros lugares, é necessária experiência. Com o tempo, o trabalho está melhorando e o processo está ocorrendo sem problemas, quase sem problemas.

Repito, na programação em pares, existem dois papéis: motorista e navegador. A principal tarefa do primeiro é seguir os detalhes do código, implementar idéias, transformando-as em linhas de código. O motorista e o navegador devem discutir idéias e problemas.
O navegador presta atenção a cada linha digitada, e essa atenção não é dispersa, pois ele não precisa digitar texto. O principal objetivo do navegador é transmitir idéias claras ao motorista. O navegador deve fornecer ao motorista instruções com um certo nível de abstração para que ele possa implementá-las da maneira mais eficiente possível.

Se um motorista tiver uma ideia, o navegador e o driver poderão trocar de função. Isso ajuda os parceiros a trabalhar de forma síncrona. Compartilhar idéias é semelhante ao brainstorming, mas esse é um processo mais eficiente, mais a taxa de erros é reduzida (como mostrado no diagrama acima).
Eu posso aconselhar especialistas que trabalham em pares para interromper algumas vezes e fazer perguntas um ao outro. Isso ajuda a pensar em uma direção, entender um ao outro e trabalhar com eficiência.
Parear programação e fluxo de trabalho

Estudando a questão da programação em pares, descobri que existem várias estratégias para esse trabalho. Algumas das opções podem ser
encontradas aqui . Uma das estratégias mais interessantes é chamada Sparring de Ping Pong. Funciona da seguinte maneira:
- O programador A escreve um novo teste e vê que ele não funciona.
- O programador B adiciona o código necessário para passar no teste.
- O programador B escreve um novo teste e vê que ele não funciona.
- O programador A adiciona o código necessário para passar no teste.
- Volte.
Sim, ele não parece um fluxo de trabalho ideal, mas não saberemos quão eficaz é até tentarmos.
Recentemente, aprendi com um colega de classe que o Atom possui um pacote Teletype que permite que os desenvolvedores trabalhem juntos em tempo real, dando aos colegas acesso à área de trabalho. Isso é ainda melhor do que apenas sentar-se juntos na mesma estação de trabalho, pois permite que você esteja em condições mais confortáveis e menos distraído.
E não esqueça: os papéis que você precisa mudar ao longo do dia. No entanto, você não pode usar o timer, pois isso interferirá no fluxo de trabalho. Muitas pessoas pensam que você deve mudar de função dentro de um intervalo de 30 minutos. Mas tudo é subjetivo aqui.
O período de adaptação durante a transição de solteiros para programação em pares é semelhante ao consumo de pimenta. A primeira vez que tudo está errado, você não gosta. Mas quanto mais você come pimenta, mais cedo começa a gostar.
Em conclusão, o que foi dito
Uma vez que ouvi a frase: “Para que a idéia seja realizada em uma figura, é necessário que ela passe pelas mãos de outra pessoa. Esse tipo de programação é comunicação e colaboração. ” Parece-me que a comunicação e a cooperação são os dois componentes do trabalho bem-sucedido.
Eu mesmo sou mais produtivo quando trabalho em conjunto com alguém. Minha experiência como músico sugere que tocar em um conjunto é melhor do que ser um artista solo. Não é porque eu dependa de outra pessoa, mas minha confiança no sucesso aumenta quando vejo que o trabalho geral é mais eficaz. Agora eu tenho um navegador melhor que um motorista, mas estou melhorando gradualmente. Espero que este artigo ajude seus futuros projetos.
A Skillbox recomenda: