Joaquim Oliveira Grupo de Estudos em Processos 25/06/2002 Comparação entre Metodologias de...

37
Joaquim Oliveira Grupo de Estudos em Processos 25/06/2002 Comparação entre Metodologias de Desenvolvimento

Transcript of Joaquim Oliveira Grupo de Estudos em Processos 25/06/2002 Comparação entre Metodologias de...

Page 1: Joaquim Oliveira Grupo de Estudos em Processos 25/06/2002 Comparação entre Metodologias de Desenvolvimento.

Joaquim OliveiraGrupo de Estudos em Processos25/06/2002

Comparação entre Metodologias de Desenvolvimento

Page 2: Joaquim Oliveira Grupo de Estudos em Processos 25/06/2002 Comparação entre Metodologias de Desenvolvimento.

2

Roteiro

Metodologias Ágeis eXtreme Programming (XP) SCRUM Crystal Clear Feature Driven Development (FDD) Agile Modeling Dynamic System Development Method (DSDM)

Page 3: Joaquim Oliveira Grupo de Estudos em Processos 25/06/2002 Comparação entre Metodologias de Desenvolvimento.

3

Roteiro

Metodologias Tradicionais RUP OPEN Catalisys

Comparação

Page 4: Joaquim Oliveira Grupo de Estudos em Processos 25/06/2002 Comparação entre Metodologias de Desenvolvimento.

4

eXtreme Programming

Proposta por Kent Beck Baseia-se em 4 valores...

Comunicação Feedback Simplicidade Coragem

...e 12 práticas Iterativo e incremental. Iterações de 2 semanas.

Page 5: Joaquim Oliveira Grupo de Estudos em Processos 25/06/2002 Comparação entre Metodologias de Desenvolvimento.

5

eXtreme Programming Prática 1: Jogo do Planejamento

Planejar rapidamente, sem muitos detalhes, o escopo do próximo release, considerando prioridades de negócios, aspectos técnicos, estimativas. Alterar o planejamento sempre que ele se mostrar inadequado

Prática 2: Releases curtos Colocar um sistema simples em produção rapidamente. Liberar novas

versões em ciclos curtos de tempo

Prática 3: Metáfora Guiar o desenvolvimento através de uma história simples, de

entendimento de todos

Page 6: Joaquim Oliveira Grupo de Estudos em Processos 25/06/2002 Comparação entre Metodologias de Desenvolvimento.

6

eXtreme Programming Prática 4: Design Simples

Projetar o mais simples possível.

Prática 5: Teste Testes unitários automáticos, produzidos durante implementação.

Clientes escrevem testes para demonstrar quando os requisitos estão prontos

Prática 6: Refactoring Reestruturar o sistema sem alterar o seu comportamento para

remover duplicação, melhorar comunicação, simplificar ou adicionar funcionalidade

Page 7: Joaquim Oliveira Grupo de Estudos em Processos 25/06/2002 Comparação entre Metodologias de Desenvolvimento.

7

eXtreme Programming Prática 7: Programação em Pares

Toda a produção de código é feita por pares de programadores trabalhando na mesma máquina

Prática 8: Collective Ownership Todos podem alterar qualquer parte do código a qualquer momento

Prática 9: Integração Contínua Integrar e construir o sistema várias vezes ao dia, sempre que

uma tarefa é completada

Page 8: Joaquim Oliveira Grupo de Estudos em Processos 25/06/2002 Comparação entre Metodologias de Desenvolvimento.

8

eXtreme Programming Prática 10: 40 horas por Semana

Não trabalhar mais que 40hs por semana. Nunca trabalhar horas extra em duas semanas consecutivas

Prática 11: Cliente no local Usuário real é integrante da equipe, trabalha onde a equipe

trabalha e está disponível para responder perguntas a qualquer momento

Prática 12: Padrão de Codificação Escrever todo o código de acordo com um padrão estabelecido,

visando facilitar a comunicação através do código

Page 9: Joaquim Oliveira Grupo de Estudos em Processos 25/06/2002 Comparação entre Metodologias de Desenvolvimento.

9

SCRUM

Metodologia em forma de pattern Características

Iterativa e incremental, com iterações de 1 mês (sprints)

Equipes de 6 a 10 pessoas Requisitos em constante mudança (ambiente caótico)

Envolvimento do “cliente” Não estabelece técnicas para o desenvolvimento

Page 10: Joaquim Oliveira Grupo de Estudos em Processos 25/06/2002 Comparação entre Metodologias de Desenvolvimento.

10

SCRUM

Fases

Page 11: Joaquim Oliveira Grupo de Estudos em Processos 25/06/2002 Comparação entre Metodologias de Desenvolvimento.

11

SCRUM

Page 12: Joaquim Oliveira Grupo de Estudos em Processos 25/06/2002 Comparação entre Metodologias de Desenvolvimento.

12

SCRUM

Priorização dos requisitos Importância para o negócio Riscos para o projeto

Acompanhamento freqüente das atividades SCRUM Master

Mediador dos encontros Acompanhar o progresso da equipe

XP@SCRUM

Page 13: Joaquim Oliveira Grupo de Estudos em Processos 25/06/2002 Comparação entre Metodologias de Desenvolvimento.

13

Feature Driven Development Proposta por Peter Coad et al. Baseia-se no conceito de feature

“Pequenas funcionalidades que possuam valor para o usuário”

Iterativa e incremental. Iterações de 2 semanas Equipes de 16 a 20 pessoas, divididas em sub-

equipes

Page 14: Joaquim Oliveira Grupo de Estudos em Processos 25/06/2002 Comparação entre Metodologias de Desenvolvimento.

14

Composta de 5 atividades principais

Participação de especialistas do negócio Esclarecem o contexto do sistema e priorizam as features

Escalável para grandes equipes Basta ter programadores-chefe suficientes

Feature Driven Development

Desenvolver um modelo

geral

Elaborar uma lista de features

Planejarpor

feature

Projetarpor

feature

Construirpor

feature

Page 15: Joaquim Oliveira Grupo de Estudos em Processos 25/06/2002 Comparação entre Metodologias de Desenvolvimento.

15

Crystal Clear

“Caçula” de uma família de metodologias, proposta por Alistair Cockburn

Iterativo e incremental, com iterações fixas Equipes de 3 a 6 pessoas Sistemas que não sejam críticos Define papéis e artefatos “Strong on communication, light on deliverables”

Page 16: Joaquim Oliveira Grupo de Estudos em Processos 25/06/2002 Comparação entre Metodologias de Desenvolvimento.

16

Crystal Clear O cliente deve estar envolvido

Esclarece os requisitos sempre que necessário Prioriza o que deve ser feito

A equipe participa do planejamento Requisitos na forma de pequenas descrições Entregas freqüentes, para se obter feedback Não especifica técnicas

Gerenciamento dirigido a milestones e riscos O resto é com a equipe!

Page 17: Joaquim Oliveira Grupo de Estudos em Processos 25/06/2002 Comparação entre Metodologias de Desenvolvimento.

17

DSDM

Criado por um consórcio, devido a necessidades da comunidade de RAD

Define O QUE e não COMO Pode ser usado com RUP, XP, etc...

Iterativo e incremental. Iterações de 2 a 6 semanas

Recursos e tempo fixos, escopo negociável

Page 18: Joaquim Oliveira Grupo de Estudos em Processos 25/06/2002 Comparação entre Metodologias de Desenvolvimento.

18

DSDM

Page 19: Joaquim Oliveira Grupo de Estudos em Processos 25/06/2002 Comparação entre Metodologias de Desenvolvimento.

19

DSDM

Guiado por 9 princípios1. O envolvimento ativo do usuário é essencial2. As equipes DSDM devem estar capacitadas a tomar

decisões3. Foco na entrega freqüente de produtos4. Adequação aos objetivos do negócio é o principal

critério de aceitação 5. O desenvolvimento iterativo e incremental é

necessário para uma solução de negócio precisa

Page 20: Joaquim Oliveira Grupo de Estudos em Processos 25/06/2002 Comparação entre Metodologias de Desenvolvimento.

20

DSDM

Guiado por 9 princípios6. Todas as mudanças durante o desenvolvimento são

reversíveis7. Os requisitos são definidos em um alto nível de

abstração8. Testes são executados durante todo o ciclo de vida9. Colaboração e cooperação entre os stakeholders é

essencial

Page 21: Joaquim Oliveira Grupo de Estudos em Processos 25/06/2002 Comparação entre Metodologias de Desenvolvimento.

21

Agile Modeling

Modelar de forma simples e eficiente Complementa outras metodologias de

desenvolvimento Um modelo ágil

É fácil de ser entendido É simples Possui precisão e detalhamentos necessários Agrega valor ao projeto

Page 22: Joaquim Oliveira Grupo de Estudos em Processos 25/06/2002 Comparação entre Metodologias de Desenvolvimento.

22

Agile Modeling

Valores: comunicação, feedback, simplicidade, coragem e humildade

Alguns princípios Assumir simplicidade “Abraçar” as mudanças Modelar com um propósito Melhoria incremental Obter feedback rápido Conhecer vários modelos

Page 23: Joaquim Oliveira Grupo de Estudos em Processos 25/06/2002 Comparação entre Metodologias de Desenvolvimento.

23

Agile Modeling

Algumas práticas Participação ativa do usuário Crie modelos simples, com desenhos simples Utilize os artefatos corretos Modele em pequenos incrementos Modele com outras pessoas Use ferramentas simples Use o código para provar que o modelo está certo

Page 24: Joaquim Oliveira Grupo de Estudos em Processos 25/06/2002 Comparação entre Metodologias de Desenvolvimento.

24

RUP

Framework para processos Principais Características

Iterativo e Incremental Guiado por casos de uso e riscos Ênfase na arquitetura

As duas dimensões do RUP Fases Fluxos ou disciplinas

Page 25: Joaquim Oliveira Grupo de Estudos em Processos 25/06/2002 Comparação entre Metodologias de Desenvolvimento.

25

RUP

Page 26: Joaquim Oliveira Grupo de Estudos em Processos 25/06/2002 Comparação entre Metodologias de Desenvolvimento.

26

RUP

RUP ágil Propostas da Rational

RUP para pequenos projetos Abordagens ágeis para o RUP O RUP de um homem só

dX, de Robert Martin Instância de Craig Larman em “Applying UML and

Patterns”

Page 27: Joaquim Oliveira Grupo de Estudos em Processos 25/06/2002 Comparação entre Metodologias de Desenvolvimento.

27

OPEN Framework para processos

Desenvolvimento pelo OPEN Consortium Unificação de várias metodologias: MOSES, SOMA, Firesmith,

Synthesis, etc... Componentes do OPEN Process Framework

Produtos e Produtores Linguagens Unidades de Trabalho Estágios Guias

Page 28: Joaquim Oliveira Grupo de Estudos em Processos 25/06/2002 Comparação entre Metodologias de Desenvolvimento.

28

OPEN

Page 29: Joaquim Oliveira Grupo de Estudos em Processos 25/06/2002 Comparação entre Metodologias de Desenvolvimento.

29

OPEN

Produtos: qualquer coisa de valor produzida durante o projeto Documentação, código, diagramas, etc...

Produtores: algo que cria, mantém ou avalia um produto Pessoas, equipes, organizações,...

Linguagens: a mídia utilizada para documentar um produto Linguagem natural, UML, Java, SQL, IDL,...

Page 30: Joaquim Oliveira Grupo de Estudos em Processos 25/06/2002 Comparação entre Metodologias de Desenvolvimento.

30

OPEN

Unidades de Trabalho Atividade Tarefa Técnica Realização da Tarefa (Task performance)

Estágios Ciclos e Fases Build, release e deployment

Page 31: Joaquim Oliveira Grupo de Estudos em Processos 25/06/2002 Comparação entre Metodologias de Desenvolvimento.

31

OPEN

Ciclos e fases

Page 32: Joaquim Oliveira Grupo de Estudos em Processos 25/06/2002 Comparação entre Metodologias de Desenvolvimento.

32

OPEN

Builds, releases e deployments

Page 33: Joaquim Oliveira Grupo de Estudos em Processos 25/06/2002 Comparação entre Metodologias de Desenvolvimento.

33

Catalysis Forte ênfase em componentes e reuso Usa UML como linguagem de modelagem Princípios Básicos

Abstração Precisão Partes Plugáveis Minimize a mágica Uma e somente uma vez

Conceitos de Modelagem Tipo Colaboração Refinamento

Page 34: Joaquim Oliveira Grupo de Estudos em Processos 25/06/2002 Comparação entre Metodologias de Desenvolvimento.

34

Catalysis Níveis de modelagem

Domínio do problema ou do negócio (outside) Especificação do componente (boundary) Implementação do componente (inside)

Tipos de modelos Estáticos: modelam um estado de um objeto, descrito através

de um conjunto de atributos Dinâmicos: modelam as mudanças de estado de um objeto,

descritas através de um conjunto de ações e suas pré e pós-condições

Interativos: modelam a comunicação entre objetos

Page 35: Joaquim Oliveira Grupo de Estudos em Processos 25/06/2002 Comparação entre Metodologias de Desenvolvimento.

35

Catalysis

Refinamento dos modelos 7 níveis de refinamento

Ênfase em riscos Iterações curtas feedback constante Várias “caminhos” para seguir o processo

Patterns para vários problemas Catalysis lite

Page 36: Joaquim Oliveira Grupo de Estudos em Processos 25/06/2002 Comparação entre Metodologias de Desenvolvimento.

36

ComparaçãoCARACTERÍSTICAS RUP OPEN Catalysis XP Crystal Clear Scrum DSDM Agile Modeling FDD

Iterativo e Incremental S S S S S S S N STamanho da equipe (máximo) N N N 12 6 10 N N NFases de projeto S S N P N S S N SÊnfase na comunicação N N N S S S S S NGuia o modo de execução das atividades S S P S N P N N NExplicitamente apoiado por ferramentas S N S S N N N S NParticipação do cliente P N P S P S S S SComponentização S S S N N N N N NEstabelece a produção de artefatos S S S S S S S S SEstabelece papéis S S N S S S S N SNecessidade de instanciação S S S N P N S P NConcepção de uma arquitetura S N S N P S S S SGuiada por funcionalidades S N P S S S S N SAtaca os riscos cedo S N S P S S N N NDesign simples N N N S N P P S SEquipe participa do planejamento N N N S S S S N NIntegração contínua P N N S N P P N SPequenhos releases P N P S S S S S SProgramação em pares N N N S P P P N PTestes constantes P N S S P P S N SMetáfora N N N S N N P N NPropriedade coletiva do código N N N S P P P S NRefatoramento constante N N S S N P P S PSemana de 40 horas N N N S N N P N NAcompanhamento constante P N P S S S S N SElaboração de Modelos/Diagramas S S S P P S S S S

Page 37: Joaquim Oliveira Grupo de Estudos em Processos 25/06/2002 Comparação entre Metodologias de Desenvolvimento.

37

Comparação

Tamanho das Iterações Envolvimento do usuário Planejamento preditivo x adaptativo Riscos técnicos x importância para o negócio Diferentes níveis de abstração na definição das

metodologias Metodologias tradicionais podem ser encaradas

de forma ágil!