Metodologias Ágeis
DESENVOLVIMENTO ÁGIL APLICADO AOS PROJETOS
DE SOFTWARE
ANA PAULA ALVES DE LIMA
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Por que ser ágil?
•
•
Crescentes pressões do mercado por:
•
Inovação,
•
Produtividade (prazos cada vez mais curtos),
•
Flexibilidade,
•
Melhoria no desempenho/qualidade dos projetos de
desenvolvimento de SW
O ágil surgiu dado a necessidade de
melhorarmos a forma como estamos
desenvolvendo SW e nosso foco principal é
satisfazer o cliente.
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Técnicas e Projeto de Sistemas –
Técnico Subsequente
2
Quem usa isso?
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Técnicas e Projeto de Sistemas –
Técnico Subsequente
3
História
•
75 anos atrás
• IIDD – Desenho e desenvolvimento interativo e incremental
•
•
•
Aumentar satisfação do cliente
Evitar o desencorajamento da Gestão
Década de 80
Aprimoramento da Engenharia de Software
• Diversificação das linguagens de programação
•
•
Década de 90
Maturação dos processos de desenvolvimento de Software
• Semente dos modernos processos de Desenvolvimento Ágil
•
•
2001 - 17 especialistas se reúnem nos EUA para discutir modernas
formas de se desenvolver Software
Estabelecida a Aliança Ágil
• Manifesto Ágil
•
•
Princípios comuns compartilhados por todos os métodos de sucesso
aplicados pelos especialistas durante suas carreiras
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Técnicas e Projeto de Sistemas –
Técnico Subsequente
4
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Técnicas e Projeto de Sistemas –
Técnico Subsequente
Disponível em agilemanifesto.org
5
Guarda Chuva Ágil
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Técnicas e Projeto de Sistemas –
Técnico Subsequente
6
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Técnicas e Projeto de Sistemas –
Técnico Subsequente
7
Por que usar?
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Técnicas e Projeto de Sistemas –
Técnico Subsequente
8
Por que usar?
•
Dos 63% restantes:
•
•
•
2/3 possuem problemas
•
Estouro de Prazo
•
Não atendem as necessidades
•
Estão cheio de defeitos
1/3 é um total fracasso
•
Cancelado/engavetado
•
Nunca colocado em produção ou utilizado pelo cliente
Dos casos de sucesso, em geral apenas 20% das
funcionalidades são realmente úteis.
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Técnicas e Projeto de Sistemas –
Técnico Subsequente
9
Por que usar?
•
•
Suposições de início de projeto
•
Os requisitos são 100% conhecidos e foram minuciosamente detalhados
•
O Desenvolvedor sabe construir
•
Nada irá mudar ao longo do caminho
Realidade que deve ser observada :
•
“Um processo rígido ou resistente a mudanças produz produtos
medíocres. Os clientes podem até receber o que eles solicitaram
primeiramente, mas é esse o produto que eles realmente querem logo
quando eles o recebem? Coletando todos os requisitos no início e
escrevendo-os sobre pedra, o produto é condenado a ser tão bom
quanto a idéia inicial, ao invés de ser o melhor uma vez que as pessoas
aprendem ou descobrem como fazer melhor.” [Jeff Sutherland]
•
Idéias, novas tecnologias e opções surgem no decorrer do projeto. Desta
forma uma nova idéia não deveria ser mau vista pela equipe/gestor.
•
Sim, as coisas mudam durante o caminho
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Técnicas e Projeto de Sistemas –
Técnico Subsequente
10
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Técnicas e Projeto de Sistemas –
Técnico Subsequente
11
SCRUM
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Técnicas e Projeto de Sistemas –
Técnico Subsequente
12
Por que Scrum?
“O Scrum não é um processo previsível, ele não define o que
fazer em todas as circunstâncias” KEN SCHWABER (2004)
É um framework ágil leve que gerencia e controla o desenvolvimento do
software aumentando a produtividade e reduzindo o tempo para obter
excelentes resultados;
•
•
•
•
•
•
Bastante objetivo
Papéis e Responsabilidades bem definidas
Fácil adaptação
Curva de aprendizado baixa
Não é um processo previsível
É um framework, um conjunto de práticas
O Scrum não vai dizer exatamente o que fazer, não irá resolver
todos os seus problemas, mas com certeza os problemas serão mais
facilmente identificados.
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Elementos do Scrum – EQUIPE DE ATÉ
6 PESSOAS
PAPÉIS
• Product Owner
• Scrum Master
• Time
REUNIÕES ou CERIMÔNIAS
• Sprint Planning
• Daily Scrums
• Sprint Review
• Sprint Retrospective
ARTEFATOS
• Product Backlog
• Sprint Backlog
• Burndown Chart
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Técnicas e Projeto de Sistemas –
Técnico Subsequente
14
O que é Sprint
•
No Scrum, os projetos são divididos em
ciclos (tipicamente mensais) chamados de
Sprints.
•
O Sprint representa um tempo definido
dentro do qual um conjunto de atividades
deve ser executado.
•
O trabalho é dividido em iterações, que no
Scrum são chamadas de Sprints e
geralmente duram de 2 a 4 semanas.
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Técnicas e Projeto de Sistemas –
Técnico Subsequente
15
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Técnicas e Projeto de Sistemas –
Técnico Subsequente
16
Papéis
•
Product Owner (PO)
• Define as funcionalidades do
produto
• Define as datas dos releases
• Responsável pelo retorno do
investimento (ROI) do projeto
• Prioriza as funcionalidades de
acordo com seu valor de negócio
• Ajusta o product backlog a
cada sprint, se necessário.
•Pode ser o representante de
um cliente, ou o próprio cliente.
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Técnicas e Projeto de Sistemas –
Técnico Subsequente
17
Papéis
•
Time
• Multi-disciplinar, com 7 (+-2)
membros
• Define o Sprint e define
como será feito o trabalho
• Tem o direito de fazer o que
estiver ao seu alcance para
alcançar o Sprint
• Auto-gerenciado: o time se
organiza e se gerencia
• Demonstra o que foi feito
para o Product Owner ao fim de
cada Sprint
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Técnicas e Projeto de Sistemas –
Técnico Subsequente
18
Papéis
•
Scrum Master
• Responsável pelo processo,
incluindo a realização do Daily
Scrum e datas e horários das
reuniões
• Remove os impedimentos
• Garante que o time está sempre
funcionando e produtivo
• Facilita a cooperação entre
todos os membros do time
• Protege o time das interrupções
externas
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Técnicas e Projeto de Sistemas –
Técnico Subsequente
19
Reuniões - Sprint Planning
•
Sprint Planning
PLANEJAMENTO
•
Daily Scrum
•
Sprint Review
•
Sprint Retrospective
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
• Entendimento do Escopo
• Estimativas de complexidade
• Definição do Sprint
Técnicas e Projeto de Sistemas –
Técnico Subsequente
20
Sprint Planning
O Sprint Planning Meeting é uma reunião na qual estão
presentes o Product Owner, o Scrum Master e todo o Time,
bem como qualquer pessoa interessada que esteja
representando a gerência ou o cliente.
Durante o Sprint Planning Meeting, o Product Owner
descreve as funcionalidades de maior prioridade para a
equipe. A equipe faz perguntas durante a reunião de modo
que seja capaz de quebrar as funcionalidades em tarefas
técnicas, após a reunião. Essas tarefas irão dar origem ao
Sprint Backlog.
Coletivamente, o Time e o Product Owner definem um
objetivo para o Sprint, que é uma breve descrição daquilo
que se tentará alcançar no Sprint. O sucesso do Sprint será
avaliado mais adiante no Sprint Review Meeting em relação
ao objetivo traçado para o Sprint.
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Reuniões – Daily Scrum
•
Sprint Planning
3 PERGUNTAS
1. O que foi feito desde o último DS?
2. O que será feito hoje?
3. O que esta impedindo?
•
Daily Scrum
•
Sprint Review
•
Sprint Retrospective
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
• Peer-pressure (em pé)
• Máximo de 15 minutos
• Comprometimento
Técnicas e Projeto de Sistemas –
Técnico Subsequente
22
Reuniões – Sprint Review
•
Sprint Planning
DEMONSTRAÇÃO
• Apresentação das funcionalidades
• Aceitação do Product Owner
•
Daily Scrum
•
Sprint Review
•
Sprint Retrospective
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Técnicas e Projeto de Sistemas –
Técnico Subsequente
23
Reuniões – Sprint Retrospective
•
Sprint Planning
•
Daily Scrum
•
Sprint Review
•
Sprint Retrospective
REVISÃO
• O que foi bom?
• O que pode ser Melhorado?
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Técnicas e Projeto de Sistemas –
Técnico Subsequente
24
Artefatos
•
Product Backlog
•
Sprint Backlog
•
Burndown Chart
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Técnicas e Projeto de Sistemas –
Técnico Subsequente
25
Product Backlog
•O Backlog do Produto é uma lista contendo todas as
funcionalidades desejadas para um produto. O conteúdo desta
lista é definido pelo Product Owner.
•O Product Backlog não precisa estar completo no início de um
projeto. Pode-se começar com tudo aquilo que é mais óbvio em
um primeiro momento.
•Com o tempo, o Backlog cresce e muda à medida que se
aprende mais sobre o produto e seus usuários.
•A partir dele origina-se o Backlog do Sprint que é o que será feito
naquela tarefa.
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Quadro de Acompanhamento – Sprint Backlog
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Burn Down Chart
•
O Burndown é um simples gráfico, com dois eixos X e Y, baseado
nas atividades que não ultrapassem um dia de trabalho. O eixo X
indica o número de tarefas existentes no Sprint e o eixo Y os dias
que representam o tamanho do Sprint.
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Técnicas e Projeto de Sistemas –
Técnico Subsequente
28
Metodologias Ágeis
XP
(EXTREME PROGRAMMING)
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus
Pós-Graduação
emAraguaína
Engenharia de Software
Indivíduos e interações ao
invés de processos e ferramentas
Software executável ao
invés de documentação.
Colaboração do cliente ao
invés de negociação de
contratos.
Respostas rápidas a mudanças
ao invés de seguir planos.
O Garotinho chamado CLIENTE
Software – Aperto de mão
Cliente – Um abraço
Garra – Gargalhada
Bem Vindos - Palmas
O que é o XP?
Metodologia de desenvolvimento de
software, nascida nos Estados Unidos ao final
da década de 90.
Criar sistemas de
melhor qualidade.
Produzidos em menos tempo e de
forma mais econômica que o habitual.
Identificou o que tornava simples e o que
dificultava o desenvolvimento de software.
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Técnicas e Projeto de Sistemas –
Técnico Subsequente
34
Como fazer?
Pequeno conjunto de
valores e práticas
•A Programação Extrema é uma das
metodologias ágeis mais conhecidas e
utilizadas na atualidade.
•Desenvolvidas para:
• Equipes médias e pequenas (2 a 12
pessoas);
Baseada em cinco valores,
alguns princípios e várias
práticas que ocorrem no
decorrer das atividades;
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Técnicas e Projeto de Sistemas –
Técnico Subsequente
35
Comunicação
Coragem
Feedback
Respeito
Simplicidade
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Técnicas e Projeto de Sistemas –
Técnico Subsequente
36
Comunicação
Para que um projeto seja um sucesso é necessário muita
interação entre as equipes: programadores, clientes e
treinador;
VS
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Técnicas e Projeto de Sistemas –
Técnico Subsequente
37
Coragem
“A única constante em
um projeto de software
é a mudança”
Alterar um código em produção sem causar
bugs, com agilidade, exige muita coragem e
responsabilidade;
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Técnicas e Projeto de Sistemas –
Técnico Subsequente
38
Feedback
mais cedo descobrimos
um problema, menos
prejuízos ele pode causar
Quanto
As respostas às decisões tomadas
devem ser rápidas e visíveis.
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Técnicas e Projeto de Sistemas –
Técnico Subsequente
39
Respeito
Dá sustentação a todos os
demais valores
Todos têm a sua
importância dentro
da equipe e devem
ser respeitados e
valorizados.
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Técnicas e Projeto de Sistemas –
Técnico Subsequente
40
Simplicidade
Apenas aquilo que é
claramente necessário
É um dos valores mais
importantes.
Normalmente o que o
cliente quer é mais
simples.
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Técnicas e Projeto de Sistemas –
Técnico Subsequente
41
Papéis
Papéis...
Programadores
Treinador (ou coach)
Acompanhador (ou tracker)
Cliente
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Técnicas e Projeto de Sistemas –
Técnico Subsequente
43
Programadores
Foco central da
metodologia, mas
sem hierarquia.
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Técnicas e Projeto de Sistemas –
Técnico Subsequente
44
Treinador (coach)
Pessoa com
experiência
no time, é
responsável por
lembrar aos outros
das práticas e
valores do XP.
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Técnicas e Projeto de Sistemas –
Técnico Subsequente
45
Acompanhador (tracker)
Responsável por trazer
informações que mostrem
o andamento do projeto
que ajudem a tomar
decisões de
implementação.
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Técnicas e Projeto de Sistemas –
Técnico Subsequente
46
Cliente
O Cliente faz parte da
equipe!!
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Técnicas e Projeto de Sistemas –
Técnico Subsequente
47
Práticas
Práticas...
Testes
Refatoração
Programação Pareada (em pares)
Propriedade Coletiva
Integração Contínua
Semana de 40 horas
Cliente junto aos desenvolvedores
Padronização do código
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Técnicas e Projeto de Sistemas –
Técnico Subsequente
49
Testes
Desenvolvimento
orientado a Testes
Os testes devem ser
escritos antes do
desenvolvimento.
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Técnicas e Projeto de Sistemas –
Técnico Subsequente
50
Refatoração
Conjunto de
técnicas para
simplificar,
melhorar o
código!
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Técnicas e Projeto de Sistemas –
Técnico Subsequente
51
Programação em
Pares
Enquanto um
programador digita,
o outro observa,
pensa em
melhorias,
alternativa.
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Técnicas e Projeto de Sistemas –
Técnico Subsequente
52
Propriedade
Coletiva
O código é de todos e
ninguém precisa de
permissão para
modificá-lo
Não pertence a um
único programador.
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Técnicas e Projeto de Sistemas –
Técnico Subsequente
53
Integração
Contínua
Depois de testada, cada
nova funcionalidade
deve ser imediatamente
sincronizada entre todos
os desenvolvedores.
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Técnicas e Projeto de Sistemas –
Técnico Subsequente
54
Semana de 40
horas
Programação não rende se o programador
não estiver descansado e disposto.
Trabalhar com
qualidade
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Técnicas e Projeto de Sistemas –
Técnico Subsequente
55
Cliente junto
O cliente não é alguém
de fora e sim um
membro da equipe.
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Técnicas e Projeto de Sistemas –
Técnico Subsequente
56
Padronizações
Se o time seguir
padrões pré-definidos
de codificação, mais
fácil será manter e
entender o que já
está feito, reforçando
a comunicação.
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Técnicas e Projeto de Sistemas –
Técnico Subsequente
57
Métodos Ágeis Mais Conhecidos
•
FDD (Feature Driven Development):
•
Metodologia ágil de desenvolvimento de software guiado
por funcionalidades;
•
Metodologia que combina as melhores práticas do
gerenciamento ágil de projetos com abordagens completas
para ES orientada por objetos;
•
Seu
lema
é:
"Resultados
frequentes,
tangíveis
e
funcionais."
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Técnicas
e Projeto
de–Sistemas
TÉCNICAS
E PROJETO
DE SISTEMAS
TÉCNICO
SUBSEQUENTE
Técnico Subsequente
–
58
58
ATIVIDADES
•
1) Quais
são as principais metodologias
ágeis? Cite três.
•
2) Defina o que Scrum.
•
3) Quais os principais elementos do Scrum.
•
4) O que é o XP?
•
5) Quais seus valores;
•
6) Cite os papeis da equipe;
•
7) Cite as práticas.
INSTITUTO FEDERAL DE
EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TOCANTINS
Campus Araguaína
Técnicas e Projeto de Sistemas –
Técnico Subsequente
59
Download

Metodologias Ágeis