agile brazil 2012 - distributed teams
TRANSCRIPT
O Sentimento de Construir Software Distribuído Utilizando Ágil
Fernando Kakimoto@nandokakimoto
Motivação
Face to Face Communication
Pair Programming
Acceptance Tests
Continuous Delivery
Build Pipeline
?
Agenda
Diminuir o GAP entre times distribuídosInfluência da distância em práticas ágeisPráticas frequentes em times grandes/distribuídos
Quem é Fernando Kakimoto?
Engenheiro de Software desde 2007Bacharel em Ciências da Computação, UFPE (2008)Consultor da ThoughtWorks Brasil (Março/2011)
join.thoughtworks.com
Agenda
Diminuir o GAP entre times distribuídosInfluência da distância em práticas ágeisPráticas frequentes em times grandes/distribuídos
Times Distribuídos
Desenvolvedores não entendem o negócio ou o domínio do sistemaDesenvolvedores em diferentes regiões descordam sobre questões técnicasSentimento de Nós vs Eles
Face to Face Communication
Encontros Regulares
Seeding visitContact visitEmbaixadores viajantes
Canal Aberto De Comunicação
100% do tempoSimular todos no mesmo local
TV + Câmera
Contato visualReuniões rápidas
Chat
Postar informações genéricasEvitar conversas privadasUsar a criatividade
Times Distribuídos
Nunca serão iguais a times colocados
Agenda
Diminuir o GAP entre times distribuídosInfluência da distância em práticas ágeisPráticas frequentes em times grandes/distribuídos
Standup Meetings
Podem durar mais de 15 minutosTentar diferentes formatosAlternar facilitador
Pair Programming
Compartilhar conhecimentoTruck numberQualidade de códigoBom relacionamento
Remote Pairing
Praticar com cautelaEstórias estratégicasAlternar par
Agenda
Diminuir o GAP entre times distribuídosInfluência da distância em práticas ágeisPráticas frequentes em times grandes/distribuídos
Testes de Aceitação
FragilidadeConfiança no buildSe quebou, conserte!
Testes de Aceitação
Corrigir testeRemover testeMover para quarentena
Testes de Aceitação
IsolamentoRequisições Ajax
Teste de Aceitação São Lentos
Build Pipeline
Processo de trazer software do controle de versão até usuário final
Build Pipeline
Evitar release de versões indesejadasAutomatizar processo de deployInformar problemas o quanto antes no processo
Build Pipeline
Escrever testes unitário sempre que possível
Build Pipeline
Executar testes em paraleloDividir estágio de aceitação
Agenda
Times distribuídosInfluência da distância em práticas ágeisPráticas ágeis mais frequentes
O Sentimento de Construir Software Distribuído Utilizando Ágil
Fernando Kakimoto@nandokakimoto