sexta-feira, 2 de outubro de 2009

O Fenômeno da Segunda Vez

Oi, eu sou a Guta, a miquinha de realejo. Meus colegas micos me convidaram a escrever minhas macaquices aqui nesse blog. Então, vamos lá!

O artigo do Torsten sobre o Oráculo de Requisitos me fez lembrar do meu professor número um de requisitos: Dan Berry. Em várias situações de discussão sobre desenvolvimento de software eu me lembro dele se referindo ao fenômeno da segunda vez. Este fenômeno diz que a primeira vez que você escreve o software você está realmente é pensando e entendendo melhor sobre o problema. Na segunda vez é que você consegue acertar a solução do problema pois já o entendeu de forma mais abrangente e profunda e agora sabe de todas ou quase todas as suas implicações.

Fui então pesquisar se o Dan tinha alguma vez publicado sobre o fenômeno da segunda vez. Encontrei um artigo dele com a Jeannette Wing, uma pesquisadora famosa na área de métodos formais que eu também admiro muito. Bom, o artigo deles é de 1985 e foi publicado na Lecture Notes in Computer Science, volume 186, e pode ser encontrado neste link.

Os seguintes parágrafos do artigo descrevem bem a idéia do fenômeno da segunda vez:

“Nós observamos um número de projetos de software bem sucedidos. Alguns foram desenvolvidos através de um método que nós chamamos de especificação e outros foram desenvolvidos por um método que nós chamamos de prototipagem e outros ainda foram desenvolvidos por outros métodos que nós não discutimos neste artigo. ... Em um primeiro estágio do desenvolvimento, o produto do método utilizado, tanto a especificação quanto o protótipo, foram completamente verificados com o auxílio de uma ferramenta automática e possivelmente até mesmo executados. O segundo estágio do desenvolvimento de ambos foi a implementação, na qual o que foi aprendido no primeiro estágio foi aplicado para produzir uma versão de produção do software. O que foi comum aos dois métodos é o que chamamos de fenômeno da segunda vez. Isto é, a qualidade do software de produção que foi entregue representa a segunda passada sobre o problema que segue a primeira passada feita com uma descrição formal e verificada por uma máquina. No caso da especificação, ela foi feita formalmente e foi verificada com o auxilio de um programa de verificação. No caso do protótipo, o seu programa é formal e foi verificado por um compilador ou interpretador, pelo ambiente de execução e pelos usuários rodando o programa.

Nós nos perguntamos se o fator mais importante no sucesso destes projetos era o fato de o software entregue ser uma segunda iteração depois de uma primeira iteração verificada por uma máquina. Ou seja, nós sugerimos se este fenômeno da segunda vez é mais crítico para determinar o sucesso de um projeto do que qualquer outro fator que pode surgir dos métodos de especificação e prototipação em si. “


Então, na minha opinião o fenômeno da segunda vez do Dan Berry e da Jeannette Wing e o que disse o Fred Brooks, "Planeje jogar um sistema fora, você jogará de qualquer jeito" são conclusões bastante semelhantes.

Nenhum comentário:

Postar um comentário