Métodos não, Habilidades

Colher de doce de morango

Frequentemente, na minha vida profissional, veja uma procura por métodos, erroneamente chamados de metodologias, como forma de resolver um problema complexo: Metodologia para Gerenciamento de Projetos, Metodologias para Desenvolvimento de sistemas, Método de Estimativa de Esforço, Método de Solução de Problemas. Dá mesma forma, muitos buscam normas e regras que, uma vez seguidas rigorosamente, vão garantir o sucesso. Este é famoso “caminho das pedras”. Estude muito que vai conseguir um bom emprego. Trabalhe bastante que vai ter dinheiro e sucesso profissional. Não faça nada errado, se fizer vai se dar mal. Muitos acreditam de verdade que a vida é assim. Existem regras que podem garantir o sucesso. Tenho um segredo para vocês: a vida não é assim.

Para não transformar este artigo em um tratado filosófico ou religioso, vou me limitar à minha área de competência: ensino e desenvolvimento de software. Posso afirmar com a convicção de um professor na matéria: Não existe método (garantido) para o desenvolvimento (com sucesso) de um software. Não é possível se ensinar isso, simplesmente porque não existe. Existem sim habilidades que bem desenvolvidas, e aplicadas, aumentam a chance de sucesso no desenvolvimento de software. Se vamos chamar de método à organização de um conjunto coerente de habilidades, então existe o método. Mas o nome método é ruim, prefiro: habilidade.

Porque habilidades e não técnicas, boas práticas, ferramentas? Porque elas dependem do ser humano. Uma habilidade não existe solta, ela precisa de uma pessoa para existir, e porque ensinar é dar novas habilidades aos alunos. Os melhores cursos são aqueles que ao final o aluno consegue “fazer” alguma coisa que ele não conseguia “fazer” antes, ou seja ele foi habilitado a realizar alguma coisa nova.

A pergunta certa então é quais são as habilidades necessárias, importantes para um projetos de software?
1. Habilidade de entender o objetivo do software
2. Habilidade de conceber um sistema de software que atinja este objetivo
3. Habilidade de construir este software
4. Habilidade de capacitar (ensinar, habilitar) os usuários no uso deste software.

Tudo isso! Sim. Mas não vai existir alguém que possua todas estas habilidades. Por isso o desenvolvimento de software é um trabalho colaborativo, desenvolvido por uma equipe multidisciplinar. O grau que se deve combinar estas habilidades varia de acordo com o problema, mas mesmo que em pequeno grau elas sempre vão estar presentes. Como as habilidades estão sempre associadas à pessoas, uma equipe de desenvolvimento deve ser composta por integrantes que juntos possuam toda estas habilidades.

Muitos estão procurando uma receita de bolo, ingredientes e uma forma única de combiná-los para produzir uma bolo gostoso. Mas todos sabem que boas cozinheiras raramente seguem uma receita completamente, e produzem bolos deliciosos, e mesmo seguindo uma receita com precisão é garantia de que o bolo vai dar certo.

Assim quando eu estudo um método, me interessa entender os princípios e razões por trás das atividades deste método para garantir que eu tenha a habilidade para aplicá-lo corretamente, e mais ainda tenha a habilidade para ajustá-lo ao problema que estou resolvendo.

Comments are closed.