quarta-feira, outubro 26, 2005

Extreme Programming: Processo ou metodologia?

Pessoal, nesta semana andei lendo algumas coisas sobre XP e encontrei uma questão interessante.


O XP é um método, metodologia, ou um processo de desenvolvimento? O Especialista em orientação a objetos Martin Fowler define-o como um processo leve:

"Desenvolvido por Kent Beck, ... o XP é um processo de software muito diferente, por diversas razões. Para começar, ao contrário de muitas metodologias, o XP é um processo peso-leve, que não exige grandes quantidades de papel para funcionar..."

A maior parte dos autores define XP como metodologia, o que é necessário então para caracterizar um processo de desenvolvimento de software?


A dúvida quanto à diferença entre método, metodologia e processo não é apenas de poucas pessoa. Mesmo os grandes autores de Engenharia de software têm divergências entre pontos destas definições. Um processo de desenvolvimento está ligado diretamente ao ciclo de vida de sistemas usado, ou ao modelo de processo, como definem alguns autores. Assim um processo define as fases e a forma como está organizado o trabalho para se produzir o software do início ao fim. A preocupação está em determinar o que deve ser feito a cada momento. Um processo de software funciona como um roteiro, um guia passo a passo sobre como uma equipe desenvolve seus sistemas. Organizações como a SEI(que criou o CMM) e a ISO, por exemplo definem programas de avaliações e certificações de qualidade do processo, ou seja, definem aquiilo que deve constar nestes modelos de processo para que sejam considerados num determinado nível de qualidade.

Enquanto o processo define o passo a passo, o roteiro, ele não define exatamente como as coisas são feitas. Neste ponto entram as metodologias, ou métodos, de desenvolvimento.

Notemos que método e metodologia são comumente usados com o mesmo significado. O primeiro termo é considerado mais preciso, pois metodologia significa, ao pé da letra, estudos de métodos. Aqui usamos o segundo termo que, apesar da ligeira imprecisão, é predominante na literatura especializada.

As metodologias fornecem definições detalhadas sobre como se faz determinada atividade prevista num processo de desenvolvimento. Existem métodos específicos para algumas atividades e outros que visam tratar da maioria das atividades suportadaas por um processo.

Como podemos perceber, processos e metodologias estão muito ligados. Entende-se porque muitas vezes vemos os dois termos usados como sinônimos. É comum que um processo defina uma metodologia e uma metodologia seja acompanhada por um processo. XP, RUP, DSDM, Scrum etc. são exemplos dessas combinações processo-metodologia.

Como citado por Fowler, XP é um processo leve (ou ágil). É também uma metodologia, pois suas práticas definem como fazer atividades as atividades de desenvolvimento, tais como planejamento, projeto, testes etc. Assim os dois termos são válidos. Costuma-se, muitas vezes, usar processo e metodologia sem distinção quando falamos de XP. Foi esta abordagem usada neste blog.

Nenhum comentário: