Este documento apresenta uma introdução à gestão ágil de projetos com SCRUM. Resume as principais características de metodologias ágeis como o Manifesto Ágil, Unified Process, SCRUM e eXtreme Programming. Também descreve conceitos como papéis, artefatos e cerimônias de SCRUM, além de práticas ágeis comuns.
2. Muito prazer!
• Saulo Arruda (@sauloarruda)
• Entusiasta/Praticante/Evangelista de métodos
ágeis há 6 anos
• Instrutor do SENAC há 5 anos e
desenvolvedor há 12 anos
• Co-fundador da Jera
• Casado, pai de 2 filhas / Músico e cozinheiro
amador
3. Fale sobre você!
• Diga-nos seu nome?
• Sua experiência com desenvolvimento de
software?
• Onde trabalha/estuda?
• Quer falar mais alguma coisa?
4. O que teremos?
• Aula 1
• Introdução ao Desenvolvimento Ágil de
Software
• Metodologias Ágeis
• Práticas Ágeis
5. O que teremos?
• Aula 2
• Introdução à engenharia de requisitos
• Introdução à histórias do usuário
• Métrica por pontos e estimativas
6. O que teremos?
• Aula 3
• Papéis do SCRUM
• Artefatos do SCRUM
• Cerimônias do SCRUM
16. Metodologia de
Desenvolvimento
• 1968 - Engenharia de Software
• 1987 - CMM (Capability and Maturity
Model)
• 2001 - Agile Manifesto
17. Manifesto Ágil?
• De 11 a 13 de Fevereiro de 2001, em uma
estação de Esqui em Utah, 17 pessoas se
encontraram para conversar, esquiar,
relaxar, e tentar encontrar um senso
comum - e claro, COMER!
• Do resultado desse encontro surgiu...
18. Manifesto para o
desenvolvimento ágil de software
Estamos descobrindo maneiras melhores de desenvolver
software fazendo-o nós mesmos e ajudando outros a fazê-
lo. Através deste trabalho, passamos a valorizar:
Indivíduos e interação entre eles mais que processos e ferramentas
Software em funcionamento mais que documentação abrangente
Colaboração com o cliente mais que negociação de contratos
Responder a mudanças mais que seguir um plano
Ou seja, mesmo havendo valor nos itens à direita,
valorizamos mais os itens à esquerda.
19. Os Autores
• Kent Beck
• Arie van Bennekum
• Ward Cunningham
• James Grenning
• Andrew Hunt
• Jon Kern
• Robert C. Martin
• Ken Schwaber
• Dave Thomas
• Alistair Cockburn
• Mike Beedle
• Jim Highsmith
• Margin Fowler
• Brian Marick
• Ron Jeffries
• Jeff Sutherland
• Steve Mellor
20. Os Autores
• Kent Beck
• Arie van Bennekum
• Ward Cunningham
• James Grenning
• Andrew Hunt
• Jon Kern
• Robert C. Martin
• Ken Schwaber
• Dave Thomas
• Alistair Cockburn
• Mike Beedle
• Jim Highsmith
• Margin Fowler
• Brian Marick
• Ron Jeffries
• Jeff Sutherland
• Steve Mellor
21. Princípios
Por trás do Manifesto Ágil, foi criada uma lista de 12
princípios que são seguidos...
22. 1º Princípio
Nossa maior
prioridade é
satisfazer o cliente,
através da entrega
adiantada e
contínua de
software de valor.
23. 2º Princípio
Aceitar mudanças
de requisitos,
mesmo no fim do
desenvolvimento.
Processos ágeis se
adequam a
mudanças, para que
o cliente possa tirar
vantagens
competitivas.
24. 3º Princípio
Entregar software
funcionando com
freqüencia, na escala
de semanas até
meses, com
preferência aos
períodos mais
curtos.
25. 4º Princípio
Pessoas
relacionadas à
negócios e
desenvolvedores
devem trabalhar em
conjunto e
diariamente,
durante todo o
curso do projeto.
26. 5º Princípio
Construir projetos
ao redor de
indivíduos
motivados. Dando a
eles o ambiente e
suporte necessário,
e confiar que farão
seu trabalho.
27. 6º Princípio
O Método mais
eficiente e eficaz de
transmitir
informações para, e
por dentro de um
time de
desenvolvimento, é
através de uma
conversa cara a
cara.
29. 8º Princípio
Processos ágeis
promovem um
ambiente
sustentável. Os
patrocinadores,
desenvolvedores e
usuários, devem ser
capazes de manter
indefinidamente,
passos constantes.
32. 11º Princípio
As melhores
arquiteturas,
requisitos e designs
emergem de times
auto-organizáveis.
33. 12º Princípio
Em intervalos
regulares, o time
reflete em como
ficar mais efetivo,
então, se ajustam e
otimizam seu
comportamento de
acordo.
34. Métodos Ágeis
• Ciclo de Vida Iterativo
• Planejamento Adaptivo
• Iterações Curtas com Duração Fixa
• Alguns exemplos: eXtreme Programming,
SCRUM, ICONIX, Agile UP, Open UP
37. Unified Process
• Unified Process (UP) ou Processo Unificado
não é simplesmente um processo, mas um
framework que pode ser customizado
para projetos e empresas específicas.
• Exemplos de Processos baseados no UP:
Agile UP, Basic UP, Enterprise UP, Essential UP,
Open UP, Rational UP (RUP), Oracle Unified
Method (OUM).
[2][3]
38. Características do
Unified Process
• Iterativo e Incremental
• Dirigido por Casos de Uso
• Centrado na Arquitetura
• Focado nos Riscos
[2][3]
39. Ciclo de Vida do UP
• Um projeto UP é dividido em 4 fases
• Iniciação (ou Concepção)
• Elaboração
• Construção
• Transição
[2][3]
42. Iniciação
• Definir o escopo e fronteiras
• Identificação dos Casos de Uso
• Identificação da Arquitetura candidata
• Estimativa de riscos, custos e prazos
[2][3]
43. Elaboração
• Refinar Casos de Uso
• Definir e validar da Arquitetura
• Elaborar cronograma e custos para a
Construção
• Identificar e mitigar Riscos
[2][3]
44. Construção
• Implementação do código-fonte do
software
• Lançar builds contendo um conjunto de
funcionalidades
• Executar testes unitários, funcionais, de
aceitação
• Atualização do cronograma e lista de riscos
[2][3]
45. Transição
• Lançamento da versão final do software
• Instalação em ambiente de produção
• Testes de carga e stress
• Treinamento dos usuários
[2][3]
46. Discilplinas do UP
• Uma disciplina mostra todas as atividades
que você deve realizar para produzir um
determinado conjunto de artefatos
47. Modelagem de
Negócios
• Entendimento da estrutura e problemas
atuais do cliente;
53. Disciplinas gerenciais
• Gestão de Configuração e
Mudanças: identificação e restrição de
mudanças em itens de configuração;
• Gestão de Projeto: planejar, executar e
monitorar o projeto;
54. Práticas do UP
• Processo iterativo (iterações curtas com
duração fixa), evolutivo e adaptativo;
• Enfrentar problemas de alto risco e valor antes;
• Envolver continuamente os usuários (avaliação e
feedback);
• Construir uma aquitetura central nas iterações
iniciais;
• Verificar continuamente a qualidade;
57. Scrum?
• SCRUM não é um processo;
• SCRUM não é uma metodologia;
• SCRUM é um framework;
• SCRUM confia em um time auto-
organizado e multi-disciplinar.
58. Três Papéis
• Product owner: responsável pela área
de negócio do projeto
• ScrumMaster: garante que o time está
funcional e produtivo
• Time: time auto-organizável que realiza o
trabalho
59. Quatro cerimônias
• Planejamento do Sprint: o time se
encontra com o product owner e
determina o escopo da entrega
• Daily scrum: o time se encontra
diariamente para atualizar-se
• Sprint reviews: o time demonstra para
o product owner o que foi feito
• Sprint retrospective: o time busca
formas de melhorar o produto e processo
60. Três artefatos
• Product Backlog: lista de
funcionalidades ou tarefas
• Sprint Backlog: lista de itens que serão
entregues na sprint quebrados em tarefas
• Burndown chart: gráfico de trabalho
restante
63. eXtreme Programming
• Valores
• Comunicação: diálogos presenciais
• Coragem: mudanças são bem vindas
• Feedback: descobrir problemas cedo
• Respeito: ouvir e compreender
• Simplicidade: fazer o que é necessário
65. eXtreme Programming
• Papéis
• Analistas de Teste • Programadores
• Arquitetos • Recursos Humanos
• Designers de • Redatores Técnicos
Interação
• Usuários
• Executivos
• Gerentes de Projeto
• Gerentes de Produto
66. eXtreme Programming
• Práticas Primárias
• Ambiente Informativo • Folga
• Build de Dez Minutos • Histórias
• Ciclo Semanal • Integração Contínua
• Ciclo Trimestral • Programação em Par
• Desenvolvimento • Sentar-se Junto
Orientado a Testes
• Trabalho Energizado
• Design Incremental
• Equipe Integral
67. eXtreme Programming
• Práticas Corolárias
• Análise da Raiz do Problema • Envolvimento do
• Base de Código Unificada Cliente Real
• Código Coletivo • Equipes que Encolhem
• Código e Testes • Implantação Diária
• Continuidade da Equipe • Implantação
Incremental
• Contrato de Escopo • Pagar por Uso
Negociável
68. Práticas Ágeis
Organização
Deploy
Automatizado
Time Releases
Curtos
Programação Retrospectivas
em Pares Individual
Daily
Teste Propriedade
Métricas Refatoração Stand-ups
Automatizado Coletiva
de Velocidade
Iterações
Design Simples
Padrão de Histórias Equipe
do Usuário Ritmo
Código Desenvovimento Sustentável co-localizada
Dirigido por Testes
Histórias Kick-off
na Parede da Iteração
Integração Cliente
Contínua co-localizado
69. Quais você usa?
Organização
Deploy
Automatizado
Time Releases
Curtos
Programação Retrospectivas
em Pares Individual
Daily
Teste Propriedade
Métricas Refatoração Stand-ups
Automatizado Coletiva
de Velocidade
Iterações
Design Simples
Padrão de Histórias Equipe
do Usuário Ritmo
Código Desenvovimento Sustentável co-localizada
Dirigido por Testes
Histórias Kick-off
na Parede da Iteração
Integração Cliente
Contínua co-localizado