domingo, 13 de abril de 2008

Avaliação: "The Mythical Man-Month"


Possivelmente o mais célebre livro sobre engenharia de software -- e admito que foi essa celebridade que me levou a lê-lo --, este foi comprado por mim num surto de auto-aprendizado a respeito de gerenciamento. A empresa estava passando pela fase "consultoria externa para revertermelhorar apocalipseprocessos e eu estava participando centralmente. Ou pelo menos acreditava que sim. Nessa época comprei uma penca de livros, dentre eles O Mítico Homem-Mês.

Mencionei o contexto do meu interesse pelo livro porque isso foi determinante no que eu extraí dele. A cada página, Fred Brooks, com décadas de antecedência, descrevia o inferno que eu atravessava. O que, no início da leitura, me deixava intrigado: se isto tudo foi verdade 30 anos atrás, o que acontece HOJE para que os mesmos problemas se perpetuem?

É como se ainda estivéssemos tentando erradicar uma doença que já fora diagnosticada décadas antes. Só que não estamos lidando com medicina ou pesquisa "tradicional". Estamos lidando com software -- tão dinâmico, não? --, onde supostamente as coisas acontecem mais rápido. A natureza do software -- "pure thought stuff", diz Brooks -- deveria, na minha leiga opinião, permitir evolução mais rápida e certeira.

Ao avançar a leitura, porém, entendi que o problema do desenvolvimento de sistemas está menos na natureza do software do que naquilo que existe ao redor dele, a saber: comunicação entre os interessados. O problema central do projeto de software é a qualidade da informação que trafega entre desenvolvedores, gerentes, vendedores e clientes.

O título do livro já entrega o jogo: as expectativas que se estabelecem são falsas. O resto deste parágrafo é opinião pessoal derivada disso: ingenuamente ou por má-fé, o projeto de software é uma arena onde os interesses mais díspares sugam muito da atenção que deveria ser aplicada na realização do que Brooks chama de "value to customers" -- os resultados concretos do projeto. Quais interesses? Políticos, do lado gerencial (seja no cliente ou no fornecedor de software). Corporativos, do lado dos desenvolvedores. No intervalo, um monte de gente preocupada unicamente em sair da reta. Não há interesse concentrado e ordenado em se considerar, sempre em primeiro lugar, a solução do problema que originou o projeto.

E se o fator humano não ajuda, tampouco adianta apelar para que o software, por si, dê origem à solução mágica ("silver bullet"), algum dispositivo que permitisse ganhos de magnitude na qualidade e no desempenho do desenvolvimento de sistemas, da mesma forma que a indústria de hardware consegue ganhos exponenciais na qualidade e no desempenho dos seus produtos. Brooks analisa algumas silver bullets -- melhores ferramentas, geradores automáticos de sistemas, inteligência artificial, orientação a objetos, entre outros -- para profetizar a impossibilidade desse dispositivo (ao menos enquanto valerem as circunstâncias em que ele escreveu). Pois o que move a roda, enfim, somos cada um de nós, nossas necessidades, caprichos e restrições. Se conseguíssemos mecanizar essas condições, quem sabe poderíamos evoluir o mecanismo e, assim, gerar os tais ganhos de magnitude. Mas, é óbvio, somos imprevisíveis, e é aí que reside o problema da mecanização. Então, no silver bullet.

O livro contém muito mais do que análises de problemas. É um condensado de observação prática, opinião, bom senso e rigor, escrito com simplicidade e humildade. É muito bem vindo, inclusive quando o autor se concentra em detalhes técnicos ultrapassados -- no mínimo você sai conhecendo melhor a história da computação, contada por um dos protagonistas. Ah, você não tem tempo para essas coisas, né.

Um comentário:

Cesar Brod disse...

Agora o livro está disponível em português: O Mítico Homem-Mês