Eu sou um fã do velho e bom RUP: acredito que ele é uma excelente base de conhecimento sobre a engenharia de software. Defendo a posição de que todo profissional que deseja trabalhar com o desenvolvimento de software deve conhecer o RUP. Quando se conhece profundamente o RUP, fica muito fácil entender outros processos de desenvolvimento, como os de metodologia ágeis.  Visando contribuir para que mais profissionais se interessem pelo RUP, esse artigo é dedicado aos elementos centrais e princípios do RUP

3 elementos centrais do RUP

1. desenvolvimento orientado pelo negócio

2. framework com blocos de conteúdo de método e processo reutilizáveis

3. uma linguagem para definição de método e processo

–UMA (Unified Method Architecture )

 
rup
6 princípios do RUP

Como é do nosso conhecimento os americanos adoram usar acrônimos para ajudar a gravar algum tipo de informação, e aqui os seis princípios do RUP são elencados em ordem alfabética de A , B, C, D, E, F, a saber:

Adaptar o processo

O princípio do tamanho único não se aplica ao desenvolvimento de software

Benefícios

–eficiência do ciclo de vida

•o processo adequado, para um determinado tipo de projeto, para uma determinada organização

–comunicação dos riscos

•menor controle e formalidade nas fases iniciais do projeto são essenciais para uma comunicação aberta e honesta, a qual resulta na melhor identificação dos riscos do projeto

Padrões

–tamanho certo do processo

–adaptar cerimonia do processo à fase do ciclo de vida

–melhoria contínua do processo

–planejamento e estimativas orientadas pelas incertezas

Anti-pradões

–baseline de estimativas precoce

–planejamento estático

 

Balancear as prioridades dos envolvidos

É um dos principais desafios que deve ser gerido durante o desenvolvimento do software

Benefícios

–aumento do alinhamento com o negócio

–redução do custo do desenvolvimento

–otimização do valor ao negócio

Padrões

–definir, entender e priorizar as necessidades do negócio e dos usuários

–priorizar requisitos e casá-los com a capacidade do software

–entender quais ativos podem ser alavancados

–balancear a reutilização com as necessidades dos usuários

Anti-pradões

–documentar precisamente todos os requisitos e obrigar a aceitação pelos usuários

–definir a arquitetura de um sistema para atender as necessidades dos envolvidos mais influentes

 

Colaborar entre os diversos times

Com os sistemas sendo arquitetado em um lado e o código sendo desenvolvido do outro lado do mundo, a dispersão das equipes é um fato. a comunicação efetiva é um fator de sucesso

Benefícios

–aumento da produtividade

–sinergia entre necessidades do negócio, o desenvolvimento e a área de operação

Padrões

–motivar as pessoas para fazerem o seu melhor

–times auto gerenciados

–colaboração entre áreas com diferentes capacidades

–prover ambiente colaborativo

–gestão envolvendo artefatos e tarefas

–integrar os times de negócio, software e operação

Anti-pradões

–desenvolvimento heroico, com horas extras

–pessoas altamente especializadas com baixo nível de colaboração

–assumir que se cada um faz o seu trabalho, o resultado será bom

Demonstrar valor iterativamente

Para um processo de desenvolvimento orientado ao negócio, demanda que o time de projeto demonstre o retorno do investimento em uma abordagem repetitiva ao longo do projeto

Benefícios

–redução precoce do risco

–previsibilidade do projeto

–credibilidade entre os envolvidos

Padrões

–incentivar feedbacks

–assumir que haverá mudanças

–remover os riscos

–adaptar os planos

Anti-pradões

–planejar o projeto inteiro em detalhes

–dedicação em entregáveis diferentes de um código executável

 

Elevar o nível de abstração

Uma abordagem de sucesso para tratar com complexidade é alavancar o uso de padrões e serviços, reutilização de componentes em vez de construir o software do zero.

Benefícios

–aumento da produtividade

–redução da complexidade

Padrões

–reutilização dos ativos existentes

–utilização de padrões (patterns)

–utilização de serviços

–uso de linguagens e ferramentas de alto nível

–foco na arquitetura

Anti-pradões

–ir diretamente dos requisitos de alto nível, para o código

 

Focar continuamente na qualidade

A qualidade inicia quando um requisito é documentado. A qualidade do sistema é afetada pela sua arquitetura. A inspeção de código e os testes unitários garantem que o código está aderente aos padrões estabelecidos. Os testadores testam baseados nos cenários de casos de uso, ou com requisitos não funcionais. A responsabilidade de encontrar erros deve ser compartilhada entre todo o time desenvolvimento

Benefícios

–qualidade elevada

–visão antecipada dos progressos obtidos e da sua qualidade

Padrões

–assegurar que e equipe seja a dona da qualidade do produto

–testar o mais cedo possível, e continuamente, demonstrando as capacidades do software em desenvolvimento

–construir a automação de testes incrementalmente

Anti-pradões

–revisões em pares muito aprofundadas

–finalizar os testes unitários antes do teste de integração

 

Tenho certeza que se você é um desenvolvedor e leu os 6 princípios do RUP, conseguiu identificar mais de um anti-padrão no seu processo de desenvolvimento atual. Estou certo?

 artigo adaptado do livro : IBM Rational Unified Process Reference and Certification Guide. 
 autores: Ahmad K. Shuja; Jochen Krebs.