Ícone do site Taller

Como Trabalhamos os Valores do Extreme Programming na Taller – Parte 2

Valores de Extreme Programming

Na primeira parte deste artigo, entendemos o que são valores dentro do Extreme Programming e como eles se relacionam com as práticas e os princípios. Vimos também os valores da comunicação e da simplicidade, essenciais para um bom fluxo de desenvolvimento.

Vamos falar agora um pouco sobre Feedback, Coragem e Respeito, valores também muito importantes, e como todos eles se relacionam.


Feedback no Extreme Programming

O que é?

Feedback nada mais é do que o resultado de nossas ações (um kaizen aplicado, um código rodando em produção, etc.), que nos traz informações novas sobre como essa ação impactou o mundo real.

Sabemos que direções fixas não são válidas por muito tempo, mudanças são inevitáveis e por isso é importante que o feedback seja rápido, para que possamos validar nossas ações e saber se estamos seguindo na direção certa.

Podemos não saber como resolver o problema da maneira ideal, a solução ideal pode não ser mais a ideal quando estiver pronta caso leve muito tempo a ser implementada e talvez a necessidade mude com o tempo.

Estamos constantemente correndo o risco de “rasgar dinheiro” quando trabalhamos com suposições e não com hipóteses validadas.

 

Como fazemos?

Tracing Bullet – Caminho crítico

Demandas que tem como objetivo atravessar transversalmente o problema, de ponta a ponta, com o mínimo possível para que durante o desenvolvimento sejam descobertos os desafios que serão enfrentados a cada iteração dentro deste problema.

Exemplo: em uma feature, implementar uma parte do back-end, uma parte do front-end e subir isso em uma infra estrutura, ao invés de completar totalmente o back-end para somente depois implementar o front-end, e somente então chegar até o deploy.

A experiência mostra que trabalhar desta forma gera muito retrabalho, pois, descobertas de um lado podem impactar no outro.

A metáfora com a bala traçante é boa, pois, a ideia é justamente marcar o alvo e somente então fazer o esforço real depois de já tê-lo acertado de certa forma.

 

Cadências

Aqui temos o casamento com as cadências do kanban como Team Review e a Operations Review, por exemplo.

Após um período considerável olhamos para trás e verificamos o que está funcionando bem e o que pode ser melhorado, trabalhando sempre com dados e métricas relevantes para tomar decisões.

Nesse momento podemos nos perguntar, “estamos sendo eficazes?”, “estamos gerando valor?”, “Como podemos melhorar?”, e criar um espaço para antecipar movimentos e nos adaptar conforme os impactos.

 

Relação com simplicidade e comunicação

Quando conseguimos trabalhar de maneira simples, o feedback será proporcionalmente mais rápido, criando uma sinergia.

Quando queremos atingir a simplicidade, o feedback rápido pode ser uma ferramenta para descobrir se determinada hipótese/solução será mais simples que outra, através de provas de conceito, por exemplo.

Com relação à comunicação, não é à toa que a palavra feedback apareça muito mais relacionada a conversas entre as pessoas, pois, ele é justamente essa troca de informações.

O feedback rápido e constante é crítico como forma de comunicação, para responder perguntas como “a performance será um problema?”, nada mais assertivo do que escrever um protótipo e testar para isso.

 

Coragem no Extreme Programming

O que é?

Coragem é ação efetiva na presença do medo. Como uma equipe enfrenta seus medos reflete se estão trabalhando como um time efetivamente.

Às vezes a coragem se manifesta como ação – é preciso coragem para fazer o que precisa ser feito, desafiando estruturas, políticas ou cultura.

Outras vezes se manifesta como inação – é preciso coragem para esperar que o problema real possa emergir.

A coragem como um valor primário sem contrapesos pode ser perigosa, agir sem se preocupar com as consequências não são colaboração efetiva. Em conjunto com outros valores é extremamente poderosa.

A coragem para dizer as verdades não ditas (às vezes desagradáveis) melhora a comunicação e a confiança. Coragem para descartar soluções falhas e buscar novas gera sinergia com a simplicidade. Buscar respostas reais e concretas cria feedback.

 

Como fazemos?

Buscamos criar espaços horizontais para tomar decisões, através de facilitações e conversas francas. Nós cobramos como time para evitar que problemas sejam colocados “para baixo do tapete”, e buscamos ativamente conversar sobre assuntos difíceis. 

Não aceitamos a falácia de autoridade, pois, sabemos que decisões baseadas em fatos geram coesão no time, optando sempre por argumentos que nos levem a reflexões baseadas naquilo que irá trazer valor para nossas soluções e time.

Evitamos ter papéis centralizadores no time e buscamos ativamente a descentralização de forma que nossas decisões possam ser menos enviesadas, mais voltadas aos aspectos lógicos do que emocionais (e egoístas).

Trabalhamos nossa auto-reflexão para termos coragem de nos perceber também quando estamos falhando, de forma a ouvir o que o outro tem a dizer e não sabotarmos o coletivo em detrimento de um indivíduo, evitando assim transformar questões técnicas e de trabalho em questões pessoais.

 

Respeito no Extreme Programming

O que é?

Respeito é a base das relações humanas, e no XP não podia ser diferente. Se os membros do time não se importam uns com os outros, ou com o projeto, nenhuma metodologia funcionará, assim como o XP. 

Todas as pessoas têm o mesmo valor como ser humano e suas contribuições no time precisam ser respeitadas.

 

Como fazemos?

Buscamos filtrar ativamente durante o processo seletivo pessoas que tenham dificuldade com respeito, pois, entendemos que é essencial. Isso inclui questões de diversidade e identidade pessoal, entendemos que cada pessoa tem seu próprio jeito de ser e que cabe somente a ela

Buscamos utilizar a coragem sempre que possível para desfazer injustiças, ou sinalizar injustiças e temos as portas abertas com nossos colegas para que possamos conversar sobre isso de forma madura.

Procuramos entender que a cada pull request, commit, mensagem no slack, ou outra interação qualquer, há um contexto, e evitamos o julgamento antecipado de qualquer situação, buscando ativamente encontrar soluções ao invés de culpados para qualquer problema.

Outros valores do Extreme Programming

Assim como estes 5, também existem outros valores que são importantes, e dentro de cada time e organização eles podem variar.

O que vale a pena lembrar é que o comportamento de seu time precisa estar alinhado com os valores do time, isso irá minimizar o desperdício que surge ao tentar manter múltiplas combinações diferentes de valores ao mesmo tempo.

Os valores não nos oferecem respostas prontas, para isso, há as práticas do XP e os princípios que as conectam aos valores.

Para saber mais, recomendo a leitura do livro de referência deste artigo, e quem sabe futuramente outros artigos neste blog que possam falar sobre este tema.

Obrigado por me acompanhar nesta jornada até aqui, espero que o tema tenha despertado mais sua curiosidade sobre XP, até a próxima!

 

“No matter the circumstance you can always improve. You can always start improving with yourself. You can always start improving today.”  Kent Beck

“Independente das circunstâncias você sempre pode melhorar. Você sempre pode começar a melhorar a partir de si mesmo. Você sempre pode começar a melhorar hoje.” (tradução livre)  Kent Beck

Referências 


 

🎧 Ouça o episódio do TallerCast sobre Extreme Programming e continue aprendendo sobre XP!

Sair da versão mobile