Software Craftsmanship

February 4th, 2008 § 3 comments

Alguém–não me lembro quem no momento–me recomendou o livro Software Craftsmanship, de Pete McBreen, como um bom tratamento do tema de software como engenharia versus software como ofício (craft é uma palavra notoriamente difícil de traduzir; artesanato poderia também ser usado).

O tema é excelente, mas eu fiquei estupefato com quão ruim o livro é. Não pelo modo como McBreen trata o tema em si–na verdade, ele consegue até produzir alguns insights interessantes–mas pela repetição exaustiva das mesmas frases e argumentos.

Eu não sei que editor deixou isso passar, mas se a repetição incessante de argumentos idênticos fosse removida, o livro provavelmente cairia de suas quase trezentas páginas para pouco mais do que cinqüenta. O que me tomaria talvez seis ou oito horas de leitura–com anotações incluídas–me tomou mais que o dobro disso enquanto eu tentava remover a verbosidade de McBreen na maioria dos capítulos do livro.

A idéia de McBreen é simples: engenharia de software é algo apropriado para projetos enormes (mais de 100 anos/desenvolvedor) enquanto que para projetos menores, com necessidades mais rápidas de time-to-market, o velho modo de ofício medieval é mais apropriado: um mestre-artesão, com vários artesãos sob ele, e vários aprendizes sob estes outros.

Eu concordo com o argumento e concordo com muitas das conclusões a que McBreen chega. De fato, no que tange à minha própria empresa, este é virtualmente o modo que operamos, usando uma hierarquia de experiência na maioria dos projetos. Os resultados tem sido excelentes.

O problema de McBreen é que, ao descrever as raízes e razões do argumento, além das repetições citadas acima, ele sai com várias declarações do tipo:

Software craftsmanship is the new imperative because many members of the software development community are stating to chase technology for its own sake, forgetting what is important.

O fato de que a segunda parte desta frase é extremamente óbvia e que a relação entre as duas partes da mesma é um non-sequitur não parece incomodar o autor.

Apesar disso, muito do que McBreen fala é válido e importante, como ao descrever como software que é bom o bastante é ruim para usuários e para a indústria como um todo e como soluções diferentes podem tratar isso de uma maneira mais interessante. Algumas de suas análises sobre as metáforas que permeiam a indústria–como a da construção de um carro versus o projeto de um carro–são bem apropriadas e são parte do que me motivou a terminar o livro apesar da dificuldade com o mesmo.

Em última instância, o livro trata de um tema bem necessário e faz parte de algo que é hoje está se tornando um dos debates mais importantes da nova onda de desenvolvimento. Eu temo, porém, que muitos leitores abandonarão a sua leitura depois de menos que um terço do livro ao perceber a redundância do estilo de McBreen. Com um editor bom, o livro teria de transformado em um Peopleware de sua geração. Infelizmente esse não foi o caso.

§ 3 Responses to Software Craftsmanship"

Leave a Reply

Your email address will not be published. Required fields are marked *

What's this?

You are currently reading Software Craftsmanship at Superfície Reflexiva.

meta