Apresentação Metodologias Ágeis de desenvolvimento
1. Desenvolvimento Ágil: métricas
de estimação, metodologia
SCRUM + Kanban + Xtreme
Programming (XP)
COMP295 - Gerência de Projetos
Turma: 01 Semestre: 2017-2
Professor: Dr. Rogério Patrício Chagas do Nascimento
Blog: http://edu-gp-ufs20172.blogspot.com.br
Membros: Euder de Jesus Costa
Carlos Alberto
Carlos Gabriel
Igor Costa
1
2. Sumário
1. Introdução
2. Project Model Canvas
3. XP (Extreme Programming)
4. Scrum
5. Kanban
6. Comparativo entre Scrum, XP e Kanban
7. Casos de uso
2
3. 1. Introdução - Motivação
Como desenvolver software se não for possível especificar requisitos de forma
completa?
Como desenvolver software em ambiente com requisitos com rápidas mudanças?
Como entregar rapidamente ao cliente algo que agregue valor?
3
4. 1. Introdução - Características
⚡ Não há especificação detalhada e a documentação do projeto é minimizada
ou gerada automaticamente.
⚡ Sistema desenvolvido em uma série de incrementos
⚡ Usuários participam da avaliação e especificação de cada incremento.
⚡ Interfaces geradas rapidamente.
⚡ Entrega acelerada das funcionalidades principais e de mais alta prioridade.
4
5. 1. Introdução - Princípios
⚡ Envolvimento do cliente: fornece e prioriza novos requisitos e avalia as
iterações do sistema.
⚡ Entrega incremental: o cliente especifica o que será incluído em cada
incremento.
⚡ Pessoas, não processo: os membros da equipe devem desenvolver sua
própria maneira de trabalhar.
⚡ Aceite as mudanças: os requisitos vão mudar e o projeto deverá
acomodá-los.
⚡ Mantenha a simplicidade: trabalhe ativamente para eliminar a complexidade
do sistema.
5
6. 1. Introdução - Problemas e Dificuldades
⚡ Problema com os Clientes: É difícil fazer com que os clientes participem
ativamente do desenvolvimento.
⚡ Dificuldade com a Equipe: Alguns membros da equipe podem ter dificuldade
(não possuem personalidade) para interagir ativamente.
⚡ Dificuldade de priorização: A priorização pode ser difícil, especialmente
quando existem muitos stakeholders.
⚡ Dificuldade em manter a simplicidade: Manter a simplicidade requer trabalho
extra. Os membros da equipe podem não ter tempo de realizar as
simplificações desejadas.
6
7. 1. Introdução - Problemas e Dificuldades
⚡ Problemas de gerenciamento: dificuldade para gerenciar projetos quase
diferenciam do que a maioria dos gerentes está acostumado. Muitas vezes
pouca documentação é gerada ao longo do processo.
⚡ Problemas de contrato: como criar um contrato que não possui um escopo
fechado?
⚡ Problemas de Validação: torna difícil a validação independente em sistemas
desenvolvidos de forma incremental.
⚡ Problemas de manutenção: alterações contínuas podem comprometer a
estrutura de qualquer sistema. Essencial utilizar refatorações.
7
8. 1. Introdução - Manifesto Ágil
⚡ Encontro de 17 Agilistas – Fevereiro 2001
⚡ Teve como objetivo definir claramente o que era um desenvolvimento ágil.
⚡ Kent Beck (Extreme Programming)
⚡ Ken Schwaber (SCRUM)
⚡ Alistair Cockburn (Crystal)
⚡ www.agilemanifesto.org
8
11. 3. XP (Extreme Programming)
Chrysler Comprehensive
Compensation System (3C) (Sistema
de Compensação Abrangente da
Chrysler) 11
⚡ XP é uma das mais conhecidas metodologia de desenvolvimento de
software.
⚡ Criado em 1996, por Kent Beck e Ward Cunningham. Os princípios e boas
práticas de programação são frutos de um processo de evolução de pelo
menos uma década em que trabalharam na Tektronixs, Inc. como
consultores de problemas em SmallTalk.
⚡ Kent Beck foi contratado na empresa Chrysler para analisar o desempenho
de projeto do C3, de controle da folha de pagamento de aprox. 86 mil
funcionários e o objetivo do projeto era unificar os quatro sistemas de
software legado.
14. 3. XP (Extreme Programming) - Práticas
⚡ Jogo do Planejamento
⚡ Teste
⚡ Programação em pares
⚡ Projeto Simples
⚡ Refatoração
⚡ Propriedade Coletiva
⚡ Integração Contínua
⚡ Cliente presente
⚡ Semana de 40 horas
⚡ Padrões de Codificação
⚡ Metáfora
⚡ Reunião diária
14
15. 3. Industrial Extreme Programming (IXP)
⚡ Avaliação imediata
⚡ Comunidade de projeto
⚡ Mapeamento do projeto
⚡ Gerenciamento orientado a testes
⚡ Retrospectivas
⚡ Aprendizagem contínua
15
16. 3. XP (Extreme Programming) - Vantagens
⚡ Ganho de eficiência e eficácia no desenvolvimento de sistemas;
⚡ Suporte a mudanças contínuas;
⚡ Feedback rápido do cliente;
⚡ Erros encontrados em estágios iniciais;
⚡ Organização das tarefas.
16
17. 3. XP (Extreme Programming) - Desvantagens
⚡ Exige uma certa maturidade da organização;
⚡ Existe uma perda de produtividade ao adotar programação em par;
⚡ Todos os envolvidos no projeto devem conhecer as técnica e regras;
⚡ O cliente tem que estar sempre disponível.
17
18. 4. Scrum
“O Scrum é um processo dentro do qual as pessoas podem resolver
problemas complexos, ao mesmo tempo que fornecem produtos de forma
mais produtiva e criativa, com maior valor possível.” (Scrum.org, 2017)
18
19. 4. Scrum - sumário
⚡ História
⚡ Pilares do Scrum
⚡ Valores do Scrum
⚡ Papéis do Scrum
⚡ Eventos do Scrum
⚡ Artefatos do Scrum
⚡ Vantagens e desvantagens
19
20. História
● Ken Schwaber e Jeff Sutherland são
os criadores do framework de
processos Scrum.
● Sua primeira aparição aconteceu na
conferência de OOPSLA em 1995,
onde se tornou pública a primeira
definição formal do Scrum.
Na imagem vemos Ken Schwaber (à esquerda) e
Jeff Sutherland (à direita). (Scrum.org, 2017).
20
21. De onde surgiu o termo
Scrum?
● O termo Scrum é o nome de uma
jogada do Rugby.
● Esta jogada é geralmente
utilizada no reinício do jogo,
após uma penalização.
● 8 jogadores de cada time
participam desta jogada, que
avançam juntos o máximo
possível para marcar pontos.
21
24. Papéis do Scrum - Scrum Team
⚡ Product Owner
⚡ Scrum Master
⚡ Development Team
24
25. Papéis do Scrum - Product Owner
⚡ Responsável por maximizar o valor do
produto criado pelo Development Team.
⚡ Mantém claras as definições dos itens
do Product Backlog.
⚡ Define as prioridades das tarefas do
Product Backlog.
⚡ É uma pessoa. Geralmente é quem
contrata o serviço.
25
26. Papéis do Scrum - Scrum Master
⚡ Responsável por aplicar todos conceitos
do Scrum na organização.
⚡ Garante que as metas sejam
compreendidos por todos.
⚡ Geralmente é a pessoa com muita
experiência.
⚡ O Scrum Master não é um papel
perpétuo. O ideal é que sempre seja
ocupado por uma pessoa diferente.
26
27. Papéis do Scrum - Development Team
⚡ É a equipe de profissionais que
são responsáveis por criar o
incremento executável do
produto ao fim de cada Sprint.
⚡ São compostas de 3 à 9
membros, sem contar com o
Scrum Master e o Product
Owner.
⚡ Estima o esforço necessário
para entregar uma Sprint.
27
29. Eventos do Scrum - Sprint Planning
⚡ É a reunião que é feita para
definir uma Sprint.
⚡ É feita uma vez no mês e leva no
máximo 8 horas.
⚡ Deve ser feita depois de definido
o Product Backlog, após a
retrospectiva da Sprint ou antes
do início da Sprint.
Sprint Retrospective
29
30. Eventos do Scrum - Sprint
⚡ É o intervalo de tempo onde é
construído o incremento do
produto.
⚡ Este evento tem duração de 2 à
4 semanas (um mês).
⚡ Durante este tempo o escopo
pode ser melhor compreendido
e renegociado.
30
31. Eventos do Scrum - Daily Scrum
⚡ É uma reunião feita com o
Development Team todos os
dias da Sprint.
⚡ Este evento tem duração de 15
min e deve ser feito em pé.
⚡ Não é necessário entrar em
detalhes quando for responder
as perguntas.
31
32. Eventos do Scrum - Sprint Review
⚡ Ao fim da Sprint, o incremento é
inspecionado e o Product
Backlog é adaptado.
⚡ Este evento tem duração de 4
horas.
⚡ Nele são apresentados os
incrementos para todos os
stakeholders.
32
33. Eventos do Scrum - Sprint Retrospective
⚡ Neste evento o time Scrum faz
um balanço da Sprint finalizada.
⚡ Este evento tem duração de
3 horas.
⚡ O Time Scrum busca então
melhorar o seu processo através
dos pontos fortes e fracos
explorados.
33
35. Vantagens e desvantagens
Vantagens Desvantagens
Maior agilidade na entrega de incrementos de
software.
Dificuldade para gerenciar equipes grandes
(mais de 9 membros).
Funcionalidades que agregam valor são
priorizadas.
Requer experiências anteriores para melhor
prevenir os riscos do projeto.
Maior motivação dos desenvolvedores. Não especifica Técnicas e Práticas.
35
37. Origem
⚡ Foi criado no Japão por Taiichi Ohno, engenheiro chefe da Toyota.
⚡ Final de 1940, a Toyota começou a estudar supermercados com a ideia de
aplicar técnicas de “prateleira” nos processos da fábrica.
⚡ Os funcionários apenas reabasteciam as prateleiras quando o produto estava
perto de se esgotar.
37
38. Conceito
⚡ Kanban é uma palavra japonesa e seu significado literal é “cartão” ou
“sinalização”.
⚡ Está relacionado com o conceito de Pull Systems (sistemas de produção
puxados).
○ Cada operação do processo é alimentada pela demanda da etapa anterior.
○ os clientes obtém somente a quantidade necessária do produto que desejam e no momento
necessário
⚡ O sistema Kanban é uma das variantes mais conhecidas do Just in Time.
38
39. Sistema Kanban
⚡ O kanban possui um painel.
⚡ As tarefas são representadas como cartões.
⚡ Uso de colunas que representam os estágios do desenvolvimento.
⚡ Conforme as tarefas seguem este fluxo, elas vão sendo deslocadas para a
coluna seguinte.
39
40. ⚡ O sistema pode ser facilmente ajustável às necessidades da
usuário/empresa.
40
42. Kanban e Desenvolvimento de Software
⚡ Empresa Corbis (fundada por Bill Gates) foi a primeira empresa a utilizar o
Kanban.
⚡ Para o desenvolvimento de software, o uso mais comum é um Sistema
Kanban digital
42
43. Passo a Passo
⚡ Definir a Equipe e os Papéis de cada membro
⚡ Identificar as fases do trabalho
⚡ Priorizar as tarefas
43
44. ⚡ Definir a Equipe e os Papéis de cada membro
44
47. Práticas Fundamentais
⚡ Visualizar o fluxo de trabalho (workflow)
⚡ Limitar a quantidade de trabalho em andamento (WIP)
⚡ Gerenciar e medir o fluxo através do lead time
⚡ Tornar as políticas do processo explícitas
⚡ Implementar loops de feedback
⚡ Usar modelos para reconhecer oportunidades de melhoria
47
48. Vantagens e Desvantagens
⚡ Requer menos organização;
⚡ O processo é simplificado;
⚡ Maior visibilidade dos projetos;
⚡ Melhor gestão nas mudanças de
prioridade;
⚡ Flexibilidade de planejamento;
⚡ Tempos de ciclo reduzidos.
⚡ Demanda instável ou pedido
emergencial impacte em todo
processo;
48
49. 6. Comparativo entre Scrum, XP e Kanban
Scrum XP Kanban
Reuniões Diárias X X
Planejamento
Interativo
X X X
Quadro de Tarefas X X
Templo de Ciclo X X
Teste Unitário x
Participação do
Cliente
x x
49
51. Conclusão
⚡ As metodologias ágeis estão presentes a muito tempo nos projetos de
softwares, mesmo assim ainda são mal empregados por falta de
conhecimento e disciplina para a sua aplicação e gerenciamento.
⚡ As metodologias Ágeis vieram para tornar possível a execução de projetos de
software em ambientes dinâmicos, instáveis e mantendo um alto nível de
qualidade e valor do produto.
51
52. Referências
⚡ http://www.fabiocruz.com.br/valores-scrum/, acessado em 08/01/2018.
⚡ Ken Schwaber and Jeff Sutherland, The Scrum Guide, 2017, Creative
Commons.
⚡ https://www.scrum.org/, acessado em 27/12/2017
⚡ PRESSMAN, Roger S. Engenharia de Software, Oitava Edição. Editora
MCGrawHill: Porto Alegre, 2016.
⚡ http://www.desenvolvimentoagil.com.br/xp/, acessado em 18/12/2017
⚡ https://www.devmedia.com.br/introducao-ao-extreme-programming-xp/2924
9 , acessado em 05/12/2018
⚡ https://hiperbytes.com.br/xp/ , acessado em 07/01/2018
52