Você está na página 1de 8

Manifesto Ágil - Princípios

USP – UNIVERSIDADE DO • Indivíduos e interações são mais importantes que


ESTADO DE SÃO PAULO processos e ferramentas.
• Software funcionando é mais importante do que
documentação completa e detalhada.
Métodos Ágeis • Colaboração com o cliente é mais importante do que
negociação de contratos.
•Alunos: Rogério Guaraci dos Santos - rgsantos@ime.usp.br
• Adaptação a mudanças é mais importante do que seguir
Giulian Dalton Luz - gdaltonl@ime.usp.br o plano inicial.
WebSite: http://www.agilemanifesto.org/

O que são os Modelos Ágeis?


• Métodos ágeis (AM) é uma coleção de
metodologias baseada na prática para
modelagem efetiva de sistemas baseados em • Um modelo ágil é um modelo bom o suficiente,
nada mais, o que implica que ele exibe as
software. É uma filosofia onde muitas seguintes características:
metodologias se encaixam. 1. Ele atende seu propósito
• As metodologias ágeis aplicam uma coleção 2. Ele é inteligível.
de práticas, guiadas por princípios e valores 3. Ele é suficientemente preciso.
que podem ser aplicados por profissionais 4. Ele é suficientemente consistente.
de software no dia a dia. 5. Ele é suficientemente detalhado.
6. Ele provê um valor positivo.
7. Ele é tão simples quanto possível.

3 4

O que é (e não é) métodos ágeis? O que é (e não é) métodos ágeis? (cont.)

1. É uma atitude, não um processo prescritivo.


2. É um suplemento aos métodos existentes, ele 5. É para o desenvolvedor médio, mas não é um
não é uma metodologia completa. substituto de pessoas competentes.
3. É uma forma efetiva de se trabalhar em conjunto 6. Não é um ataque à documentação, pelo contrário
para atingir as necessidades das partes aconselha a criação de documentos que tem
interessadas no projeto. valor.
4. É uma coisa que funciona na prática, não é 7. Não é um ataque às ferramentas CASE.
teoria acadêmica.

5 6

1
• Scrum é um processo para construir
SCRUM software incrementalmente em ambientes
Processo de Desenvolvimento de Software complexos, onde os requisitos não são
claros ou mudam com muita freqüência.

7 8

• O objetivo do Scrum é fornecer um


• Em Rugby, Scrum é um time de oito processo conveniente para projetos e
integrantes que trabalham em conjunto para desenvolvimento orientado a objetos.
levar a bola adiante no campo. Ou seja:
• A metodologia é baseada em princípios
times trabalhando como uma unidade
semelhantes aos de XP: equipes pequenas,
altamente integrada com cada membro
requisitos pouco estáveis ou desconhecidos,
desempenhando um papel bem definido e o
e iterações curtas para promover
time inteiro focando num único objetivo.
visibilidade para o desenvolvimento.

9 10

• No entanto, as dimensões em Scrum diferem de


XP.
• Scrum divide o desenvolvimento em Sprints de • Todo dia, é feita uma reunião de 15 minutos
30 dias. Equipes pequenas, de até 7 pessoas, são onde o time expões à gerência o que será
formadas por projetistas, programadores, feito no próximo dia, e nestas reuniões os
engenheiros e gerentes de qualidade. Estas equipes gerentes podem levantar os fatores de
trabalham em cima de funcionalidade (os impedimento, e o progresso geral do
requisitos, em outras palavras) definidas no início
desenvolvimento.
de cada Sprint. A equipe toda é responsável pelo
desenvolvimento desta funcionalidade

11 12

2
Fases – Sprint
Reuniões Diárias
•Scrum é interessante porque fornece um
• Todos respondem às perguntas: mecanismo de informação de status que é
– O que você realizou desde a última reunião? atualizado continuamente, e porque utiliza a
– Quais problemas você enfrentou? divisão de tarefas dentro da equipe de forma
– Em que você trabalhará até a próxima reunião? explicita.
• Benefícios:
Scrum e XP são complementares pois Scrum
– Maior integração entre os membros da equipe
provê práticas ágeis de gerenciamento
– Rápida solução de problemas
• Promovem o compartilhamento de conhecimento enquanto XP provê práticas integradas de
– Progresso medido continuamente engenharia de software.
• Minimização de riscos

13 14

Fases Fases de encerramento


• Planejamento

• Sprints
Reunião diária • Iniciada quando todos os aspectos são satisfatórios
do Scrum 24h
– Ciclos (tempo, competitividade, requisitos, qualidade, custo)

• Encerramento
Acúmulo de 30 dias • Atividades:
tarefas pela equipe
Sprint Backlog – Testes de integração
– Testes de sistema
– Documentação do usuário
Nova demonstração
de funcionalidade – Preparação de material de treinamento
Levantamento de
prioridades do produto – Preparação de material de marketing

15 16

Qualidade, Gerenciamento e Testes


¾ Passos e papéis bem definidos

¾ Gerenciamento de riscos Controles

¾ Revisões freqüentes / diárias Crystal


Backlog
¾ Definição de padrões
Processo de Desenvolvimento de Software
Release/Melhoria
¾ Realização de testes Mudanças
Problemas
¾ Elaboração de documentação Soluções

17 18

3
• Todo projeto tem necessidades,
convenções e uma metodologia
diferentes.
• Crystal/Clear faz parte, na realidade,
• O funcionamento do projeto é
de um conjunto de metodologias criado influenciado por fatores humanos, e há
por Cockburn. As premissas melhora neste quando os indivíduos
apresentadas para a existência deste produzem melhor.
conjunto são: • Comunicação melhor e lançamentos
freqüentes reduzem a necessidade de
construir produtos intermediários do
processo

19 20

• Crystal/Clear é uma metodologia • Toda a especificação e projeto são


direcionada a projetos pequenos, feitos informalmente, utilizando
com equipes de até 6 quadros publicamente visíveis. Os
desenvolvedores. Assim como com requisitos são elaborados utilizando
SCRUM, os membros da equipe
casos de uso, um conceito similar às
tem especialidades distintas. Existe
uma forte ênfase na comunicação estórias de usuário em XP, onde
entre os membros do grupo. são enunciados os requisitos como
Existem outras metodologias tarefas e um processo para sua
Crystal para grupos maiores. execução.
21 22

• Grande parte da metodologia é


• As entregas das novas versões de pouco definida, e segundo o autor,
software são feitos em incrementos isto é proposital; a idéia de
regulares de um mês, e existem Crystal/Clear é permitir que cada
alguns subprodutos do processo organização implemente as
que são responsabilidade de atividades que lhe parecem
membros específicos do projeto. adequadas, fornecendo um mínimo
de suporte útil do ponto de vista de
comunicação e documentos
23 24

4
A família Crystal de Métodos

• Criada por Alistair Cockburn


• http://alistair.cockburn.us/crystal Feature Driven Development
• Editor da série Agile Software Development da Desenvolvimento orientado a
Addison-Wesley. funcionalidades

Stephen Palmer & John Felsing 2002

25 26

FDD - Características FDD - Processos

¾ Método ágil e adaptativo; ¾ O FDD consiste de 5 processos principais:


¾ Foco nas fases de desenho e construção
¾ Interage com outras metodologias
¾ Não exige nenhum processo específico de modelagem
¾ Possui desenvolvimento iterativo
¾ Enfatiza aspectos de qualidade durante o processo e
inclui entregas freqüentes e tangíveis
¾ Suporta desenvolvimento ágil com rápidas adaptações
às mudanças de requisitos e necessidades do mercado

27 28

FDD – Processos (Cont.) FDD - Cargos e Responsabilidades


¾ Desenvolver um modelo compreensível (Develop an
¾ Principais
overall model)
9 Gerente de projeto (Project Manager)
¾ Construir uma lista de funcionalidades (Build a 9 Arquiteto líder (Chief architect)
features list) 9 Gerente de desenvolvimento (Development Manager)
¾ Planejar por funcionalidade (Plan By Feature) 9 Programador líder (Chief programmer)
¾ Projetar por funcionalidade (Design by feature) 9 Proprietário de classe (Class owner)
¾ Construir por funcionalidade (Build by feature) 9 Especialísta do domínio (Domain experts)
9 Gerente do domínio (Domain manager)

29 30

5
FDD - Cargos e Responsabilidades (Cont.) FDD - Boas Práticas

¾ De apoio
9 Gerente de versão (Release manager) ¾Modelagem de objetos de domínio (Domain Object Modeling)
9 Guru de linguagem (Language lawyer/language guru) 9 Exploração e explicação do problema do domínio
9 Engenheiro de construção (Build engineer) 9 Resulta em um arcabouço
9 “Ferramenteiro” (Toolsmith) ¾Desenvolver por funcionalidade (Developing by feature)
9 Administrador de sistemas (System Administrator) 9 Desenvolvimento e acompanhamento do progresso através de
da lista de funcionalidades.
¾ Adicionais ¾Proprietários de classes individuais (Individual class ownership)
9 Testadores (Testers) 9 Cada classe possui um único desenvolvedor responsável
9 Instaladores (Deployers)
9 Escritores técnicos (Technical writes)

31 32

FDD - Boas Práticas (Cont.)

¾ Equipe de funcionalidades (Feature teams)


9 Formação de equipes pequenas e dinâmicas.
9 Inspeção (Inspection) Dynamic Systems
9 Uso dos melhores métodos conhecidos de detecção de erros.
¾ Construções freqüentes (Regular Builds)
Development Method (DSDM)
9 Garantir que existe um sistema sempre disponível e de- Método dinâmico de
monstrável. desenvolvimento de sistemas
¾ Administração de Configuração (Configuration Manager)
9 Habilita acompanhamento do histórico do código-fonte..
DSDM Consortium - 1994
Jennifer Stapleton - 1997
33 34

DSDM - Características DSDM - Fases


¾ O DSDM consiste de 5 fases:
¾ Progenitor do XP Feasibility
¾ Arcabouço para desenvolvimento rápido de aplicações
Review Study
(RAD)
¾ Fixa tempo e recursos ajustando a quantia de funcio-
nalidades Funcional
¾ Pequenas equipes Model Implementation
¾ Suporta mudanças nos requisitos durante o ciclo de vida Iteration
Design
And Build
Iteration

35 36

6
DSDM – Fases (Cont.) DSDM - Cargos e Responsabilidades

¾Estudo das possibilidades (Feasibility study) ¾ Desenvolvedores (Developers)


¾Estudo dos negócios (Business study) ¾ Desenvolvedores Sêniores (Senior Developers)
¾Iteração do modelo funcional (Functional model ¾ Coordenador Técnico (Technical Coordinator
¾ Usuário Embaixador (Ambassador User)
iteration) ¾ Usuário Consultor (Adviser User)
¾Iteração de projeto e construção (Design and ¾ Visionário (Visionary)
build iteration) ¾ Executivo responsável (Executive Sponsor)
¾ Especialísta do domínio (Domain experts)
¾Implementação final (Final implementation) ¾ Gerente do domínio (Domain manager)

37 38

DSDM - Práticas

¾ Usuário sempre envolvido


¾ Equipe do DSDM autorizada a tomar decisões
¾ Foco na frequente entrega de produtos Adaptive Software Development
¾ Adaptação ao negócio é o critério para entregas
“Construa o produto certo antes de você construí-lo Desenvolvimento
corretamente” Adaptável de Software
¾ Desenvolvimento iterativo e incremental
¾ Mudanças são reversíveis utilizando pequenas iterações
¾ Requisitos são acompanhados em alto nível
¾ Testes integrados ao ciclo de vida James A. Highsmith III – 2000

39 40

ASD - Características ASD - Fases


¾ O ASD possui ciclos de 3 fases:
¾Iterativo e incremental
¾Sistemas grandes e complexos
¾Arcabouço para evitar o caos
¾Cliente sempre presente
¾Desenvolvimento de aplicações em conjunto
(Joint Application development – JAD)

41 42

7
ASD – Fases (Cont.) ASD - Propriedades
¾ Especular (Speculate)
9 Fixa prazos e objetivos ¾ Orientado a missões (Misson-driven)
9 Atividades são justificadas através de uma missão, que pode
9 Define um plano baseado em componentes
mudar ao longo do projeto
¾ Colaborar (Collaborate) ¾ Baseado em componentes (Component-based)
9 Construção concorrente de vários componentes 9 Construir o sistema em pequenos pedaços
¾ Aprender (Learn) ¾ Iterativo (Iterative)
9 Repetitivas revisões de qualidade e foco na demostranção das 9 Desenvolvimento em cascata (Waterfall) só funciona em
funcionalidades desenvolvidas (Learning loop) ambientes bem definidos e compreendidos. O ASD possui
9 Presença do cliente e especialistas do domínio foco em refazer do que fazer corretamente já na primeira vez
‰ Os ciclos duram de 4 a 8 semanas
43 44

ASD – Propriedades (Cont.) ASD - Cargos e Responsabilidades


‰ Este método não descreve cargos em detalhes
¾ Executivo responsável (Executive Sponsor)
¾ Prazos pré-fixados (Time-boxed) ‰ Participantes de uma sessão (workshop) do desenvolvimento de
9 Força os participantes do projeto a definir severamente aplicações em conjunto (JAD)
decisões do projeto logo cedo. ¾ Facilitador (Facilitator)
¾ Tolerância a mudanças (Change-tolerant) 9Liderar e planejar as sessões
9 As mudanças são freqüentes ¾ Escriba (Scribe)
9 É sempre melhor estar pronto a adaptá-las do que controlá-las ¾ Efetuar anotações
9 Constante avaliação de quais componentes podem mudar ¾ Cliente (Customer)
9Sempre presente
¾ Orientado a riscos (Risk driver) ¾ Gerente de Projetos (Project Manager)
9 Itens de alto risco são desenvolvidos primeiro ¾ Desenvolvedores (Developers)

45 46

Outras Metodologias Ágeis Links Relacionados


• http://www.agilemanifesto.org/
• http://www.dcc.unicamp.br/~ra022247/Arquivos/scrum.pdf
¾ Extreme Programming • http://www.poli.usp.br/pro/procsoft/tproepusp04.pdf
¾ Rational Unified Process (RUP) • http://alistair.cockburn.us/crystal
9 Considerado uma metodologia ágil por alguns autores • http://www.featuredrivendevelopment.com/
¾ Open Source Software Development • http://www.dsdm.org/
¾ Agile Modeling • http://www.adaptivesd.com/
¾ Pragmatic Programming • http://www.rspa.com/spi/process-agile.html
• http://www.vtt.fi/inf/pdf/publications/2002/P478.pdf
• www.ime.usp.br/~gdaltonl/ageis.htm
47 48

Você também pode gostar