Trabalhando com desenvolvimento de softwares, percebo que muitas coisas no ramo se parecem com o ato de cozinhar. Isso mesmo: cozinhar, cozer, preparar comida!
Cozinhar, a grosso modo, é uma questão de pegar ingredientes (input), prepará-los (processamento de dados) e servir o prato (output).
Mas essa simples analogia acaba indo mais além, acaba esbarrando em vários pontos que acho falhos em muitos profissionais da área de TI. É lógico que não podemos generalizar, e também nem podemos colocar a culpa somente nos profissionais, se muitos acabam simplesmente seguindo o “modus operandi” dentro das empresas.
Mas mesmo assim, vamos lá com alguns exemplos de coisas que acontecem nas cozinhas por aí:

1) Muitos desenvolvedores só querem saber de desenvolver, de programar, de mexer com a parte técnica, de “escovar bit” (como dizia um professor meu). Não se interessam pelo restante do processo de desenvolvimento. Querem apenas cozinhar: preparar os alimentos, temperá-los, colocar tudo no fogo, montar o prato.
Fazem esse preparo com excelência, sim. Mas não querem saber do restante: de onde veio os alimentos, qual o pedido exato do cliente, quem vai lhe entregar o prato, se ele vão gostar ou não, o custo de tudo envolvido, e por aí vai.
2) Existem aqueles que simplesmente não querem fazer o papel de garçom. Não querem fazer a análise dos requisitos, saber as reais necessidades do usuário, o que ele precisa automatizar, se ele precisa mesmo do software ou não. Ou seja, não querem parar na mesa do lado do cliente e anotar o pedido!Também não querem sair da cozinha e entregar o prato ao cliente. Não pensam na implantação do que desenvolveu.
E tampouco querem perguntar para o cliente: “gostou do prato?”. Ou seja, não ligam para o feedback, se o que desenvolveu atendeu ou não as necessidades do cliente, ou se apareceram problemas alheios ao software que impeçam o uso do mesmo!
Estão tão preocupados com a parte técnica que esquecem da parte humana.
3) Outros se preocupam apenas com o fogão e os utensílios. Se são os mais modernos do mercado, os mais caros, os mais famosos, os que estão na moda. Estão mais preocupados com o fogão em si do que com a comida que sai dele. Assim como existem muitos profissionais de TI que se preocupam mais com a ferramenta e a tecnologia em si do que o uso que elas podem trazer. Querem programar na última linguagem do mercado, no sistema mais bacana, na ferramenta mais arrojada -- mas muitas vezes esquecem do que o usuário realmente precisa e se uma ferramenta mais simples não atenderia suas necessidades plenamente.

Só lembrando que fogões a lenha e utensílios rústicos também fazem comidas muito deliciosas -- dependendo do cozinheiro, é claro!
4) Muitos não se “rebaixam” a lavar a louça nem recolher o lixo: argumentam que são pagos apenas para cozinhar.

Assim como muitos desenvolvedores entregam seus sistemas aos usuários e não querem saber de mais nada: o usuário já tem seu software, então basta ele usá-lo! Não querem ajudá-lo com problemas que não estão ligados diretamente ao desenvolvimento do software, que vão desde problemas de infra-estrutura e entrada de dados incorretos até a falta de treinamento ou o mau uso do sistema.
Oras, muitas vezes precisamos pensar como um todo: se desenvolveu um software, o mais importante de tudo é que ele funcione e atenda as necessidades para as quais ele existe-- e isso muitas vezes vai além da parte técnica e envolve bom senso.
5) Outro caso que podemos notar é o das compras: alguns cozinheiros não têm nem noção do produto que foi comprado, em qual lugar foi comprado, seu preço, se foi caro ou barato. Não têm idéia nem do que é ficar escolhendo e comparando produtos, nem sabem o que é pegar uma fila no mercado! Assim como há desenvolvedores que não tem noção dos custos e aquisições que se envolvem em todo o processo de desenvolvimento dos seus softwares.
Um aparte: é lógico que existem os extremos: alguns cozinheiros fazem questão de ir na feira logo cedo e escolher produto a produto com grande atenção, e ainda se preocuparem com os gastos. Alguns têm o privilégio de poder ir direto na fonte e colher seus produtos. Outros vão mais além e eles mesmos matam o próprio frango no quintal para cozinhá-lo! Assim como existem os desenvolvedores que têm plena noção do que se gastará em todo processo (mesmo porque muitas vezes seus ganhos estão diretamente ligados a essa estimativa).
6) E, para finalizar, e para ser sincero, existem programadores que nem testam direito seus próprios programas! São como cozinheiros que nem provam se a comida que acabou de fazer ficou boa ou não, se ficou com muito ou pouco tempero, se o sabor é o desejado ou não. Medo de queimar a língua ou não gostar?É lógico que, como eu disse antes, tudo isso depende muito, varia caso a caso, de cozinha para cozinha, de restaurante para restaurante: nas grandes cozinhas, por exemplo, cada um já tem sua função pré-definida -- nem sempre o cozinheiro pode ter contato com o cliente, sem sempre o garçom entra na cozinha, nem sempre o pessoal que prepara a comida é o mesmo que a compra; já nas cozinhas de nossas casas, muitas vezes uma pessoa faz tudo.
Mas de qualquer forma, em maior ou menos grau, acredito que essa analogia cozinha versus desenvolvimento de software existe: basta observar com calma, basta visitar as cozinhas e comprovar!
Leandro M.D.
23 de maio de 2010
23 de maio de 2010