As Diferenças do OpenUp para o RUP

Aproveitando a Dúvida de um leitor vim neste post para falar das diferenças do RUP e do OpenUP. Vou focar nos pontos que considero mais importantes destes grandes métodos de desenvolvimento de software.

Vamos aos pontos em comum. Ambos são métodos para desenvolvimento de software, o foco desses métodos é a fase de projeto, ou seja, até o momento de colocar o software em produção depois disso é outra história e já não é não é o foco desses métodos. Se você procura um método de desenvolvimento de software baseado em RUP mas está mais preocupado com a pós-construção, manutenção e desativação do mesmo recomendo que você confira o EUP do Scott Ambler.

RUP não é cascata!

Do contrário de que muitos pensam RUP é um método de desenvolvimento de software iterativo e incremental. O OpenUP também não é um método em cascata. Apesar de muitas vezes ambos serem usados de maneira errada. A proveito para dizer nesse post que RUP/OpenUP tem defeitos sim! E não são dois tipos de bala de prata que resolveram todos os seus problemas.

O RUP veio primeiro

Ele é a unificação de outros métodos de desenvolvimento de software. Este método foi unificado em concebido pela Rational que mais tarde veio a ser adquirida pela IBM. O OpenUP veio depois e na verdade ele é um sub-set do RUP mixado com terminologias ágeis.



E a Definição de RUP da Wikipedia?

Por favor não a leia. Lá existem diversos equívocos sobre o método. A Definição de RUP da wikipedia mais ensina-lo coisas erradas sobre o método, então se você quiser ter a visão correta do que o RUP é confira esses posts a baixo:
O Foco do RUP

Seu foco são Requisitos do Usuário(Casos de uso), Arquitetura e Fases. O OpenUP segue essa linha e adiciona diversas práticas dos métodos ágeis. No RUP existem diversos papeis que tem sentido se você tem um projeto muito grande, em projetos pequenos a mesma pessoa pode acumular várias funções.

O RUP clássico é para projetos realmente grandes! Mas ele pode funcionar com projetos pequenos basta você o adaptar. A primeira diretriz do RUP é adapte o processo então isso significa que não é para você usar todos os artefatos que tem lá e todas as funções.

Qual é o problema? Tailoring?



Evil Santa Tailoring?

Do contrário que muita gente pensa tailoring de processo não é algo maligno! Fazer Tailoring não significa usar somente as práticas do RUP! Logo o problema é que muitas vezes os profissionais que usam RUP não sabem o impacto de usar ou não usar determinada prática. Não sabem o problema de produzir ou não produzir determinados artefatos.

O Problema são os Artefatos então?


Arqueologia?

Bom artefato é tudo o que você produz. Isso não significa apenas documentos do word e excel. Logo um post-it o dashboard e até mesmo uma foto de um diagrama é um artefato. O RUP e o OpenUp usam artefatos para mostrar como você ira trabalhar, claro que em um projeto grande isso é usado para ter mais controle, mas ai vem a grande questão que é sempre balancear agilidade e formalismo.

O que você acha disso?


Dashboard do Scrum + Gráficos

São artefatos! E digo mais isso é formalismo, são coisas que temos que fazer e adivinhe só, quando atualizamos o dashboard todo o dia nesses 15min não estamos construindo software, viu? Até mesmo os métodos ágeis tem formalismo, a diferença é que em agile existe um baixo formalismo. Ter um baixo ou alto formalismo não necessariamente é uma coisa ruim ou boa.

OpenUp é mais ágil e menos formal?

Sim de facto é. RUP por default é mais formal do que agile e normalmente você usa esse maior formalismo em um projeto maior no qual você necessita de mais disciplina, lembre-se reunião de pé e atualizar o gráfico de burn-down no Scrum são formalismos.

Mas afinal qual o grande problema do RUP?


A Resposta é essa!

Muitas vezes é o mesmo problema que o Agile tem em alguns aspectos. É a falta de estudo das pessoas sobre o método e sobre o próprio processo de desenvolvimento de software. Você precisa entender de processo de desenvolvimento antes de sair sair fazendo tailoring em RUP/OpenUP e até mesmo Agile.

O RUP tem problemas

Falta foco nas pessoas que são importantes, além do mais falta foco em revisão e melhoria do próprio processo, nesse sentido o Scrum é muito melhor do que RUP. Falta agilidade. Mas isso não significa que o processo seja ruim, mas eu não usaria o RUP puro do jeito que é assim como não usaria Scrum puro também.

Eu realmente gosto de um Dashboard!

Por que um dashboard é algo que não tem no RUP. Mas não é por isso que eu gosto, gosto por que aumenta o foco da equipe e facilita as conversas informais. Documentos em Word e excel assim como sites internos para o projeto como CMS/Wiki são válidos mas você há de convir que não tem como ficar abrindo isso tudo toda a hora. Estando na parede não tem erro todo mundo olha querendo ou não.

O OpenUP é o canal!

O OpenUp é um tailoring do RUP, porem misturando com agile,Scrum e XP. O problema que vejo do OpenUP é que ele foi capado até de mais, mas já bem util por que mantém as práticas de gestão de requisitos e riscos do RUP. O OpenUP é menos formal do que o RUP, mas mesmo assim isso não significa que você pode sair usando o mesmo.

Os Níveis!

Outra coisa muito interessante e extremamente válida é que como o OpenUp junto as fases do RUP com os ciclos curtos o dashboard e as reuniões de pé do Scrum nos temos dois níveis de gerenciamento de projeto, assim não iremos executar aquela velha gerencia linear.

Os Papéis?


Papéis?

O OpenUp diminuiu muito os papeis em relação ao RUP isso ficou bom. Não estou dizendo que o RUP é burocrático ou uso errado do mesmo pode ser. O Workflow de trabalho também fico muito mais simplificado.

Outra diferença é que o OpenUp é aberto e gratuito e o RUP é fechado e pago, as versões antigas do RUP já estão abertas hoje em dia, mas as novas não. Muitas vezes o problema do RUP são os ditos consultores de RUP que muitas vezes também não sabem bem o que estão fazendo.

Um problema do OpenUp que vejo é a gerencia de configurações que ficou meio capada. Isso é muito forte no RUP e foi dividido em 3 disciplinas, poderia existir uma única disciplina no OpenUp cobrindo as três e dando uma reduzida.

O que eu faço na prática?

Uso de tudo. Tanto coisa que só tem no RUP como práticas do OpenUp e coisas do Agile, Scrum, Kanban, etc... Mas o mais importante é você ter ciência do que acontece se escolher usar práticas A ou B de algum métodos desses e também é importante que você saiba o que pode acontecer se você não usar algo.

Ir aos extremos de usar Tudo ou não usar nada desses métodos não vai resolver o seu problema, mesmo que lhe digam que vai. O que é bom aos ouvidos nem sempre é funcional!


Popular posts from this blog

C Unit Testing with Check

Having fun with Zig Language

HMAC in Java