Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

Prévia do material em texto

Metodologias Ágeis
Disciplina: Engenharia de Software
Capítulo 04
Universidade Federal da Paraíba
Centro de Ciências Aplicadas e Educação
Departamento de Ciência Exatas
Juliana Saraiva 
julianajags@dcx.ufpb.br
mailto:julianajags@dce.ufpb.br
Sumário
1. Introdução
1.1. Manifesto Ágil
2. Princípios
3. Práticas Compartilhadas
4. Metodologias
4.1 eXtreme Programming (XP)
4.2 Scrum
4.3 FDD
4.4 DSDM
4.5 TDD
4.6 Kaban
5. Tecnologias e Ferramentas
6. Dificuldades em Implantar Metodologia Ágil
7. Considerações Finais
8. Bibliografia Recomendada
2
1. Introdução 
• Desenvolvimento Ágil como filosofia:
– “Desenvolvimento simples-mas-eficiente usando regras orientadas à 
comunicação contínua” (Cockburn, 2001).
• Não é um processo específico (Warden & Shore, 2007)
– Existem métodos que dão suporte a esta filosofia.
• Inicialmente conhecido como Métodos Leves
– “Ligth-but-sufficient” (Cockburn, 2001)
• Manifesto Ágil (Utah - 2001)
– Encontro de 17 pesquisadores para discutir similaridades e diferenças de 
metodologias leves de desenvolvimento.
3
1.1 Manifesto Ágil
Processos e 
FerramentasIndivíduos e Interações
Seguir um PlanoResposta às Mudanças
Documentação 
AbrangenteSoftware em Funcionamento
Negociação de 
ContratoColaboração com o Cliente
4
Desenvolvimento Ágil 
• Uma abordagem baseada no desenvolvimento e na entrega de 
incrementos de funcionalidade muito pequenos.
• Baseia-se no aprimoramento constante do código, em testes 
automatizados, no envolvimento do usuário na equipe e no 
desenvolvimento em pares.
• Exemplos: XP, Scrum, DSDM, FDD, TDD, Crystal Clear, 
Adaptive Software Development, etc.
5
2. Princípios (Parte 01)
1. Satisfação do Consumidor
2. Mudança Constante de Requisitos
3. Entregas de Softwares Funcionais
4. Todos os Stakeholders envolvidos
5. Motivação nos projetos
6. Conversas cara-a-cara incentivadas
6
2. Princípios (Parte 02)
7. Software em Funcionamento 🡪 Medida Progresso
8. Desenvolvimento Sustentável
9. Atenção Contínua
10. Simplicidade é essencial
11. Arquiteturas e Decisões emergem de equipes 
auto-organizáveis
12. Necessidade de intervalos regulares
7
3. Práticas Compartilhadas (01)
• Desenvolvimento Iterativo
• Foco na Comunicação Iterativa
• Redução de esforços para construção de artefatos
• Aplicabilidade 
 Cultura, Pessoal e Comunicação
8
3. Práticas Compartilhadas (02)
• Ciclo PDCA
9
4. METODOLOGIAS ÁGEIS
4.1 eXtreme Programming (XP)
• Uma das mais proeminentes metodologias
• FUNCIONAMENTO (Fases):
– Planejamento
– Análise e Projeto
– Codificação
– Teste
– Implantação
11
EXtreming Programming (XP)
XP é um processo de desenvolvimento de 
softwares voltado para:
• Projetos cujos requisitos são vagos e mudam com 
frequência;
• Desenvolvimento de sistemas orientados a objetos;
• Desenvolvimento incremental.
12
Estrutura da Equipe
• Gerente de projeto – assuntos administrativos
• Coach - técnico do projeto
• Analista de testes – ajuda o cliente a escrever os testes 
de aceitação, detecta defeitos no sistema
• Redator técnico – ajuda na documentação do sistema
• Desenvolvedor – analisa, projeta e codifica o sistema
13
Os 5 Valores da XP
• São as diretrizes da XP
• Define as atitudes da equipe XP
– Feedback
– Comunicação
– Simplicidade
– Coragem
– Respeito
14
Princípios da XP
• Feedback rápido
– Os participantes devem estar sempre se comunicando para facilitar o 
aprendizado coletivo.
• Assumir simplicidade
– Deixe o seu modelo tão simples quanto possível e assuma que a solução 
mais simples é a melhor.
• Mudança incremental
– O modelo não será perfeito na primeira tentativa, ele irá mudar de 
acordo com o desenvolvimento do projeto.
15
Princípios da XP
• Abraçando mudanças
– XP procura facilitar o ato de incluir alterações através do uso 
de vários princípios e práticas.
– Mudanças devem ser sempre bem vindas.
– Independentemente do estágio de evolução do projeto.
• Trabalho de qualidade
– Qualidade não é um critério opcional, mas sim obrigatório.
– Sistema que atenda aos requisitos do cliente.
16
Práticas da XP
• Processo de planejamento 
(Planning Game)
• Releases curtos
• Metáfora
• Projeto simples
• Testes
• Refactoring
• Stand up meeting
• Programação em pares
• Propriedade coletiva do 
código
• Integração contínua
• Semana de 40 horas
• On-site customer (Cliente 
sempre presente)
• Padrões de codificação
17
4.1 PLANEJAMENTO
• Estórias de Usuário
• Cartões de Indexação
• Cliente contribui a cada estória
• Desenvolvedores atribuem um custo a cada estória
18
4.1 PROJETO
• Segue rigorosamente o KIS (Keep it Simple)
• Encoraja Refatoração
• Estimula o uso de cartões CRC (Classe, Responsabilidade 
e Colaboração)
19
4.1 CODIFICAÇÃO
• Iniciar programação depois do Projeto das Estórias do 
Usuário
• Testes Unitários (testar antes)
• Programação em Par
20
4.1 TESTE
• Testes Unitários
• Teste de Aceitação 
21
4.1 PRÁTICAS de XP
• Pequenas versões
• Design Simples
• Programação em Par
• Desenvolvimento orientado a testes
• Refatoração
• Testes do Cliente
• Time coeso
• Código padronizado
• Código coletivo e Integração contínua
• Ritmo sustentável
• Jogo de planejamento
22
4.1 Empresas que Adotam XP
• Objective Solutions
• Improve It
• Paggo
• Caelum
• LocaWeb
• Neurobox
23
4.2 Scrum
• Foco no gerenciamento de projetos
• Baseia-se na formação Scrum do Rugby
• Artefatos Principais:
– Backlog de Produto
– Backlog de Sprint
24
Scrum
• Não tem a figura do gerente de projetos;
• Os times são auto-gerenciáveis;
• Possui características do modelo iterativo e incremental;
• É composto por papéis bem definidos;
• Possui valores, práticas e regras;
• É considerado um framework para gerência de projetos.
25
4.2 Scrum - PAPÉIS
• PRODUCT OWNER
– Intermédio entre cliente e equipe
– Atualiza e produz Backlog de Produto
– Decide as datas de lançamento
– Prioriza funcionalidades
– Aceita ou rejeita os resultados dos 
trabalhos
• SCRUM MASTER
– Líder, mediador
– Assegura práticas SCRUM no processo
– Garante a colaboração entre os diversos 
papéis e funções
– Escudo para interferências externas
– Mantém a produtividade do time
26
• TEAM
– 5 a 9 pessoas
– Multidisciplinar
– Comprometido com a meta até o fim da 
Sprint
4.2 Scrum - FUNCIONAMENTO
• Definição de Backlogs
• Sprints
• Reuniões
• Revisões
27
Sprint
• É uma iteração no Scrum
• Tem duração fixa
– Normalmente de 2 a 4 semanas
• Durante a Sprint, o Scrum Master garante que não será feita nenhuma 
mudança que possa afetar a Meta da Sprint
• A definição de “Pronto” deve ser estabelecida
– Quando um item do PB pode ser apresentado na Sprint Review
• A definição de “Preparado” deve ser estabelecida
– Quando um item do PB pode ser estimado na reunião de planejamento
28
Planejamento da Sprint
• Dividida em 2 partes:
– Primeira: A equipe seleciona itens do Product Backlog com os 
quais compromete-se a concluir
• O Sprint Backlog é criado
– Segunda: Tarefas são identificadas e estimadas para cada 
item do backlog
• Utiliza-se a técnica de estimativa Planning Poker
• O time inteiro planeja!
29
Planning Poker
• Técnica para estimar esforço
• Utilizado no Scrum para estimar esforço das 
estórias de usuários (user story)
30
Reunião de Scrum Diário (Daily Scrum Meeting)
• Todos em pé!
• Não é para solução de problemas
• As respostas não são um relatório para o ScrumMaster
• Três questões são respondidas:
– O que foi feito?
– O que será feito?
– Há algum impedimento?
• Melhora o nível de conhecimento e a comunicação da equipe
• Promove a tomada rápida de decisão
31
Sprint Review Meeting (Revisão da Sprint)
• Realizada após cada Sprint
• Todos participam
• O time apresenta o que foi realizado na sprint
• O Product Owner identifica o que foi feito e o que não 
foi feito.
• É verificado se o objetivo da Sprint foi alcançado
32
Sprint Retrospective (Retrospectiva da Sprint)
• Acontece após a Revisão da Sprint e antes da próxima reunião de 
Planejamentoda Sprint.
• A finalidade é inspecionar como correu a última Sprint em se tratando de 
pessoas, das relações entre elas, dos processos e das ferramentas.
• O Time discute sobre o que correu bem durante a Sprint e quais problemas 
foram enfrentados, além de como esses problemas foram resolvidos.
– Serve como entrada para o próximo planejamento da Sprint
• A equipe discute o que gostaria de:
– Iniciar a fazer
– Parar de fazer
– Continuar fazendo
33
Artefatos no Scrum
• Sprint Burndown e Project Burndown
34
Artefatos no Scrum
• Quadro Scrum
35
Artefatos no Scrum
36
4.2 Empresas que Adotam Scrum
• Microsoft
• Yahoo
• Google
• Rede Globo (Globo.com)
• Electronic Arts
• High Moon Studios
• Lockheed Martin
• Phillips
• Siemens
• Nokia
• Capital One
• BBC
37
4.3 FDD (Feature Driven Development)
• Desenvolvimento direcionado à função/funcionalidade
– Funcionalidade “é uma função valorizada pelo cliente passível de 
ser implementada em duas semanas ou menos” (Pressman, 2011)
• Filosofia segue o seguinte modelo:
• Exemplos:
– Adicione o produto ao carrinho
– Mostre as especicações técnicas do produto 
– Armazene as informações de remessa para o cliente
• Está intermediária entre ágeis e tradicionais.
38
4.3 FDD PAPÉIS
• Principais
– Gerentes de Projeto e de 
Desenvolvimento
– Programador Chefe
– Proprietário da Classe
– Arquiteto Chefe
• Apoios
– Gerente de Domínio e de Versão
– Especialista de Linguagem
– Administrador do Sistema
– Construtor de ferramentas CASE
39
• Adicionais
– Testador
– Desenvolvedor
– Escritor Técnico
4.3 FDD FUNCIONAMENTO
40
4.3 FDD BOAS PRÁTICAS
• Desenvolvimento por funcionalidade
• Classe proprietária
• Equipes de recursos
• Inspeção é realizada constantemente
• Gerenciamento de configuração
• Integração contínua
• Visibilidade de progressos e resultados
41
4.4 DSDM (Dynamic System Development Method)
• Dedicados a projetos com cronograma e custos apertados (Pressman, 
2010)
• Tempos fixos de entrega
• Estabelece recursos para o desenvolvimento
• Usa técnica Timeboxing
• “Pouca formalidade e prazos curtos”
42
4.4 DSDM FUNCIONAMENTO
• FASE 1:
– Estudo de Viabilidade
– Estudo de Negócio
• FASE 2:
– Modelo de Iteração Funcional
• FASE 3:
– Construção da Iteração
• FASE 4:
– Implementação
43
4.4 DSDM PRINCÍPIOS
• Envolvimento
• Autonomia
• Foco nas entregas
• Eficácia
• Feedback
• Reversibilidade
• Previsibilidade
• Comunicação
44
4.4 DSDM EQUIPE
• Arquiteto
• Desenvolvedor Sênior
• Analista
• Programador
• Designer
• Usuários: embaixador, visionário e conselheiro
• Administrador de Banco de Dados
• Configurador
• Suporte Técnico
45
4.4 DSDM Empresas que Adotam DSDM
• Sema Group
• Boston Globe
• Scottish Natural Heritage
46
4.5 TDD (Test Driven Development)
• Técnica de desenvolvimento voltada à validação e 
verificação.
• O teste vem primeiro, depois o código é produzido.
• Originalmente veio como uma boa prática de XP.
• Depuração de código é uma grande característica nesse 
modelo.
• Testes são “Assertivas”.
47
4.5 TDD Fases
48
4.5 TDD Vantagens
• Com TDD raramente precisam usar depurador depois 
que o código está pronto.
• Quando bem adotado, todo o código é coberto por 
testes.
• Código modularizado e flexível.
• Identifica falhas de funcionalidades cedo.
49
4.5 TDD Limitações
• Difícil adotar em testes funcionais.
– Exs.: Interface, Banco de dados - carga, etc.
• Testes são parte da MANUTENÇÃO do sistema;
• Alto número de testes pode dar uma falsa sensação de 
segurança.
– Não se pode esquecer de teste de integração, de sistema, de 
usabilidade, etc.
50
4.6 BDD (Behavior Driven Development)
• Técnica que encoraja colaboração entre 
desenvolvedores, setor de qualidade e stakeholders 
não técnicos.
• Foco em linguagem e interação da equipe.
• Analisa o comportamento do sistema e 
consequentemente das funcionalidades.
51
4.6 BDD Boas Práticas
• Envolver as partes interessadas no processo através de Outside-in 
Development;
• Usar exemplos para descrever o comportamento do sistema;
• Automatizar os exemplos para prover um feedback rápido;
• Usar deve (should em inglês) na hora de descrever o comportamento de 
software para ajudar esclarecer responsabilidades e permitir que 
funcionalidades do software sejam questionadas;
• Usar simuladores de teste para auxiliar na colaboração entre módulos e 
códigos que ainda não foram escritos.
52
4.6 BDD Desenvolvimento de fora pra dentro
• 1o desenvolvem a interface gráfica
• Cada elemento de código possui um comportamento
53
4.6 BDD Cenários BDD
54
4.6 BDD Cenários BDD - Exemplo 01
55
5. Dificuldades em Implantar Metodologia Ágil
• Empresa que não aceita mudanças.
• Locais de trabalhos não adequados à prática.
• Clientes que fazem questão de muitos artefatos.
• Sistema baseado em premiação individual.
• Contratos de escopo fechado.
• OBS.:
– Técnica de Kanban adotada no modelo Scrum.
– Lean startup e ágeis → MVP (Mínimo Produto Viável)
56
6. Considerações Finais
• Com Ágil...
– Capacita a organização a responder facilmente às mudanças.
– Entrega o código funcionando mais rapidamente e de alta 
qualidade.
– Aumenta a produtividade e a satisfação do cliente.
– Fornece ambiente de satisfação na equipe de 
desenvolvimento.
57
Bibliografia Recomendada
• Básica:
– Cockburn, A. (2002). Agile software development. Agile software 
development series. Addison-Wesley.
– Pressman, R. (2010). Software engineering: a practitioner’s approach. 
McGraw-Hill higher education. McGraw-Hill Higher Education.
– Shore, J. and Warden, S. (2007). The Art of Agile Development. O’Reilly, 
first edition.
• Complementar:
– Henrik Kniberg, Scrum e XP Direto das Trincheiras
– Manifesto Ágil (http://manifestoagil.com.br/index.html )
58
Tecnologias e Ferramentas
PARA GERENCIAMENTO DE PROJETO
• XPlannerPlus (http://xplanner-plus.sourceforge.net/):
– OpenSource
– Web
– Controle de Estórias do Usuário
– Exportação de Dados XML e PDF
59
Tecnologias e Ferramentas
PARA GERENCIAMENTO DE PROJETO
• AgileFant (http://agilefant.com/):
– OpenSource
– Gestão de Backlog de Produto
– Planejamento e Controle de Iterações
– Relatórios, Gráfico e métricas
– Visualização de Daily Work da equipe
60
Tecnologias e Ferramentas
PARA GERENCIAMENTO DE PROJETO
61
Tecnologias e Ferramentas
PARA GERENCIAMENTO DE PROJETO
• Trello (https://trello.com/):
– Gerenciamento de Projeto
– Facilidade em mover tarefas entre quadros para as 
reorganizar
– Integrado a serviços externos como horas
62
Tecnologias e Ferramentas
PARA GERENCIAMENTO DE PROJETO
Tecnologias e Ferramentas
PARA TESTES - JUnit
• JUnit
– Permite a escrita de código rapidamente
– É elegante e simples. 
– Uma vez escritos, os testes serão executados rapidamente 
– O próprio framework checa os resultados dos testes e 
fornece uma resposta imediata; 
– Tudo criado no JUnit é escrito puramente em Java; 
– JUnit é uma ferramenta livre.
64
Tecnologias e Ferramentas
PARA TESTES - JUnit
65
Tecnologias e Ferramentas
PARA TESTES - JMeter
• JMeter
– Usado para testes de carga e de aceitação
– Ferramenta Web
– Simula diversos acessos simultâneos
66
Tecnologias e Ferramentas
PARA TESTES - JMeter
Tecnologias e Ferramentas
PARA PROGRAMAÇÃO EM PAR - PEP
• PEP (Pair Eclipse Programming)
– Sincronismo de Código
– Chats
– Concepção de novos requisitos
– Compartilhamento automatizado de projetos
68
Tecnologias e Ferramentas
PARA PROGRAMAÇÃO EM PAR - PEP
69

Mais conteúdos dessa disciplina