quinta-feira, 26 de março de 2009

RUP e Scrum de mãos dadas

Já escutei e li muitas coisas sobre RUP (Rational Unified Process) e Scrum. Principalmente no sentido em que um é melhor que outro, em algum aspecto.

Esta comparação, ao meu ver, pode ser extremamente pertinente ou completamente incoerênte, dependendo do que irá ser abordado. Vou procurar me explicar.
O RUP, em resumo, representa um framework de melhores práticas para orientar a criação, ou adaptação de processos de engenharia de sofware. Ou seja, como o próprio RUP prega em seu primeiro dos seis princípios, o Adapt the Process, você deve ser capaz de identificar as áreas em que a cobertura na estrutura do processo RUP é considerada insuficiente para o seu projeto e balancear os níveis de cerimônia, precisão e controle, de acordo com uma variedade de fatores, incluindo o tamanho e a distribuição de equipes, a quantidade de restrições externamente impostas e a fase na qual o projeto se encontra.
E é justamente na questão de controle que eu vejo que o Scrum pode apoiar, e muito, já que ele não é um processo de engenharia de software, mas sim, um framework empírico de Gerenciamento de Projetos que busca prover maior visibilidade sobre os sucessos, insucessos, impedimentos, comprometimentos das equipe e satistação do cliente ao longo do projeto.
Portanto, fica claro que apesar de Scrum ter algumas práticas que auxiliariam em diversas disciplinas do RUP, a disciplina que ele poderia, em um primeiro momento ser mais utilizado, é na disciplina de Gerência de Projeto, como forma de se ter maior controle e visibilidade de como o projeto está andando (reuniões, quadro kanban); Priorizar de requisitos e planejar as iterações de forma a produzir entregáveis com maior valor (ROI) para o cliente; Possibilitar a criação de uma equipe auto-gerenciada, facilitando ainda mais o trabalho do Gerente de Projeto; Obter estimativas mais realistas com práticas como o plannig poker.
Podemos perceber inclusive que muitas das práticas que o Scrum prega, já fazem parte dos princípios do RUP, tais como: Balance Competing Stakeholders Priorities, Demonstrate Value Iteratively e Focus Continuously on Quality.
Da mesma forma que já vi muitos projeto que disseram ter usado RUP falharem, principalmente pelo não entendimento de seus princípios e por tentar utilizar tudo, eu estou vendo muitos projetos que dizem usar o Scrum falharem ou indo para o mesmo caminho de fracasso, pois acreditam que Scrum é um processo de engenharia, que terá respostas para tudo, e não é verdade.
Devemos sempre lembrar que o próprio Manisfesto Ágil informa que por exemplo “Indivíduos e interações são mais importantes que processos e ferramentas”, mas não que devemos descartar os processos e ferramentas.
Com isso, o RUP sendo uma estrutura de processo adequada para uma grande variedade de tipos de projetos, podemos com toda certeza, obter nele alguma boas práticas em nossos processos ágeis que utilizam o Scrum como gerenciamento.
Em suma, com as poucas características ditas acima sobre o RUP e Scrum, vejo claramente que ambos possam ser usados em conjunto, como forma de si complementarem. Então, vamos usar os dois o máximo que possível e contruir projetos com qualidade.
Bons processos e projetos. ;D

3 comentários:

yeahtech disse...

Parabens, muito bom o Artigo. Realmente as vantagens conceituais e práticas da fusão do RUP e SCRUM são grandes.

yeahtech disse...

Um ponto interessante é como mensurar o cronograma sem usar Gantt ou ponto de Função/UC. Com Scrum é possivel minimizar a margem de erro através de Fibonacci. Veja: http://agilblog.locaweb.com.br/tag/scrum/

msluiz disse...

http://www.devmedia.com.br/gestao-agil-de-projetos-com-rup-e-scrum-revista-engenharia-de-software-magazine-54/26627