Relação entre o RUP e as Metodologias Ágeis

Vejo alguns livros considerando o RUP como ágil e outros não. Os livros mais tradicionais não o consideram ágil, o que soa mais correto por, historicamente, ele não ter surgido no “boom” do manifesto ágil e existirem metodologias irmãs a ele que buscam aspectos mais ágeis no processo, como o UP Agile. Se o RUP não é equivalente a um método ágil, o que falta nele? É possível abordá-lo de uma forma mais ágil?

O RUP é iterativo, incremental e em muitos aspectos se parece com uma metodologia ágil, mas, em muitos outros ele é diferente de uma metodologia ágil qualquer. Estarei listando abaixo os pontos:

Número de artefatos

O livro “Utilizando UML e Padrões”, indicado pelo Martin Fowler para entender projeto orientado a objeto, diz que “O PU não era destinado por seus criadores a ser pesado ou não ágil, apesar de seu grande conjunto OPCIONAL de atividades e artefatos ter compreensivelmente levado alguns a ter essa impressão. Ao contrário, estava destinado a ser adotado e aplicado no espírito de adaptabilidade de leveza – um PU ágil.”

Então, originalmente, o UP não tinha interesse em inserir no processo um grande número de artefatos. Ele apenas sugere os artefatos possíveis de serem usados. Em algumas outras partes do livro é dito que se quiser usar outros artefatos, fugindo um pouco dos que foram sugeridos, não há problema. Ou seja, não há rigidez quanto ao número e tipo de artefatos, apenas indicações.

O grande problema é implementações do UP, como o RUP, acabaram forçando de certa forma um número grande de artefatos ao longo de seu processo e isso o diferencia de metodologias ágeis que costumam empregar a modelagem ágil com seu princípio de documentar apenas quando for necessário se comunicar mais especificamente.

Iterações possuem todas as fases da metodologia

OBS do RUP: Existem 4 fases, Concepção, Elaboração, Construção e Transição. Cada fase é composta por objetivos e por várias iterações que farão com que esse objetivo seja alcançado por meio de aplicações de disciplinas que correspondem a Análise, Planejamento, Modelagem, Desenvolvimento e Teste.

As metodologias ágeis tem em suas iterações todas as etapas (Análise, Planejamento, Modelagem, Desenvolvimento e Teste), ou seja, as iterações são processos completos que resultarão em requisitos funcionando. No RUP, em cada iteração serão aplicadas disciplinas que corresponderão a essas etapas descritas acima, porém, o nível de aplicação depende do enfoque da fase que a iteração está ocorrendo. Por exemplo, na fase de Elaboração, disciplinas relacionadas a modelagem aparecerão com maior aplicação nas iterações, mas essa mesma disciplina não tem grande aplicação nas iterações da fase de Transição.

Escopo

É sabido que, nas metodologias ágeis, o escopo não é definido previamente ou por completo em uma fase qualquer. No RUP, há um grande enfoque na definição do escopo na primeira fase da metodologia, que é a fase de Concepção. Apesar do RUP pregar a realimentação de informações ao longo do processo para refinar os requisitos ao longo do processo, a fase de Concepção traz um foco maior a definição do prévio do escopo, que foge das características de uma metodologia ágil.

É possível abordá-lo de uma forma mais ágil?

Não é difícil abordar o RUP como uma visão mais ágil. Basta retornar alguns conceitos do UP no RUP, como a maleabilidade nos artefatos e tornar a fase de Concepção um pouco mais aberta quanto a definição do escopo. O que acredito que seja mais difícil é tentar reduzir o foco de cada fase e iteração, abordando em cada uma mais de todo o processo e tornando-as mais completas.

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s