-
Notifications
You must be signed in to change notification settings - Fork 45
Pair Programming
A Programação Pareada é uma das práticas do Extreme Programming (XP), que sugere que o código seja sempre trabalhado em dupla em um mesmo computador, revezando quem está digitando. Assim, existem dois papéis nessa atividade, o piloto e o co-piloto. Os dois trabalham de forma análoga a pilotos e co-pilotos de aeronaves.
O piloto é o responsável pela digitação do código, a sintaxe, e por deixar o seu parceiro ciente do que está fazendo, sempre explicando seu raciocínio durante a execução. O co-piloto acompanha a elaboração do código, os testes que deverão passar, a próxima história a ser entregue, o tempo gasto na execução dos testes, o tempo decorrido desde o último commit, e a qualidade do código em geral.
A ideia é que o pareamento ajude a disseminar o conhecimento entre o time de desenvolvimento, que a aplicação tenha menos bugs e que mais funcionalidades sejam acrescentadas num menor período de tempo, resultando em melhores projetos.
Pareamento remoto significa pareamento a distância. Esse tipo de pareamento é necessário quando os desenvolvedores não podem se encontrar pessoalmente. Este pareamento é feito com o auxílio de ferramentas que permitem a comunicação e o compartilhamento de tela, como hangouts ou skype, ou em alguns sites que permitem várias programarem juntas. A desvantagem desse pareamento é que o par pode perder o foco com facilidade já que a pressão do outro não é tão grande, o que pode acarretar em perda de produtividade.
Algumas práticas de pareamento altamente efetivos:
Proficiência: Ter proficiência com a linguagem e com as ferramentas utilizadas é extremamente importante para um pareamento eficiente. Caso contrário, o rendimento não será muito alto pois um membro do par será apenas ouvinte e não conseguirá acompanhar e contribuir.
Comunicação: A dupla precisa ter uma comunicação efetiva. É necessário que ambos estejam cientes e de acordo com o que será feito, é válido utilizar ferramentas de BDD para definir claramente o que será feito. Além disso, o piloto tem que estar constantemente se comunicando sobre o que está fazendo e pensando com o copiloto.
Autoconfiança: É essencial ter autoconfiança nas suas habilidades, dessa forma cada membro conseguirá contribuir e aprender bastante, criticando, recebendo críticas, questionando práticas e sugerindo novas ideias.
Autocontrole: Ter autocontrole para evitar distrações durante o pareamento e não se irritar ou se frustar com algo que não está dando certo contribui fortemente para a eficiência do par. Estabelecer algumas regras, como não usar celular para email ou mensagens que não vão contribuir é extremamente válido.
Paciência: Ter paciência com o outro membro do par quando este não tem tanto controle das ferramentas do computador é de grande ajuda para que ambos tenham confiança e vontade de trabalhar.
Modos: Estabelecer algumas regras para que o pareamento seja eficiente é extremamente importante. Regras como: trocar a função de cada um na dupla(piloto e copiloto) a cada intervalo de tempo pré-estabelecido, não ler emails ou mensagens no celular, não tocar na tela, não usar palavras ofensivas ou xingamentos, entre outros.
Higiene: Apesar de não parecer essa prática é importante. Maus hábitos de higiene pode deixar a outra pessoa extremamente desconfortável e fazer com que ela não queira parear. Ter práticas básicas de higiene pessoal e no ambiente de trabalho é essencial.
Tipo de pareamento que a princípio parece ser o melhor, contudo, geralmente traz poucas inovações, já que especialistas já estão acostumados com as estruturas e paradigmas pré-definidos e tendem a não questioná-los.
Tipo de pareamento que traz melhores resultados que um principiante trabalhando sozinho, contudo, a curva de aprendizagem e de produção deste tipo é bem lenta, sendo ele desencorajado.
Tipo de pareamento mais recomendado, de modo que a curva de aprendizado do principiante tem crescimento rápido, além de que, o desconhecimento do principiante de estruturas e paradigmas pré-definidos o faz questioná-los, podendo gerar novas ideias e inovações. Contudo, para que este pareamento funcione adequadamente, o especialista precisa ter paciência e vontade de ensinar o principiante, bem como é requerida proatividade deste último, para que o primeiro não faça tudo sozinho.
- Incluir descrição do treinamento/DOJO - passo a passo - etapas
- Registrar os detalhes da dinâmica
- Infraestrutura Necessária para a dinâmica
- Código referência no projeto da disciplina (00-Disciplina)
- Treinamento em, pelo menos 2 linguagens
EPS/MDS - FGA/UnB
Métodos de Desenvolvimento de Software
Gestão de Portfólio e Projetos de Software
RUP (Rational Unified Process)
Fase Elaboração (RUP) Planejamento(PMBOK)
Fase de Construção (RUP), Execução/Monitoramente e Controle (PMBOK)
Fase Transição (RUP), Finalização (PMBOK)
Acceptance Test Driven Development (ATDD)
Integração Contínua Deploy Contínuo
Automação de Ambiente com Docker
Orquestração de Containers com Docker Compose
Automação de Ambiente com Vagrant
Deploy Contínuo na Plataforma Heroku
Integração Contínua com Travis CI
Disponibilizando a Aplicação com o Proxy Reverso Nginx
Tutorial de Instalação do Ionic
Android Integração contínua com Circle CI
Configuração de Ambiente para React Native
Tutorial Instalação Ruby on Rails
Teste Automatizado Cucumber JS
Teste Automatizado Cucumber Rails
Testando AngularJS com Jasmine
Teste Automatizado com Selenium IDE
Configurar o SonarCloud para um projeto usando Jest
Configurar o SonarCloud para um projeto usando Pytest
Configurar o SonarCloud para um projeto usando Mocha e Istambul