Existe um tipo de falácia bem comum que está crescendo ultimamente se aproveitando da célebre frase: Não existe bala de prata!
Quando invocamos a necessidade de não considerar todos os problemas como um prego e a única arma um martelo, não estamos fornecendo a chave da irrestrita flexibilidade irresponsável.
Quando assumimos que em tudo depende, não estamos dizendo que não há uma fronteira. O avanço significativo do cálculo só foi possível com o advento do limite matemático.
Fazer ciência é investigar e fazer a pergunta certa ao contrário da resposta certa. Para isso identificamos padrões e formulamos teorias.
Antes de abandonar uma teoria devemos substituí-la por outra mais apropriada. Isso soa conservador mas é preciso para se fazer ciência, propor o abandono de uma determinada teoria sem a substituição por outra mais adequada é leviano.
Para entender como algo funciona não podemos simplesmente achar que qualquer solução é válida e sim descobrir qual a solução adequada.
Entender que existem soluções mais apropriadas – e que sim, existe um jeito certo ou um modo melhor de se fazer algo – não quer dizer que outras abordagens simplesmente estão erradas, podem ser apenas incompletas e/ou inviáveis.
Em muitas discussões que tenho travado ultimamente sempre quando tento argumentar que uma solução específica é melhor do que determinada outra, ouço:
“Não existem balas de prata”. Bingo!
Essa pessoa não entende ou não quer aceitar por motivo qualquer que a solução dela está errada ou não satisfaz.
Aqui a proposta é pontual, para determinado conjunto de fatores existe uma solução mais adequada, isso é fato.
Existem Balas de prata!
Mas como somos fans de Supernatural, sabemos que o que mata é acertar no coração. O trabalho deve ser direcionado a combater a complexidade no coração do problema e não simplesmente num jogo de escolher a ferramenta certa.
Na área de desenvolvimento de software a maioria dos desenvolvedores se apegam a uma metodologia/ferramenta/arquitetura e tentam encaixá-la para a construção de qualquer sistema. Não entendem que aquela solução não vai resolver todos os problemas.
Até aqui tudo bem, o problema é aproveitar a defesa de que não existe uma ferramenta para todos os propósitos e considerar que “não existe o melhor” ou a “forma apropriada”, quando justamente por não existir ferramenta universal é que devemos usar algo por sua especialidade.
O manifesto ágil tem um trecho que diz:
“Estamos descobrindo maneiras melhores de desenvolver software fazendo-o nós mesmos e ajudando outros a fazê-lo.”
Observe que ele diz “melhores” e não “diferente” ou “de outra forma“.
No final diz:
“Ou seja, mesmo havendo valor nos itens à direita, valorizamos mais os itens à esquerda.”
Aqui reconhece que os itens à direita não estão errados, apenas que os da esquerda levam a uma melhor forma de tratar o campo específico que é desenvolver software.
Tentar levar o manifesto ágil para gestão de projetos, construção civil ou limpeza da sua casa o faz ser uma bala de prata e que não vai matar nada porque você não está atigindo o coração, apenas tentando criar um martelo genérico para um uso universal.
Todo o “KnowHow” associado ao manifesto ágil se refere única e exclusivamente ao processo de desenvolver software da melhor forma, atinge o pontual.
Agiletards sabem ser chatos também quando seguem metodologias de caixinhas e querem criar um novo dogma de desenvolvimento de software.
Existe o melhor e a forma mais adequada, procurar é nosso dever!
Infelizmente ainda há pessoas tem medo de mudanças. Surgem uma nova tecnologia todo mundo cai de pau em cima, assim ninguém usa, não tem que aprender.
Um desenvolvedor Java critica um framework X porque usa um Y. Um Desenvolvedor .NET critica Ruby falando que é uma linguagem para criar blogs. Tudo isto porque é mais fácil falar do que aprender.
Até hoje, apesar de passar 90% do meu tempo usando Java, tive a oportunidade de usar outras linguagens, .NET inclusive, e diria que é muito interessante, você consegue correlacionar a deficiências de cada linguagem e tirar proveito do que elas tem de melhor.
Gostei muito do post, parabéns!
Milfont, a bala de prata seria a solução para todos os problemas essenciais da engenharia de software. Processos ágeis resolvem uma parte do problema em contextos específicos, não todos os problemas em todos os contextos.
Se não teve a oportunidade de ler o artigo original, leia-o em http://www.di.ufpb.br/~alan/es/papers/brooks-no-silver-bullet.pdf
Abraço,
Alan
@Alan Kelon
O post é justamente sobre isso, atingir o pontual e não o genérico. O propósito maior é detectar uma nova falácia baseada na famosa frase “Não existem balas de prata” e evidenciar que em determinados contextos existe sim a bala de prata até que ela seja substituída por outra bala e o que importa não é de que é feito a bala e sim onde tem que acertar: “o coração do problema”.
Um trecho:
“Aqui a proposta é pontual, para determinado conjunto de fatores existe uma solução mais adequada, isso é fato”