Coragem
Tags: extremeprogramming, agile
Published: 2021-04-12 11:25:14

Coragem é um dos valores fundamentais da [Programação Extrema](https://pt.wikipedia.org/wiki/Programa%C3%A7%C3%A3o_extrema) (XP), junto com comunicação, simplicidade, feedback e respeito.

Ter coragem, neste contexto, não é sobre a coragem necessária
para que um soldado consiga enfrentar uma guerra. Também não é sobre agir de forma irresponsável, pulando do avião sem paraquedas.

A questão é que ao desenvolvermos softwares vamos encarar 
situações que vão causar medo tanto em nós, pessoas desenvolvedoras, quanto em nossas clientes.

## Gestão

Entre os medos comuns das clientes estão:

* Medo de ser enganada.
* Medo de ter que entregar o futuro de seu produto nas mãos de pessoas técnicas, que não necessariamente estarão tão engajadas quanto ela.
* Medo de perder controle do projeto.
* Medo de não ter suas expectativas atendidas.

Já as pessoas desenvolvedoras enfrentam:

* Medo de ficar sobrecarregada.
* Medo de expressar opiniões.
* Medo de informar que cometeu um erro.
* Medo de não conseguir cumprir os prazos acordados.
* Medo de não atingir as expectativas geradas por outras pessoas.
* Medo de não ter as informações necessárias para finalizar o trabalho.
* Medo de ter que se sujeitar a um cronograma em que é inviável implementar um código com a qualidade que gostaria.

Em um ambiente assim é comum que ambos os lados tentem levantar um muro para se proteger, e o resultado tende a ser a elaboração de um processo longo, complexo e ineficiente, já que cada lado parece desconfiar das intenções do outro. 

## Dia a dia da pessoa desenvolvedora

As práticas da XP se expandem por todo processo de desenvolvimento.

Ela também nos auxilia com alguns outros tipos de medos recorrentes que estão mais ligado com as práticas de implementação, como por exemplo:

* Medo de fazer uma nova publicação em produção. 
* Medo de refatorar um trecho do código. 
* Medo de apagar um trecho de código morto.
* Medo de atualizar a versão de uma biblioteca ou framework.

Este sentimento pode causar uma reação paralisante e não agimos quando deveríamos. Mas existem momentos em que o medo pode nos levar a realizar ações inconsequentes. Em situações adversas é preciso ter coragem para **não** agir até entender melhor o que está acontecendo, para então encontrar a melhor forma de solucionar o problema que estamos enfrentando.

Por exemplo: se o sistema estiver instável e não conseguimos
ainda encontrar a origem do problema, às vezes precisamos
ter coragem para continuar nossa investigação sem tomar nenhuma atitude precipitada, que pode agravar ainda mais a situação ou mascarar a real origem, que pode se manifestar novamente em outro momento. Assim evitamos aqueles diálogos do tipo:

```
- Pronto! Voltou a funcionar!
- Ótimo! O que você fez?
- Várias coisas.
- O que?
- Ahhh várias coisas.
- Mas qual era o problema?
- Não sei...
- Mas qual alteração resolveu o problema?
- Não sei...
- Mas o problema pode voltar a acontecer???
- Não sei...
```

Já presenciei situações onde as desenvolvedoras estavam fazendo várias alterações arriscadas direto em produção, sem saber se aquilo tinha chances de corrigir o problema, já que não haviam ainda identificado a causa. E no fim descobriam que era uma falha na infraestrutura ou em outro sistema ou qualquer outra coisa que estava fora da visão do time e que nenhuma das ações realizadas tinham relação com a origem do problema.

Precisamos de paciência e coragem para analisar com calma a
situação antes de tomar alguma ação. 

## Conclusões

Uma boa forma de combater estes medos é utilizar as práticas da Programação Extrema. Elas vão permitir que tenhamos mais coragem para refatorar o código do sistema, melhorar o design, expressar nossas opiniões abertamente, etc.

Para entender mais sobre Programação Extrema recomendo a leitura
dos seguintes livros:
* [Extreme Programming Explained](https://www.goodreads.com/book/show/67833.Extreme_Programming_Explained), 2004. Kent Beck, Cynthia Andres.
* [Planning Extreme Programming](https://www.goodreads.com/book/show/67839.Planning_Extreme_Programming), 2000. Kent Beck, Martin Fowler.
* [Extreme Programming](https://www.goodreads.com/book/show/9737235-extreme-programming), 2004. Vinicius Manhães Teles.

---

Curtiu este artigo? Talvez você vá gostar também do _**p de Podcast**_, um podcast semanal que participo sobre Arquitetura de Software e Tecnologia: https://anchor.fm/pdepodcast