Por que o Scrum Master tem que conhecer XP?

O XP ou Extreme Programming tem um conjunto de práticas eficazes para projetos de software. Ao ler sobre o assunto fiquei apaixonada.

Antes de mais nada, no meu ponto de vista, as práticas XP, aliadas ao SCRUM, podem trazer maior acertividade, qualidade e agilidade aos projetos.

Não conseguirei falar sobre todas as práticas aqui, então comentei sobre as mais relevantes.

Programação em par

Primeiramente, no XP, essa é uma das práticas mais conhecidas, e tem grande potencial para resolver diversos problemas, que afetam os projetos de software, embora não todos.

Em suma, um dos principais benefícios da programação em par é a permanente inspeção de código que ocorre durante seu uso. É uma forma eficaz de reduzir a incidência de bugs em um sistema.

Você Scrum Master, sabe como é a forma bacana de fazer a programação em par?

Quando dois desenvolvedores estão programando em par, um deles deve estar com as mãos no teclado (condutor) e o outro observando (navegador). 

Dessa forma, quem digita deve ficar olhando sobretudo para a linha que está editando e adjacências. O navegador, por sua vez, deve ter uma visão mais ampla. E olha não apenas a linha que está sendo editada.

Assim, essa visão complementar, permite que o navegador atue mais como um estrategista. Olhando para o código como um todo e identificando problemas que passam despercebidos, para quem está mais preocupado com a linha que está sendo digitada.

Logo, ambos estão trabalhando juntos na solução.

Eles conversam o tempo todo e trocam idéias sobre a solução. A programação em par ajuda os desenvolvedores a criarem soluções mais simples, mais rápidas de implementar e mais fáceis de manter.

Test-driven development ou TDD

Scrum Master, você conhece a técnica de desenvolvimento orientado a testes? Essa prática tem como um de seus objetivos antecipar a identificação e correção de falhas durante o desenvolvimento.

Frequentimente, no início, trabalhar com TDD, pode parecer um pouco doloroso para os desenvolvedores. Pois eles terão que fazer o inverso do que estão acostumados.

Definitivamente, ou você é um excelente vendedor, ou não vai conseguir fazer o time trabalhar dessa forma.

Em síntese, a dificuldade para os desenvolvedores vem apenas no começo, em tempo de aprendizagem. Pois eles se tornarão melhores à medida que praticam.

Imediatamente, no TDD, a primeira preocupação é escrever o teste e assegurar que ele funcione corretamente.

Em síntese, para fazer isso com segurança, é necessário certificar-se de que ele falha, quando temos absoluta certeza de que deveria falhar. E que passa quando temos total confiança de que deveria passar.

Usando TDD dificilmente o desenvolvedor terá que retornar ao código futuramente para corrigir falhas. Pois possíveis falhas já foram detectadas e corrigidas durante a confecção dos testes.

Além disso, se alguém alterar esse código no futuro, os testes irão dizer se a mudança foi bem sucedida ou não.

Enfim, o processo não é infalível, mas códigos gerados assim raramente apresentam problemas.

Build e todos os testes automatizados em até dez minutos

Scrum Master, você sabia que é possível fazer o build e todos os testes automatizados do projeto em até dez minutos? Essa é mais uma prática do Extreme Programming.

Como fazer isso? Comece pelo menor tempo que dá e vá aprimorando o build continuamente até que o tempo de execução atinja o ideal de dez minutos.

Em suma, a velocidade de execução dos builds é importante porque se um build consumir muito tempo, a equipe deixará de executá-lo com freqüência.

E o build é uma oportunidade para a equipe receber feedback sobre o funcionamento do sistema.

Assim, se ele passa a ser executado com menos freqüência, erros tendem a se acumular. Quanto mais defeitos se acumulam e mais tarde são identificados, mas caro se torna corrigi-los.

Integração contínua

Scrum Master, uma outra prática do XP é a Integração contínua, e é muito importante. Pois consiste em integrar o trabalho diversas vezes ao dia, assegurando que a base de código permaneça consistente ao final de cada integração.

Antes de mais nada, em uma equipe com vários desenvolvedores, todos trabalhando na elaboração de um mesmo sistema, utilizar a integração contínua, é a melhor forma de unificar as diversas alterações feitas na base de código.

Da mesma forma, uma das ações mais importantes nessa prática, é utilizar um sistema de controle de versões, que chamamos de “repositório de código”.

Base de código unificada

Amigo SM, projetos XP tem como prática ter uma base de código unificada, e eu acho muito relevante, pois aqui prevalece o Pensamento Lean. Afinal, múltiplas linhas de codificação são uma enorme fonte de desperdícios em desenvolvimento de software.

Imagina que eu corrijo um defeito no software que está no ar atualmente.

Então tenho que corrigir o mesmo defeito em todas as demais versões do software que estão no ar, além do ramo de desenvolvimento que está ativo no momento.

Nesse momento, você descobre que a correção que fez quebra alguma coisa em que você estava trabalhando. Assim, pensa na confusão e perda de tempo!

Você pode desenvolver em um ramo temporário, mas nunca deixe-o sobreviver mais que apenas algumas horas.

Propriedade do código é coletiva

Desde já, em projetos XP, todos têm acesso e autorização para editar qualquer parte do código da aplicação, a qualquer momento. Ou seja, a propriedade do código é coletiva e todos são igualmente responsáveis por todas as partes.

Torna-se mais freqüente a identificação de oportunidades de melhoria, levando freqüentemente à refatoração em áreas que precisam da mesma.

Envolvimento do cliente real

Igualmente, uma outra prática do XP bem legal, é envolvimento do cliente real. Por exemplo, ao longo do desenvolvimento, podemos fazer com que alguns dos usuários finais para utilizar as funcionalidades já implementadas.

Assim, podemos perceber se o que está sendo pedido pelos requerentes realmente reflete as necessidades dos usuários finais. Isso também nos permite perceber se o que está implementado consegue ser usado facilmente pelos usuários finais.

Aprendizagem rápida e contínua! Traazendo melhores resultados.

Espero ter agregado valor a comunidade ágil com mais esse artigo!

Fonte: https://www.desenvolvimentoagil.com.br/xp/praticas/



Informações sobre a autora: Jacqueline Viana é Scrum Master na Concrete Solutions, e é apaixonada por agilidade.

Cofounder Agile Pink