metodologia Ágil lílian simão oliveira. fonte: pressman, 2004 aulas prof. auxiliadora freire e...

40
METODOLOGIA ÁGIL Lílian Simão Oliveira

Upload: internet

Post on 22-Apr-2015

104 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: METODOLOGIA ÁGIL Lílian Simão Oliveira.  Fonte:  Pressman, 2004  Aulas Prof. Auxiliadora Freire e Sabrina Schürhaus

METODOLOGIA ÁGIL

Lílian Simão Oliveira

Page 2: METODOLOGIA ÁGIL Lílian Simão Oliveira.  Fonte:  Pressman, 2004  Aulas Prof. Auxiliadora Freire e Sabrina Schürhaus

Fonte: Pressman, 2004 Aulas Prof. Auxiliadora Freire e Sabrina

Schürhaus

Page 3: METODOLOGIA ÁGIL Lílian Simão Oliveira.  Fonte:  Pressman, 2004  Aulas Prof. Auxiliadora Freire e Sabrina Schürhaus

Desennvolvimento rápido de software

Devido à rápida mudança dos ambientes de negócio, os negócios devem responder às novas oportunidades e à competição.

Isso requer software e desenvolvimento rápido, e a entrega é, freqüentemente, o requisito mais crítico para sistemas de software.

Os negócios podem estar dispostos a aceitar um software de baixa qualidade se a entrega rápida e a funcionalidade essencial for possível.

Page 4: METODOLOGIA ÁGIL Lílian Simão Oliveira.  Fonte:  Pressman, 2004  Aulas Prof. Auxiliadora Freire e Sabrina Schürhaus

"Manifesto Para o Desenvolvimento Ágil de Software"

reunião entre 17 gurus da comunidade de desenvolvimento

Realizada entre os dias 11 e 13 de fevereiro de 2001

Estação de esqui nas montanhas deUtah, Estados Unidos.

Page 5: METODOLOGIA ÁGIL Lílian Simão Oliveira.  Fonte:  Pressman, 2004  Aulas Prof. Auxiliadora Freire e Sabrina Schürhaus

Manifesto Ágil (Princípios)

• Indivíduos e interações => mais importantes que processos e ferramentas.

• Software funcionando => mais importante do que documentação completa e detalhada.

• Colaboração com o cliente => mais importante do que negociação de contratos.

• Adaptação a mudanças => mais importante do que seguir o plano inicial.

• Evento ocorrido em 2001

WebSite: http://www.agilemanifesto.org

Page 6: METODOLOGIA ÁGIL Lílian Simão Oliveira.  Fonte:  Pressman, 2004  Aulas Prof. Auxiliadora Freire e Sabrina Schürhaus

Metodologia Ágil

Fonte: Aula Auxiliadora Freire

Page 7: METODOLOGIA ÁGIL Lílian Simão Oliveira.  Fonte:  Pressman, 2004  Aulas Prof. Auxiliadora Freire e Sabrina Schürhaus

O que é agilidade?

Equipe ágil

Modificações

Facilidade em alterar

Page 8: METODOLOGIA ÁGIL Lílian Simão Oliveira.  Fonte:  Pressman, 2004  Aulas Prof. Auxiliadora Freire e Sabrina Schürhaus

Problemas com métodos ágeis Difícil manter o interesse dos clientes no

processo As equipes podem ser inadequadas para

o intenso envolvimento que caracteriza os métodos ágeis

A priorização de mudanças pode ser difícil onde existem múltiplos stakeholders

A manutencão da simplicidade requer trabalho extra

Problemas nos contratos

Page 9: METODOLOGIA ÁGIL Lílian Simão Oliveira.  Fonte:  Pressman, 2004  Aulas Prof. Auxiliadora Freire e Sabrina Schürhaus

Metodologias ágeis(agile software development ecosystems - ASDEs)

XP (eXtreme Programming) DSDM ( Dynamic Systems Development Method) Família Crystal ASD (Adaptive Software Development) SCRUM FDD (Feature-driven development) LD ( Lean Development ) Open Source

Obs: Todos os seus autores com exceção do autor de LD e OpenSource participaram do Manifesto Ágil e portanto possuem princípios em comum.

Page 10: METODOLOGIA ÁGIL Lílian Simão Oliveira.  Fonte:  Pressman, 2004  Aulas Prof. Auxiliadora Freire e Sabrina Schürhaus

XP (EXTREME PROGRAMMING)

Page 11: METODOLOGIA ÁGIL Lílian Simão Oliveira.  Fonte:  Pressman, 2004  Aulas Prof. Auxiliadora Freire e Sabrina Schürhaus

XP (eXtreme Programming)

Projeto C3 (Chrysler) - Kent Beck, Ward Cunningham and Ron Jeffries (1996) http://www.xprogramming.org

Valores: Comunicação Simplicidade Feedback Coragem

12 Práticas: Pair Programnig, Refactoring, Simple Design, Test-driven

development Collective Ownership, Coding Standard, Continuous

Integration, Sustainable Pace Customer tests, Whole Team, Planning Game, Small

Releases, Metaphor

Page 12: METODOLOGIA ÁGIL Lílian Simão Oliveira.  Fonte:  Pressman, 2004  Aulas Prof. Auxiliadora Freire e Sabrina Schürhaus

DSDM (DYNAMIC SYSTEMS DEVELOPMENT

METHOD) MÉTODO DINÂMICO DE DESENVOLVIMENTO DE SISTEMAS

Page 13: METODOLOGIA ÁGIL Lílian Simão Oliveira.  Fonte:  Pressman, 2004  Aulas Prof. Auxiliadora Freire e Sabrina Schürhaus

DSDM (Dynamic Systems Development Method) Método Dinâmico de Desenvolvimento de Sistemas

Proprietária do consórcio DSDM (Reino Unido, 1994) http://www.dsdm.org/

Ciclo: Estudo de viabilidade Estudo do negócio (workshops) 3 ciclos em paralelo, entrelaçados

Ciclo do modelo funcional -> análise e protótipos Ciclo de design e build -> engenharia do produto Ciclo de implementação -> implantação operacional

Princípios: Iterações fixas (2-6 semanas) Releases freqüentes Qualidade total Adaptabilidade a mudanças de requisitos

Page 14: METODOLOGIA ÁGIL Lílian Simão Oliveira.  Fonte:  Pressman, 2004  Aulas Prof. Auxiliadora Freire e Sabrina Schürhaus

DSDM

Progenitor do XP Framework para desenvolvimento rápido de

aplicações (RAD) Fixa tempo e recursos ajustando a quantia de

funcionalidades Pequenas equipes Suporta mudanças nos requisitos durante o

ciclo de vida

Page 15: METODOLOGIA ÁGIL Lílian Simão Oliveira.  Fonte:  Pressman, 2004  Aulas Prof. Auxiliadora Freire e Sabrina Schürhaus

DSDM

O DSDM consiste de 5 fases:

Funcional Model

Iteration

Feasibility

Review Study

DesignAnd BuildIteration

Implementation

Page 16: METODOLOGIA ÁGIL Lílian Simão Oliveira.  Fonte:  Pressman, 2004  Aulas Prof. Auxiliadora Freire e Sabrina Schürhaus

DSDM - Cargos e Responsabilidades

Desenvolvedores (Developers) Desenvolvedores Sêniores (Senior Developers) Coordenador Técnico (Technical Coordinator Usuário Embaixador (Ambassador User) Usuário Consultor (Adviser User) Visionário (Visionary) Executivo responsável (Executive Sponsor) Especialísta do domínio (Domain experts) Gerente do domínio (Domain manager)

Page 17: METODOLOGIA ÁGIL Lílian Simão Oliveira.  Fonte:  Pressman, 2004  Aulas Prof. Auxiliadora Freire e Sabrina Schürhaus

DSDM -

Usuário sempre envolvido Equipe do DSDM autorizada a tomar decisões Foco na freqüente entrega de produtos Adaptação ao negócio é o critério para entregas

“Construa o produto certo antes de você construí-lo corretamente”

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

Page 18: METODOLOGIA ÁGIL Lílian Simão Oliveira.  Fonte:  Pressman, 2004  Aulas Prof. Auxiliadora Freire e Sabrina Schürhaus

CRYSTAL

Page 19: METODOLOGIA ÁGIL Lílian Simão Oliveira.  Fonte:  Pressman, 2004  Aulas Prof. Auxiliadora Freire e Sabrina Schürhaus

Família Crystal/Clear

Alistair Cockburn (IBM – anos 90) http://alistair.cockburn.us/

Cada projeto uma metodologia. 4 parâmetros determinam o método de desenvolvimento:

Tamanho da equipe Localização geográfica Criticalidade/Segurança Recursos

A recomendação de quais os artefatos, papéis e ciclo de desenvolvimento de um projeto é parametrizada.

O processo é revisado no fim de cada iteração.

Page 20: METODOLOGIA ÁGIL Lílian Simão Oliveira.  Fonte:  Pressman, 2004  Aulas Prof. Auxiliadora Freire e Sabrina Schürhaus

Crystal/Clear

Na verdade é um conjunto de metodologias

Voltada para projetos pequenos (até 6 desenvolvedores)

Especificação e projeto são feitos informalmente usando quadros publicamente visíveis.

A metodologia e propositalmente pouco definida. Para permitir que cada ONG implemente as atividades que lhes pareçam mais adequadas. Fornecendo um mínimo de suporte útil a documentação e comunicação.

Page 21: METODOLOGIA ÁGIL Lílian Simão Oliveira.  Fonte:  Pressman, 2004  Aulas Prof. Auxiliadora Freire e Sabrina Schürhaus

ASD (ADAPTIVE SOFTWARE DEVELOPMENT)

DESENVOLVIMENTO ADAPTÁVEL DE SOFTWARE

Page 22: METODOLOGIA ÁGIL Lílian Simão Oliveira.  Fonte:  Pressman, 2004  Aulas Prof. Auxiliadora Freire e Sabrina Schürhaus

ASD (Adaptive Software Development)Desenvolvimento Adaptável de Software

Jim Highsmith (1997) http://www.adaptivesd.com/

Sistemas complexos => Resultados imprevisíveis Ciclo: Colaboração EspeculaçãoAprendizado Abordagem:

Do it wrong the first time: erre cedo, corrija cedo, não potencialize mal-entendidos.

Good enough quality: melhor compromisso entre dimensões de qualidade (extrínseca e intrínseca) para os recursos disponíveis.

Mecânica: RAD (rapid application development), sessões JAD (joint application development) com o cliente.

Page 23: METODOLOGIA ÁGIL Lílian Simão Oliveira.  Fonte:  Pressman, 2004  Aulas Prof. Auxiliadora Freire e Sabrina Schürhaus

ASD

Ciclos de 3 fases

Page 24: METODOLOGIA ÁGIL Lílian Simão Oliveira.  Fonte:  Pressman, 2004  Aulas Prof. Auxiliadora Freire e Sabrina Schürhaus

ASD

Iterativo e incremental Sistemas grandes e complexos Framework para evitar o caos Cliente sempre presente:

Desenvolvimento de aplicações em conjunto (Joint Application development – JAD)

Page 25: METODOLOGIA ÁGIL Lílian Simão Oliveira.  Fonte:  Pressman, 2004  Aulas Prof. Auxiliadora Freire e Sabrina Schürhaus

ASD

Especular Fixa prazos e objetivos Define um plano baseado em

componentes Colaborar

Construção concorrente de vários componentes

Aprender Repetitivas revisões de qualidade e foco

na demostranção das funcionalidades desenvolvidas (Learning loop)

Presença do cliente e especialistas do domínio

Os ciclos duram de 4 a 8 semanas

Page 26: METODOLOGIA ÁGIL Lílian Simão Oliveira.  Fonte:  Pressman, 2004  Aulas Prof. Auxiliadora Freire e Sabrina Schürhaus

ASD Orientado a missões

Atividades são justificadas através de uma missão, que pode mudar ao longo do projeto

Baseado em componentes Construir o sistema em pequenos pedaços

Iterativo Desenvolvimento em cascata (Waterfall) só funciona em ambientes bem

definidos e compreendidos. foco em refazer do que fazer corretamente já na primeira vez.

Prazos pré-fixados

Tolerância a mudanças (Change-tolerant) As mudanças são freqüentes É sempre melhor estar pronto a adaptá-las do que controlá-las Constante avaliação de quais componentes podem mudar

Orientado a riscos (Risk driver) Itens de alto risco são desenvolvidos primeiro

Page 27: METODOLOGIA ÁGIL Lílian Simão Oliveira.  Fonte:  Pressman, 2004  Aulas Prof. Auxiliadora Freire e Sabrina Schürhaus

SCRUM

Page 28: METODOLOGIA ÁGIL Lílian Simão Oliveira.  Fonte:  Pressman, 2004  Aulas Prof. Auxiliadora Freire e Sabrina Schürhaus

Rugby

Page 29: METODOLOGIA ÁGIL Lílian Simão Oliveira.  Fonte:  Pressman, 2004  Aulas Prof. Auxiliadora Freire e Sabrina Schürhaus

SCRUM

Jeff Sutherland, Ken Schwaber (1993) http://www.controlchaos.com/

Sprints de 30 dias Estabilizar requisitos em cada iteração

Scrum (reunião de status) diária (15 min) Guia o desenvolvimento daquele dia

Foco em gerência e tracking Pode ser combinado com métodos mais prescritivos (ex:

XP@scrum)

Page 30: METODOLOGIA ÁGIL Lílian Simão Oliveira.  Fonte:  Pressman, 2004  Aulas Prof. Auxiliadora Freire e Sabrina Schürhaus
Page 31: METODOLOGIA ÁGIL Lílian Simão Oliveira.  Fonte:  Pressman, 2004  Aulas Prof. Auxiliadora Freire e Sabrina Schürhaus

XP X SCRUM SCRUM com princípios semelhantes ao XP:

Equipes pequenas Requisitos instáveis ou desconhecidos Iterações curtas para prover visibilidade ao

desenvolvimento. SCRUM com dimensões diferentes de XP:

Scrum divide o desenvolvimento em sprints de 30 dias e reuniões diárias de 15 minutos.

As equipes são formadas por pessoas com competências diferentes: projetistas, programadores, engenheiros e gerentes de qualidade.

Scrum possui um mecanismo de informação de status atualizado continuamente e a divisão de tarefas é explícita.

SCRUM e XP são complementares pois Scrum prove práticas de gerenciamento enquanto que XP prove práticas integradas de engenharia de SW.

Page 32: METODOLOGIA ÁGIL Lílian Simão Oliveira.  Fonte:  Pressman, 2004  Aulas Prof. Auxiliadora Freire e Sabrina Schürhaus

FDD(FEATURE-DRIVEN DEVELOPMENT) DESENVOLVIMENTO ORIENTADO A FUNCIONALIDADES

Page 33: METODOLOGIA ÁGIL Lílian Simão Oliveira.  Fonte:  Pressman, 2004  Aulas Prof. Auxiliadora Freire e Sabrina Schürhaus

FDD(Feature-driven development) Desenvolvimento Orientado a Funcionalidades

Jeff DeLuca, Peter Coad http://thecoadletter.com/download/fddguide/

5 processos: 1- Modelo geral (arquitetura) 2 -Lista de funcionalidades:

Levanta requisitos para todo o projeto 3 – Planejamento por funcionalidades:

Define escopo de cada iteração (quais funcionalidades) Forma times para desenvolver cada funcionalidade.

(A cada iteração): 4 – Projeto por Funcionalidades 5 - Construção por Funcionalidades

Page 34: METODOLOGIA ÁGIL Lílian Simão Oliveira.  Fonte:  Pressman, 2004  Aulas Prof. Auxiliadora Freire e Sabrina Schürhaus

O FDD consiste de 5 processos principais:

Page 35: METODOLOGIA ÁGIL Lílian Simão Oliveira.  Fonte:  Pressman, 2004  Aulas Prof. Auxiliadora Freire e Sabrina Schürhaus

FDD- Cargos e Responsabilidades Principais

Gerente de projeto (Project Manager) Arquiteto líder (Chief architect) Gerente de desenvolvimento (Development Manager) Programador líder (Chief programmer) Proprietário de classe (Class owner) Especialista do domínio (Domain experts) Gerente do domínio (Domain manager)

De apoio Gerente de versão (Release manager) Guru de linguagem (Language lawyer/language guru) Engenheiro de construção (Build engineer) “Ferramenteiro” (Toolsmith) Administrador de sistemas (System Administrator)

Adicionais Testadores (Testers) Instaladores (Deployers) Escritores técnicos (Technical writes)

Page 36: METODOLOGIA ÁGIL Lílian Simão Oliveira.  Fonte:  Pressman, 2004  Aulas Prof. Auxiliadora Freire e Sabrina Schürhaus

FDD – Boas Práticas

Modelagem de objetos de domínio Exploração e explicação do problema do domínio Resulta em um framework

Desenvolver por funcionalidade Desenvolvimento e acompanhamento do progresso através de da

lista de funcionalidades. Proprietários de classes individuais

Cada classe possui um único desenvolvedor responsável Equipe de funcionalidades

Formação de equipes pequenas e dinâmicas. Inspeção (Inspection) Uso dos melhores métodos conhecidos de detecção de erros.

Releases freqüentes Garantir que existe um sistema sempre disponível e

demonstrável. Administração de Configuração

Habilita acompanhamento do histórico do código-fonte.

Page 37: METODOLOGIA ÁGIL Lílian Simão Oliveira.  Fonte:  Pressman, 2004  Aulas Prof. Auxiliadora Freire e Sabrina Schürhaus

LD ( LEAN DEVELOPMENT )

Page 38: METODOLOGIA ÁGIL Lílian Simão Oliveira.  Fonte:  Pressman, 2004  Aulas Prof. Auxiliadora Freire e Sabrina Schürhaus

LD ( Lean Development )

Mary Poppendieck (2000) http://www.poppendieck.com/

Focado na identificação de gargalos no processo de desenvolvimento de software Metáfora (boa) de fábrica Empresta idéias de

Qualidade Total, (Deming, anos 50) Lean Production (Japão, anos 50) Teoria de Sistemas Dinâmicos (MIT, anos 60) Lean Construction (adaptabilidade na

construção civil, anos 90)

Page 39: METODOLOGIA ÁGIL Lílian Simão Oliveira.  Fonte:  Pressman, 2004  Aulas Prof. Auxiliadora Freire e Sabrina Schürhaus

OPEN SOURCE

Page 40: METODOLOGIA ÁGIL Lílian Simão Oliveira.  Fonte:  Pressman, 2004  Aulas Prof. Auxiliadora Freire e Sabrina Schürhaus

Open Source

Richard Stallman (anos 80), Linus Torvalds (anos 90) http://www.opensource.org/ Inicialmente, para software básico

Maintainer: Orienta o desenvolvimento Decide o quê vai entrar no software “oficial”

Catedral X Bazar Catedral: releases pouco freqüentes, desenvolvimento

centralizado (GNU, BSD) Bazar: releases freqüentes, desenvolvimento mais

espalhado (Linux kernel, apache.org)