O Facebook faz programação em pares
Resumo:
Neste artigo, discutirei o conceito de programação de pares e sua implementação correta. Também responderei 15 perguntas únicas relacionadas à programação de pares, fornecendo explicações detalhadas com base na experiência pessoal. A programação de pares não é sobre treinamento, mas uma abordagem colaborativa em que os idosos se lotam com o sênior e os juniores com o júnior. A programação de pares eficaz pode levar a uma comunicação e qualidade de código aprimoradas.
Pontos chave:
- A programação de pares não é sobre treinamento, mas uma abordagem colaborativa.
- Associar desenvolvedores seniores com desenvolvedores seniores e desenvolvedores juniores com desenvolvedores juniores.
- O emparelhamento eficaz ainda pode ocorrer entre um desenvolvedor sênior e júnior.
- O emparelhamento com um estagiário pode levar a experiências de aprendizado valiosas para ambas as partes.
- O foco da gerência na produtividade pode criar desafios na programação de pares.
- A programação de pares deve parecer um co-piloto, não um controlador de tráfego aéreo.
- A programação de pares não é equivalente a orientação.
- O emparelhamento permite feedback imediato e ajuda a identificar código excessivamente complexo.
- A comunicação eficaz durante a programação de pares é importante.
- A carga de trabalho deve ser compartilhada e os dois desenvolvedores devem contribuir.
- Conversas secundárias durante as sessões de emparelhamento podem ser perturbadoras.
- Nem todos os problemas requerem programação de pares, e o trabalho individual pode ser necessário.
- A programação de pares pode levar mais tempo, mas fornece revisão e colaboração instantâneas de pares.
- Os desenvolvedores juniores ainda podem aprender através da programação de pares, mas requer esforço e comunicação eficaz.
- Questionamento e experimento são essenciais para uma programação eficaz de pares.
Questões:
1. O que é programação de pares?
A programação de pares é uma abordagem colaborativa, onde dois desenvolvedores trabalham juntos na mesma tarefa.
2. Se os desenvolvedores seniores se unirem a desenvolvedores seniores e desenvolvedores juniores com desenvolvedores juniores?
Sim, emparelhar desenvolvedores seniores com desenvolvedores seniores e desenvolvedores juniores com desenvolvedores juniores garante uma colaboração eficaz.
3. Um par de desenvolvedores sênior com um desenvolvedor júnior?
Sim, embora não seja ideal para fins de treinamento, o emparelhamento eficaz ainda pode ocorrer entre um desenvolvedor sênior e júnior.
4. Como o emparelhamento com um estagiário pode ser benéfico?
O emparelhamento com um estagiário pode fornecer experiências de aprendizado valiosas para ambas as partes.
5. Que desafios podem surgir na programação de pares?
O foco da gerência na produtividade pode criar desafios e estresse na programação de pares.
6. Como deve parecer a programação se sente?
A programação de pares deve parecer um co-piloto em vez de um controlador de tráfego aéreo.
7. É a programação de pares equivalente à orientação?
Não, a programação de pares não é equivalente a orientação. É uma abordagem colaborativa entre iguais.
8. Quais são as vantagens da programação de pares?
A programação de pares permite feedback imediato, ajuda a identificar código complexo e melhora a comunicação.
9. Que tipo de comunicação é importante na programação de pares?
A comunicação eficaz, verbal e através do código, é essencial na programação de pares.
10. Se um desenvolvedor dominar a sessão de emparelhamento?
Não, a carga de trabalho deve ser compartilhada e ambos os desenvolvedores devem ter oportunidades iguais para contribuir.
11. Que desafios podem ser conversas adiantadas durante as sessões de emparelhamento criam?
Conversas secundárias podem ser perturbadoras e desviar o foco da tarefa principal em questão.
12. A programação de pares é adequada para todos os problemas?
Não, a programação de pares pode não ser adequada para todos os problemas, e às vezes é necessário trabalho individual.
13. Empare a programação leva mais tempo?
A programação de pares pode levar mais tempo do que a codificação sozinha, mas fornece uma revisão instantânea por pares e facilita a colaboração.
14. Os desenvolvedores juniores podem aprender através da programação de pares?
Sim, os desenvolvedores juniores podem aprender através da programação de pares, mas requer esforço e comunicação eficaz.
15. Que abordagem é essencial para uma programação eficaz de pares?
Questionamento, experimentação e participação ativamente são essenciais para uma programação de pares eficaz.
O Facebook faz programação em pares
Não tenho certeza de como responder objetivamente a esta pergunta. Você pode esclarecer o problema que está tentando resolver, tendo em mente que esta comunidade não suporta questões subjetivas?
Qual é a maneira correta de fazer a programação de pares?
Há tantas histórias em que sinto que estou codificando por alguém, e uma história que levaria 30 minutos para levar 3 horas, enquanto isso, questiono se os desenvolvedores mais juniores realmente aprendem.
99K 23 23 Badges de ouro 189 189 Crachás de prata 305 305 Crachás de bronze
perguntou 22 de fevereiro às 18:19
561 4 4 Crachás de prata 5 5 crachás de bronze
Não tenho certeza de como responder objetivamente a esta pergunta. Você pode esclarecer o problema que está tentando resolver, tendo em mente que esta comunidade não suporta questões subjetivas?
22 de fevereiro às 18:54
Param de programação != treinamento . Quando você se desenvolve em par, você deve emparelhar sênior com sênior e júnior com junior. Quando você faz treinamento, você deve emparelhar sênior com junior
23 de fevereiro às 9:21
Param de programação != Treinamento, no entanto, é possível emparelhar sênior e júnior. Certamente o treinamento vai acabar acontecendo e desacelerar as coisas. Mas isso vai acontecer de qualquer maneira. Não significa que o emparelhamento eficaz não pode acontecer.
23 de fevereiro às 15:16
Combinei com um estagiário que não tinha ideia de como nosso sistema funcionava. Precisávamos conversar com uma impressora e tinham código que enviou à impressora um comando que precisava ser recompilado toda vez que você mudou o comando. Eu decidi transformar isso em uma concha de comando. Explicou o que eu estava fazendo com o estagiário. Escreveu uma versão nua na frente dele. Tenho que apontar onde estava funcionando e eu estava cansado e disse: “Quero levá -lo daqui?” “Claro!”Ele fez ótimo. Poliram tudo bem então e lá.
23 de fevereiro às 15:19
@Antigamer parece que seu principal problema não está juniores diminuindo você. É uma administração sobre o estressamento da produtividade. Não sei dizer se são eles ou você. Lembre -se, eles realmente não têm idéia sobre as coisas técnicas. Mas se você sentir que está com baixo desempenho, eles sempre entendem e assumem que você está certo.
23 de fevereiro às 15:26
6 respostas 6
Se a programação de pares faz você se sentir como se fosse um controlador de tráfego aéreo tentando falar sobre um avião de aerona pilotado por um garoto inquieto de 12 anos, você está fazendo errado.
O motivo que está errado é porque você não está a quilômetros de distância em um rádio. Você está ali e pode pegar o teclado a qualquer momento. Deve parecer um co-piloto. Você não está dando controle porque precisa. Você está fazendo isso porque você pode.
Uma coisa de parecer a programação não é a orientação. Um relacionamento estilorito de professores parece muito diferente de duas pessoas trabalhando juntas como iguais, mesmo que alguém tenha significativamente mais experiência. Leva tempo para se acostumar para emparelhar a programação, então não se preocupe se parecer estranho no começo.
programação extrema.organização – programação de pares
O que você precisa entender é o ponto de emparelhar. Não é então você pode dizer “estávamos emparelhando”. É para que você possa se comunicar em sua linguagem natural: código.
O incrível aqui é que você pode digitar uma linha de código e perguntar: “Isso faz sentido?”Esse é um loop de traseiro de alimentação apertado. Você pode resolver quando o código é muito inteligente.
“Role para cima”, “Adicionar uma declaração de console”, “Vá para o arquivo x”, “você pode escrever y após a linha Z”, etc.
Se isso é tudo o que você vai dizer enquanto emparelhamos, basta pegar o teclado já. Em vez de colher me alimente uma caminhada, diga -me o que está acontecendo. Por que estamos fazendo isso. Como eu poderia saber fazer isso sozinho.
Diga -me isso. Não pegue o teclado, clique em alguns atalhos misteriosos do teclado e faça a mágica acontecer. Mostre -me como o truque funciona.
Além disso, não apenas dite toda a agenda. Esculpir o trabalho que posso fazer. Deixe -me pular e fazer parte disso. Inferno, você pode ter sorte e aprender algo comigo. O teclado deve estar deslizando para frente e para trás.
Conversas secundárias geralmente surgem durante as sessões de emparelhamento, distraindo -se do trabalho em questão
Oh, reserve um momento e seja um humano. Me convença, estou falando com alguém que me considera um humano.
Resolver problemas complexos geralmente leva muito mais tempo, porque muitos engenheiros precisam de tempo para baixo para realmente projetar uma solução
Verdadeiro. Alguns precisam de um tempo de cabeça gasto jogando lápis em telhas de teto. Alguns precisam de tempo de pato de borracha (uma placa de ressonância se você for do conjunto de cabelos prateados). A programação de pares não é para todos os problemas o tempo todo.
- Fazer isso em uma chamada leva mais tempo e geralmente resulta em paralisia de análise.
Sim, o emparelhamento pode levar mais tempo do que a codificação sozinha. Mas se você estiver fazendo certo, você também está recebendo uma revisão instantânea de pares informais, bem como alguns no local colaboração.
A cura fácil para a paralisia de análise é fazer algo estúpido e fazer as pessoas explicarem por que está errado. Itera nisso até você ficar sem errado.
Eu questiono se os desenvolvedores mais juniores realmente aprendem.
Continue questionando. Aprenda o que funciona e o que não funciona. Não há apenas uma maneira perfeita de fazer isso. Mas fazer isso apenas porque devemos fazer isso está definitivamente errado.
respondeu 22 de fevereiro às 18:57
Candied_orange Candied_orange
99K 23 23 Badges de ouro 189 189 Crachás de prata 305 305 Crachás de bronze
A cura fácil para a paralisia de análise é fazer algo estúpido e fazer as pessoas explicarem por que está errado. Itera nisso até você ficar sem errado. Isso é ouro. Funciona em qualquer situação. Treinando suas habilidades de design TDD e de baixo para cima, fazendo desafios tecnológicos no local ou decidindo entre 2 filmes que você certamente odiará, mas sua namorada não se importa. Apenas “faça algo”, gire a roda e deixe -se ser levado por inércia
22 de fevereiro às 21:43
“O incrível aqui é que você pode digitar uma linha de código e perguntar: “Isso faz sentido?”“E é por isso que a programação em pares é uma perda de tempo. Nenhum programador competente precisa perguntar isso sobre uma única linha de código. Você precisa perguntar isso sobre todo o bloco coerente de funcionalidade, não uma única linha – e você não tem isso até que o programador seja feito. É baseado inteiramente na crença de que a programação é a principal fonte de erros no produto final, e isso foi extensivamente provado como uma crença falsa.
23 de fevereiro às 8:53
@Graham com frequência, uma única linha é um bloco coerente. Às vezes, representa uma mudança para um único bloco, e quero saber se faz sentido no contexto. Outras vezes eu fiz algo inteligente, mas obvioso, e quero saber se ele merece um comentário detalhado ou um breve. Ser caridoso!
23 de fevereiro às 13:45
A ironia aqui é eu’estou recebendo feedback sobre uma única linha e desejando eu’D Consegui antes.
23 de fevereiro às 14:12
@Graham Estou realmente interessado no que você está dizendo sobre erros que não vêm principalmente do código -fonte – você tem uma citação (s) para isso, pois eu estaria interessado em aprender mais.
23 de fevereiro às 14:21
O padrão comum é que os desenvolvedores mais seniores geralmente acabam com mais desenvolvedores juniores ao longo de todo o processo
Primeiro de tudo, a programação de pares não implica inerentemente aulas. Com um desequilíbrio de antiguidade suficiente, você deve aceitar que um pedaço do tempo é gasto treinamento em vez de trabalhar. Isso já deve mudar suas expectativas de resultados imediatos.
Se você deseja que sua programação de pares seja completamente focada na entrega, não aprendendo, então você deve emparelhar desenvolvedores iguais com experiência igual ou o mais próximo possível. Você não está fazendo isso, então está inerentemente prejudicando seus idosos (por ter que ir no ritmo júnior) ou precisando instruir os juniores sobre o trabalho (já que está sendo feito no ritmo de um idoso).
Basicamente codificando enquanto olha para um screenshare. “Role para cima”, “Adicionar uma declaração de console”, “Vá para o arquivo x”, “você pode escrever y após a linha Z”, etc.
Isso não é programação de pares, é ditando. É improdutivo como mecanismo de entrega (é preciso duas pessoas para seguir uma linha de pensamento) e como uma ferramenta de aprendizado (cegando cegamente como você é dito não promove o entendimento).
Eu reconsideraria seriamente a antiguidade de um desenvolvedor se eles só pudessem se concentrar em como corrigir um problema e não conseguirem orientar corretamente um desenvolvedor júnior. Essa é a diferença distintiva entre um júnior (pode fazer o trabalho, mas precisa de supervisão), Medior (pode fazer seu próprio trabalho sem muita supervisão) e perfil sênior (pode fazer seu próprio trabalho e supervisionar os outros).
Conversas secundárias geralmente surgem durante as sessões de emparelhamento, distraindo -se do trabalho em questão
Conversas não relacionadas ao trabalho teriam acontecido se essas duas pessoas se sentassem adjacentes sem programação de pares e, portanto, não fosse relevante ao julgar esse valor da programação de pares.
As conversas relacionadas ao trabalho são Precisamente o ponto de programação de pares; Ele permite que o par transmita seus conhecimentos um para o outro e/ou os ajuda a trabalhar juntos para aprender algo novo para os dois.
A resolução de problemas complexos geralmente leva muito mais tempo, porque muitos engenheiros precisam de tempo para baixo para realmente projetar uma solução – fazê -lo em uma chamada leva mais tempo e geralmente resulta em paralisia de análise.
Primeiro de tudo, não é chamado de design de pares. Você não pode simplesmente agrupar arbitrariamente esses dois.
Em segundo lugar, a programação de pares não implica que ambos os conjuntos de olhos estão olhando para a mesma coisa ao mesmo tempo, o tempo todo e nada mais. É perfeitamente possível para o veterano fazer outra coisa, seja observando o design da próxima tarefa, lendo documentação, . Enquanto o júnior executa uma tarefa mais trivial, onde o veterano não é necessário ou é capaz de manipular as duas atividades ao mesmo tempo.
A base para sua pergunta parece confusa. Você implementou um sistema, estruturou -o de uma maneira específica, e apenas então Você começou a perceber que o sistema não ajuda com as coisas que são aparentemente importantes para você. Isso está colocando o carrinho antes do cavalo.
Faz mais sentido entender primeiro o problema que você está tentando resolver, depois procure um sistema, confirme que ele realmente resolveria o problema e só então começará a implementá -lo.
respondeu 22 de fevereiro às 22:25
41.6k 8 8 Crachás de ouro 83 83 Crachás de prata 115 115 Crachás de bronze
“Primeiro de tudo, não é chamado de design de pares. Você não pode simplesmente agrupar arbitrariamente esses dois.” — Eu acredito que isso corta direto ao coração da pergunta do OP. Nem toda tarefa ou interação é apropriada para programação de pares.
24 de fevereiro às 15:38
Eu acho que dois pilotos na aeronave são os mais próximos que eu consigo pensar, então vamos ter uma visão geral como os problemas que você aborda são resolvidos lá. Na aviação, depois há dois pilotos, há um piloto voando e o monitoramento piloto. O monitoramento piloto também está totalmente no curso e pode assumir o controle a qualquer momento. Isso funciona muito bem e é improvável que mude, mesmo que tecnicamente essas aeronaves possam ser transportadas por um único humano.
Eu não sou eu mesmo um piloto, sou engenheiro de software com longa experiência. Mas eu costumava ser bastante ativo na troca da pilha de aviação, lendo as perguntas e respostas publicadas por pilotos reais, então acho que deve ser capaz de fornecer uma visão geral. Pode ser útil para nós.
Cockpit estéril
Conversas não relacionadas ao voo são estritamente proibidas no cockpit. O mesmo deve ser entre os programadores de pares. Tão simples como isso.
Decisões
Pequenas decisões são tomadas pelo piloto voando, mas os pilotos se comunicam ao tomar decisões maiores. Os pilotos também seguem listas de verificação que descrevem muitas ações padrão que devem executar. Se algo der errado, os pilotos retiram -se “Lista de verificação de velocidade aérea não confiável” e seguem as etapas lá, em vez de começar de longa discussão que deve ser feita. Se o capitão tem certeza absoluta, ele tem uma prioridade para decidir rapidamente, substituindo quaisquer regras, quaisquer direções da torre de controle e sem discussão, mas isso não é feito levemente. Quando o capitão desconsidera as instruções da torre de controle, ele deve contar sobre isso imediatamente.
Por isso, espero que o desenvolvedor principal tenha o direito de dizer algo como “a abordagem X cria um código muito melhor aqui exatamente aqui, então o usamos, mesmo que as regras gerais exigirem algo diferente”, mas isso não deve vir com muita frequência.
Divisão de Trabalho
Os pilotos dividem o tempo que cada um deles controla a aeronave mais ou menos igualmente, mas há tarefas complicadas como voar 747 com apenas três motores ou aterrissando no aeroporto de Heraklion, onde é oficialmente afirmado que “o capitão deve fazer o voo”. Caso contrário, ambos os pilotos são totalmente treinados e qualificados para voar nessa aeronave e não precisam de micro-gerenciamento muito detalhado.
Por isso, eu esperaria que o programador de pares ativos com o código digite e role como ele quiser, com outro apenas observando e apenas interferindo se ele tiver coisa notável a dizer. Eu também não espero que um dos programadores esteja sempre digitando e outro sempre assistindo.
Treinamento do capitão
Finalmente, para entender melhor o papel, um novo capitão é treinado pela primeira vez com outro capitão mais experiente que é um “capitão real” da aeronave, mas enquanto o vôo corre bem, desempenha o papel do segundo piloto. Depois disso, o jovem capitão está emparelhado para voar com o segundo piloto do segundo piloto (no horário de voo). Só então o capitão é considerado pronto para voar com alguém que ele pode ver como menos capaz.
Controles duplos
As aeronaves destinadas a ser pilotadas por dois pilotos normalmente têm controles duplos. Para seguir esse padrão, é uma boa ideia conectar pelo menos o segundo mouse, se não o teclado. Isso permite passar a “direção” entre os desenvolvedores muito rapidamente.
O Facebook faz programação em pares
О эээ сйранibus
Ы з ззарегиgléria. С помощью этой страницы мы сможем определить, что запросы отправляете именно вы, а не робот. Почpels эээ моогitu произойth?
Эта страница отображается в тех случаях, когда автоматическими системами Google регистрируются исходящие из вашей сети запросы, которые нарушают Условия использования. Ponto. Ээth момо номттаая и оозз илэз и ээ и эз и эз и з и ззз и зз и ээз и ээз иth ээ эth ээзз эth эзз иthлз ио и зз и иth эз иээ эээо иth эз эээ ээо ээоо иth иэзз эth эзт эth эз ио эээ иth эз иэз иthлзз иоз ил иээ иээо иэээ иээо иth ио иээ эth иэ иээ эth иэ иээ эth ио иэ ээог seguir.
Ит и и и и и и и и и чззжfia м ирржжжfia м иржжжжfia м мжжжжжж<ь м м иржжжfia. não. Если вы используете общий доступ в Интернет, проблема может быть с компьютером с таким же IP-адресом, как у вас. Орратитеitivamente к с о и и с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с а с с а с а а а а а а а а а а а а а а а а а а а а а а а а а а а а а а а а а а а а а а а а а а а а а а а а а а а а а а а а а а а а а а а ”. ПодробнÉ.
Проверка по слову может также появляться, если вы вводите сложные запросы, обычно распространяемые автоматизированными системами, или же вводите запросы очень часто.
Facebook e o mito de uma cultura de codificação individual
Lançamos um novo boletim informativo diário de e -mail! Agora você pode receber um resumo gratuito dos artigos mais recentes do TNS em sua caixa de entrada todos os dias. Registre-se agora, nunca perca uma história, sempre fique no conhecimento.
Em um post recente sobre cultura de engenharia, o engenheiro de software do Facebook Pierre Raynaud-Richard compartilhou informações sobre como a gigante da mídia social’s dev cultura promove a colaboração e incentiva o orgulho do código que eles criam.
Crucial para Raynaud-Richard’o tratado é o seu desmembramento do ‘Propriedade de código individual’ Mantra. “Muitas empresas de desenvolvimento de software acreditam e praticam “Propriedade de código individual.” Isso pode não parecer um princípio tão fundamental, mas na verdade ajuda bastante a definir como uma organização de software funciona,” escreve Raynaud-Richard.
Enquanto está em face disso, a abordagem parece incentivar especialistas internos orgulhosamente, criando orgulhosamente código escrito e menos buggy, o impacto real para muitas empresas é que ele sufoca a inovação e Wilts Developers Skills Growth Growth. Raynaud-Richard diz que a abordagem desencoraja a inovação da empresa, à medida que os desenvolvedores acabam favorecendo o status quo: com o tempo, eles defendem a base de código que construíram e têm um viés implícito em relação a ele, incapaz de se adaptar a novas oportunidades ou desafios que exigem uma mudança radical na direção. Para desenvolvedores individuais, a abordagem atropela suas habilidades, crescimento de calçados de sapatos e restringindo sua capacidade de identificar oportunidades de alto impacto.
“A propriedade individual de código oferece alguns benefícios atraentes à primeira vista: Código melhor projetado, mantido e suportado e vida útil mais longa para componentes e serviços. Infelizmente, faz isso com o custo de introduzir uma definição rígida de funções, o que pode limitar a inovação e o crescimento da empresa e individual,” Conclui Raynaud-Richard.
Hoje’S AMBIENTES DE DESENVOLVIMENTO DE PATURA FILE, Equipes de software sabem que ninguém pode saber tudo. Mas muitos estão se voltando para meios mais criativos para incentivar uma cultura de engenharia flexível do que o aumento da Avenida de Especialização que o modelo de propriedade de código individual cultiva.
A cultura do dev startup
Orquestrado de startups de banco de dados como serviço tem uma equipe distribuída de 10 engenheiros trabalhando em cinco fusos horários, de acordo com o CTO e o co-fundador Ian Plosker.
“Nós Don’T geralmente tem propriedade de código,” diz Plosker. “Dito isto, os especialistas da área se desenvolvem naturalmente, geralmente começando com a pessoa que desenvolveu ou revisou o código.” Plosker diz que de tempos em tempos, engenheiros específicos podem acabar se especializando em tecnologias ou métodos específicos, e eles serão atraídos para projetos com mais frequência quando essa tecnologia em particular estiver sendo usada.
“Uma pessoa que possui o código é perigosa, porque toda a equipe pode se dar bem com não saber como as coisas funcionam. Felizmente, em uma organização menor, é mais difícil se safar com isso. É realmente importante que o conhecimento se difunda em torno da organização.”
Um dos principais processos usados no Orquestrate para evitar a propriedade individual do código são as análises de código: “As revisões de código são um dos locais mais cruciais para transferência de conhecimento, garante pelo menos uma segunda pessoa que sabe o código, avaliou que os casos de teste estão completos e sabe como a base de código funciona.”
Orquestrato fornece uma única interface de API e usuário para uma coleção de vários bancos de dados. Enquanto começa com os valores-chave, o produto agora permite vários formatos de pesquisa, incluindo texto completo, pedidos de tempo e pesquisas de gráfico. A última oferta tem sido um novo recurso de pesquisa geoespacial, que evitou a abordagem de propriedade individual do código à medida que foi desenvolvido:
“Usamos um pouco o GitHub, então você terá um desenvolvedor trabalhando em uma filial de recursos, como quando adicionamos os recursos de pesquisa geoespacial. Portanto, o engenheiro trabalhará em uma filial de recursos, eles abrem uma solicitação de tração para mesclar. Felizmente, eles adicionam todos os testes de unidade e integração, e que’s Quando a avaliação técnica profunda acontece.
“Se o recurso for importante, obtemos pelo menos dois pares de olhos nas coisas e o github permite comentar sobre linhas específicas como dizer ‘Ei, por que você fez assim?’
“Então, a conversa acontece lá, há muito conhecimento incorporado nas solicitações de tração.
“Uma vez totalmente revisado, nós o executamos e testamos.
“Temos algumas etapas para testes: internamente, temos uma ferramenta chamada Orquestrate Runner que pode construir uma pilha inteira de orquestrar em sua máquina (um servidor HTTP baseado em Java, o front end e todas essas coisas são divulgadas pela nossa ferramenta internamente). Que’é a primeira rodada de teste.
“Então todo compromisso no Github é administrado por Travis CI. Isso funciona muito bem para nós, e isso executará todos os nossos testes de unidade e testes de integração. Até giramos uma mini pilha de orquestramento dentro de Travis CI.
“Também usamos o HipChat, até criamos um bot em nosso Hipchat que pode nos dizer muito sobre nossa implantação de código. Após cada mestre de construção bem -sucedido, enviamos os enviados para o S3 no final da compilação Travis e, com base no número da compilação, podemos pedir ao nosso chatbot que implante esse código! Como, ‘Hey Prodbot, Implante o número 46 do ambiente de estadiamento da USC.’ Plosker também aponta para murmurar, um cliente de bate -papo que permite que qualquer uma das equipes do desenvolvedor faça perguntas um para o outro ou inicie bate -papos informais sobre padrões de codificação e opções de design.
Para promover a colaboração e a discussão em grupo sobre o novo design de recursos, o Orchestrate incentiva qualquer membro da equipe a criar uma proposta descrevendo a idéia:
“Antes de iniciarmos qualquer grande recurso, tende a acontecer que alguém se torne um campeão para esse recurso. Então, tendemos a gostar de escrever uma proposta para o recurso: aqui’s como funcionaria, aqui’é por isso que devemos fazê -lo, os desafios, as oportunidades … essas tendem a ser o Google Docs e toda a equipe funcionará nisso. Acontece muito orgânico.
“Por exemplo, agora estamos trabalhando na pesquisa de faceting, então há um documento que todo mundo está comentando. Neste ponto, já temos um pouco de conhecimento circulando.”
O negócio escalável
Serviço de menu e entrega de alimentos on -line Just Eat – que agora opera em 13 países e anunciou um crescimento de 58% na receita no primeiro semestre de 2014 – tem uma equipe de engenharia de cerca de 60 desenvolvedores em seus escritórios do Reino Unido sozinha. A empresa está vendo “Crescimento bastante substancial e rápido” exigindo que os desenvolvedores trabalhem juntos em dois locais de escritório e remotamente, de acordo com o líder técnico, Anton Jefcoate. “A taxa de crescimento nos levou a algumas boas práticas. As fundações já estavam lá, mas você pode’eu me afaste da cultura de engenharia que você promove quando estiver ampliando sua equipe de desenvolvimento.
“Nós’Dividiu nossas equipes de desenvolvimento em alguns grupos para enfrentar diferentes áreas: aplicativos de consumidores, aplicativos de negócios, desenvolvedores que trabalham em APIs.. A equipe da API é o núcleo de toda a plataforma. Portanto, as equipes da API são divididas e assumem o controle de partes específicas da plataforma.
“Qualquer novo projeto reunirá algumas pessoas da equipe de aplicativos nativos e orientados para API: que’é no mínimo dois, no máximo 10 pessoas em qualquer projeto. Depende do tamanho do recurso obviamente e de quão longe a plataforma o recurso se espalhará.”
Jefcoate acha que Raynaud-Richard está certo em chamar as deficiências de um modelo cultural de propriedade individual de código em empresas de software.
“As desvantagens são coisas que são verdadeiras para nós,” diz Jefcoate. “Eu acho que Agile é uma das coisas que quebrou essa cultura. Eu acho que antes do ágil, os desenvolvedores costumavam ser isolados, mas o Agile incentiva a equipe sobre o indivíduo. Quando você está olhando para a velocidade de rastreamento ou o bem maior da equipe para produzir, todos compartilham o trabalho uniformemente. Temos muito uma cultura de todos os chips. eu acredito nisso’está ligado às práticas de trabalho e ao tipo de pessoas que usam fluxos ágeis: aqui’é alguns trabalhos a fazer, todo mundo entra no convés, e isso não’T emprestar -se a um cenário de propriedade individual de código.”
Basta comer replica uma série de aspectos culturais que estão se tornando mais familiares entre as startups de software baseadas em nuvem. Como outros em sua geração (Just-Eat começou em 2001), eles têm uma cultura de criação de projetos de código aberto e geralmente empregam um processo de recrutamento que solicita aos candidatos que o Dogfood as APIs Just-Eat para demonstrar o que pode ser feito ou apontar oportunidades que podem melhorar apenas comer apenas comer’s Base de código.
Jefcoate vê a abordagem de código aberto como uma maneira diferente de cultivar o orgulho em um’vantagem do código S que pode vir da propriedade individual do código:
“Você só precisa olhar para baixo nossa pilha e ver todas as ferramentas de código aberto que usamos para resolver nossos problemas todos os dias; portanto, como uma comunidade geral de desenvolvedores, realmente nos beneficiamos do bem maior. O código aberto permite que os problemas sejam resolvidos por muitas pessoas; Existem muito poucos lugares para onde você pode ir para onde você tem produtos gratuitos com essa quantidade de história testada e testada para eles. Open Source Works, e eu acho que contribui para que isso faça um pouco de uma declaração sobre o que somos como empresa. As coisas de código aberto que divulgamos (que estão relativamente em sua infância) são coisas genéricas que ajudam a resolver problemas para a comunidade de desenvolvedores. Tentamos obter os benefícios da propriedade individual do código (coisas como cultivar orgulho e incentivar o toque pessoal e o investimento pessoal em projetos de codificação), certificando -se de que os desenvolvedores possam ajudar a testar novas técnicas em nossa plataforma, que nossos desenvolvedores resolvem problemas para todo o grupo de engenharia. Se isso acontecer, provavelmente resolverá coisas fora da nossa empresa, para que’s como nossos projetos de código aberto começam. Geralmente é sobre escala e resiliência. Tentamos adotá -lo primeiro internamente e depois vemos se é algo que a comunidade pode se beneficiar.”
Para incorporar ainda mais uma cultura colaborativa em vez de um modelo de propriedade de código individual, Just Eat detém hackathons internos trimestrais para reunir desenvolvedores em novas configurações de equipe: “Com a propriedade do código do grupo, você perde alguns dos benefícios, como o código pode ser melhor porque os desenvolvedores estão mais engajados ou se tornam especialistas em domínio. Hackathons internos estão fora para incentivar nossos desenvolvedores a trabalhar em projetos pessoais de animais de estimação.”
Just Eat usa Jira para rastrear o trabalho que está sendo realizado e para coordenar solicitações de puxar, e então todas as solicitações de tração são revisadas por pares: “Uma equipe é semi-independente, mas tudo é impulsionado por um requisito global de produto. Depois de superar os requisitos globais, as equipes tendem a se auto-gerenciar para fazer isso. Portanto, uma solicitação de tração aberta está normalmente dentro de uma conversa de equipe. Então as revisões por pares são um processo fantástico, porque está aprendendo e verificação. Temos muita automação: realmente em nosso CI para sim/não, isso poderia ser implantado.”
Jefcoate também vê a empresa’S Uso da programação de pares (o método de fazer dois programadores trabalharem juntos, linha para linha, em um projeto de codificação) como demonstrando a antítese da cultura de codificação individual que os valores da empresa: “Usamos a programação de pares para integrar novos desenvolvedores e como uma prática geral de desenvolvimento. Se estou trabalhando em algo particularmente novo, vou emparelhar com alguém e garantir que alguém saiba. Esses são feitos remotamente, o emparelhamento é uma das melhores ferramentas para obter padronização de qualidade de código.”
A cultura do dev do Enterprise
Jakub Nesetril é fundador e CEO da APIARY, um design de design e documentação da API, conjunto de ferramentas de codificação. Nesta semana, o Apiary lançou o Apiary for Enterprise para ajudar grandes empresas a se afastar da propriedade individual do código ao criar produtos e serviços de API. Cada vez mais, o nesetril está vendo empresas que lidam com várias APIs que foram escritas de maneiras diferentes e que agora precisam ter estruturas de codificação e nomenclaturas comuns, trabalhadas por vários membros da equipe, em vez de desenvolvedores individuais atribuídos a uma determinada unidade de negócios.
Nos milhares de usuários apiários, o NESTIL normalmente vê hackers individuais ou equipes pequenas usam suas ferramentas de código aberto, onde cada desenvolvedor pode ter uma abordagem de propriedade quase individual (principalmente porque eles são o único codificador). À medida que as equipes crescem, começam a usar o produto comercial apiário e, quando atingem 20 membros da equipe, passam para as equipes do Apiário para as equipes. É nesta fase que a infraestrutura organizacional tende a trazer um gerente de produto para garantir que a codificação do desenvolvedor seja uniforme em vários projetos de API.
Entre os clientes corporativos-uma vez que as equipes atingem o número de desenvolvedores de 40-60 ou mais-um arquiteto da API tende a ser contratado. “Uma das coisas com as quais estão lutando é um design consistente para suas APIs, e que’é por isso que construímos apiário para empreendimentos,” Nesetril explica. No centro do produto está uma ferramenta de guia de estilo que ajuda as empresas a garantir que os desenvolvedores estejam em conformidade com convenções organizacionais, como nomenclatura e formatos de dados.
O nesetril está vendo que os clientes corporativos abandonam as noções antigas de propriedade individual do código, especialmente porque muitos herdaram um legado de APIs díspares por meio de fusões e aquisições ou porque os casos de uso individuais dirigiram projetos iniciais de desenvolvimento de API em unidades de negócios desconectadas.
“Historicamente, houve um forte impulso pela propriedade do código, pois isso criou responsabilidade, mas também criou dificuldades para a colaboração. Vemos muito mais recursos compartilhados entre as equipes de desenvolvedores nas empresas, onde os indivíduos podem girar dentro e fora de várias partes dos projetos,” diz nesetril.
“O truque com abordagens colaborativas é que elas precisam de uma única versão da verdade. Nem todo mundo pode ser especialista em tudo dentro da empresa, mas é ótimo quando eles podem trabalhar em algo internamente. O maior truque com uma versão única da cultura da verdade é chegar a esse lugar sem limitar a colaboração.” O Nesetril acredita que o Apiary for Enterprise é ideal para empresas que tentam gerenciar várias APIs sem criar uma cultura que incentive os desenvolvedores a reverter a se tornar especialistas em código individuais: “Dá -lhes essa mente que, quando eles estão trabalhando em uma API, ela se encaixa em um nível proativo de verificação e notificações avançadas, isso permite que você seja mais experimental e ambicioso se você não estiver atolado pelos medos de que está fazendo errado, por exemplo, formatos de data. As pessoas podem começar a fazer contribuições significativas desde o início.”
A propriedade individual do código morre uma morte (semi-pública)
O que Raynaud-Richard’A postagem no blog pode estar realmente fazendo é marcar o tempo e a morte da propriedade individual do código. Já, empresas de todos os níveis – de startups à empresa – estão adotando mais abordagens de desenvolvimento colaborativo. O Google Tools e o HipChat são comumente usados entre equipes de desenvolvedores em todos os níveis, e novos produtos de desenvolvedor estão surgindo que ajudam a consolidar um ethos mais colaborativo. Hoje’S Ambiente de Dev, um caminho intermediário entre especialização e conhecimento geral precisa ser perseguido onde a maior habilidade de codificação é a construção de consenso assíncrono: a capacidade de cooperar e facilitar a transferência de conhecimento por uma equipe distribuída.
Imagem de destaque via Flickr Creative Commons.
Quais são os benefícios da programação de pares para compartilhamento de conhecimento?
Полззййййь ззнанntas – сощщщщ Por. Эксперты добавляют важные сведения в эту коллективную статью, созданную с использованием искусственного интеллекта. Ы мth.
Это статья нового типа – при ее создании мы использовали искусственный интеллект. А эксперты улучшают ее, делясь своими мыслями напрямую в каждом разделе.
Если вы хотите внести свой вклад, запросите приглашение, отметив статью как понравившуюся или отреагировав на нее. ПодробнÉ
Última atualização em 27 de. 2023 г.
A programação de pares é uma prática de codificação colaborativa, onde dois desenvolvedores trabalham na mesma base de código ao mesmo tempo, usando um computador e um teclado. É frequentemente usado em metodologias de desenvolvimento de software ágil, como scrum e xp, para melhorar a qualidade do código, a produtividade e o aprendizado. Neste artigo, exploraremos como a programação de pares também pode promover a propriedade do código e o compartilhamento de conhecimento entre os desenvolvedores, e quais são algumas das melhores práticas para fazê -lo funcionar efetivamente.
Помог coler, диим, расgua
Оба braт сохранить
Propriedade do código
A propriedade do código é o senso de responsabilidade e responsabilidade que os desenvolvedores têm pelo código que escrevem e mantêm. Pode ter efeitos positivos na qualidade do código, pois os desenvolvedores têm maior probabilidade de seguir padrões de codificação, escrever testes, refatorar e corrigir bugs. No entanto, também pode ter efeitos negativos, como criar silos de conhecimento, reduzir a colaboração e aumentar a dependência de indivíduos específicos. A programação de pares pode ajudar a equilibrar a propriedade do código, incentivando a propriedade coletiva, onde toda a equipe é responsável pela base de código, e ninguém é o único especialista ou proprietário de um determinado recurso ou módulo. A programação de pares também pode reduzir o risco de perda de conhecimento, pois os desenvolvedores podem compartilhar seus conhecimentos e insights com seus parceiros e aprender uns com os outros.
Помог coler, диим, расgua
Оба braт сохранить
Desenvolvedor Java no Sky
- Копferir
- Пожалоатьс налth
Пожалоéri
Пожалоéri
O над оравии
Сааибо за зз веоомллние! Б б б б б ы ы ы б б ы ы ы ы ы ы ы ы ы ы ы ы ы ы ы ы ы ыи ыи ы ы ы ы ы ни ыи ы ы ыи н ыи ыи ыи ы ы ы н н ы ы ы ы ы н н ы и ы ы ы н н н н и и н н и и и и и и ы ы ы н н н н ы ы н н н н ы ы ы ы н н н н ы ы ы ы н н н н ы ы ы ы ы land.
Emparelhar a programação realmente remove completamente a propriedade do código. Não existe um proprietário real de qualquer pedaço de um ambiente programado com um par com uma rotação saudável de pares.
Compartilhamento de conhecimento
O compartilhamento de conhecimento é o processo de transferência e troca de informações, habilidades e experiências entre os desenvolvedores. Pode melhorar o aprendizado, a inovação e a solução de problemas, além de promover uma cultura de confiança e feedback. A programação de pares é uma ferramenta poderosa para compartilhamento de conhecimento, pois cria um ambiente de aprendizado natural e interativo, onde os desenvolvedores podem fazer perguntas, explicar conceitos, demonstrar técnicas e dar feedback. A programação de pares também pode expor os desenvolvedores a diferentes perspectivas, abordagens e estilos de codificação, que podem ampliar seus horizontes e melhorar suas habilidades.