Metodologias Ágeis
-
Upload
profa-karen-borges -
Category
Documents
-
view
144 -
download
1
description
Transcript of Metodologias Ágeis
Metodologias Ágeis Para o Desenvolvimento de Software
Profa. Karen Borges
Motivação
http://youtu.be/sZ38n9gwYiw
Manifesto Ágil
• Indivíduos e interações 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
Manifesto Ágil• Propõe, através dos seus 12 princípios, uma
metodologia de desenvolvimento de software baseada em :– forte interação com o cliente;– redução e simplificação da quantidade de documentos gerados
durante o projeto;– entrega freqüente de executáveis– desenvolvimento incremental
Ser ágil é ...
• Evitar o desperdício
• Buscar a melhoria contínua
• Agregar valor ao que está sendo produzido
• Colaborar
• Ser pró-ativo
AGILE = SMART
Ser ágil é ...
Você é ágil ?
• Busca ir além do que lhe foi pedido ? Fazer sempre melhor ?
• Fica esperando que lhe digam o que fazer ? Onde trabalhar ?
• É capaz de se adaptar ? De lidar com as mudanças ?
• É colaborativo ?• Busca prazer naquilo que faz ? Vê propósito no
que faz ?• É diligente, inspirador e compreensivo ?• Consegue manter equilíbrio entre trabalho e
vida pessoal ?
Pigs and Chickens
• Quem você é ?
O que são métodos ágeis
• É uma atitude, não um processo prescritivo.
• É um suplemento aos métodos existentes, ele não é uma metodologia completa.
• É uma forma efetiva de se trabalhar em conjunto para atingir as necessidades das partes interessadas no projeto.
• É uma coisa que funciona na prática, não é teoria acadêmica
O que são métodos ágeis
• É para o desenvolvedor médio, mas não é um substituto de pessoas competentes.
• Não é um ataque à documentação, pelo contrário aconselha a criação de documentos que tem valor.
• Não é um ataque às ferramentas CASE
Métodos Ágeis
• Agile Data (AD) • Agile Microsoft Solutions Framework (MSF) • Agile Modeling (AM) • Agile Unified Process (AUP) • Dynamic System Development Method (DSDM) • Extreme Programming (XP) • Feature Driven Development (FDD) • Scrum • Usage-Centered Design (UCD) • Outros ...
Métodos Ágeis
• São baseados em princípios e valores
• Os artefatos não são a essência
• Agile by the book pode não ser a melhor abordagem
Scrum
Scrum
http://www.youtube.com/watch?v=1kGBLGEvDcc
Scrum
• Em Rugby, Scrum é um time de oito integrantes que trabalham em conjunto para levar a bola adiante no campo.
• Ou seja: times trabalhando como uma unidade altamente integrada com cada membro desempenhando um papel bem definido e o time inteiro focando num único objetivo.
Scrum
• Metodologia para gestão de projetos de desenvolvimento de software.
• Ideal para equipes de 5 a 9 profissionais.
• Não existem as figuras de programador, testador, arquiteto, etc. Equipe multidisciplinar (cross-functional).
• Time !
Scrum
• Papéis:– Scrum master: é o responsável por garantir
que os princípios, valores e regras do Scrum sejam aplicados.
– Product owner: é um representante do cliente. Responsável pelo levantamento de requisitos (histórias) e manutenção do backlog.
– Time
Scrum
• “ Se uma empresa não possui processos definidos, o Scrum é uma das melhores opções, pois ele é simples de entender e bem mais simples de implantar que outros processos ... O mais importante é que ele traz uma caixa de ferramentas de boas práticas de trabalho, permitindo obter bons resultados, mesmo que a equipe não tenha domínio completo das técnicas que estão sendo utilizadas”.
Nelson Abu
Scrum Master
Scrum
• Princípios:– Aceitar as incertezas– Constante planejamento– Trabalhar como um time– Equipes auto-gerenciáveis– Manter um ritmo de trabalho suportável– Entregas freqüentes
Práticas Ágeis
• Sprint: é um período de tempo, de 1 a 4 semanas, ao final do qual é apresentada uma nova funcionalidade integrada ao sistema
Práticas Ágeis• Backlog é uma lista das
atividades a serem realizadas pela equipe.– Os itens que compõe a lista
são chamados de histórias
– Todos podem incluir histórias
– Somente o Product Owner pode priorizá-las
– Product Owner pode priorizar novamente no início de cada Sprint
Ferramenta - Kanban
http://youtu.be/LJOiFRsp0Z8
Práticas Ágeis
• Histórias:– São os problemas a serem resolvidos– São subdivididas em tarefas (tasks). Cada
task tem:• um responsável• um executor (cada um escolhe o que acha que tem
condições de resolver), • estimativa de horas (conforme a experiência do
executor).
Práticas Ágeis
• Histórias – exemplo
Conforme Mike Cohn
Práticas Ágeis
• Tarefas da história
Ferramenta
Ferramenta
Ferramenta – Planning Poker
http://www.youtube.com/watch?v=gE7srp2BzoM
Práticas Ágeis
• Daily Meetings: reuniões diárias de 15 minutos, onde todos respondem às perguntas:– O que você realizou desde a última reunião?– Quais problemas você enfrentou?– Em que você
trabalhará até a
próxima reunião?
Scrum + XP
“É um erro achar que usar Scrum sozinho trará agilidade para os projetos de software. Scrum é
apenas uma ferramenta para facilitar o gerenciamento de projetos, sejam eles de aviões, carros ou softwares. Para desenvolver software
com Scrum é necessário adicionar práticas ágeis de engenharia de software como as do XP, que é específico para isso, para que aí sim você tenha
verdadeira agilidade”.
Guilherme Chapiewski
Coordenador de webmedia da Globo.com
30
XP
• Extreme Programming é uma metodologia de desenvolvimento de software voltada para equipes de 2 a 10 programadores com vistas a atender as rápidas mudanças de requisitos do sistema.
• Projeto com no máximo 36 meses de duração
31
XP
• Valores básicos:– Comunicação: constante entre os membros da
equipe– Simplicidade: implementar o que é necessário– Feedback: entregas rápidas e freqüentes– Coragem: para implantar os três valores
anteriores. – Respeito: para saber ouvir, compreender e
respeitar o ponto de vista do outro, sempre tendo em mente o sucesso do projeto.
32
Práticas Ágeis
–Foco na codificação• Programação em
pares• Código público (SVN)• Refatoração• Uso de padrões
Práticas Ágeis
• Pouca documentação• Desenvolvimento orientado a testes
– Testes unitários– Testes de integração– Testes de usabilidade
• Integração contínua
Não ser ágil é ...
Referências
• Abrahamson, Pekka; Salo, Outi; Ronkainen, Jussi. Agile Software Development Methods: review and analysis. Otamedia Oy, Espoo 2002. VT Publications 478. Disponível em http://www.vtt.fi/inf/pdf/publications/2002/P478.pdf
• Beck, Kent. Extreme Programming Explained: embrace changes. Addison-Wesley, 2000
• Freire, Flávia. Desvendando o Scrum. Revista TIDigital pags 36 – 43. abr 2009.
Referências
• Cohn, Mike. User Stories Applied For Agile Software Development. Edt. Pearson. 2004
• Costa, Fernando. Agilidade: scrum e xp. Disponível em http://www.slideshare.net/fernandocostafln/agilidade-scrum-e-xp-presentation
• Kniberg, Henrik. Scrum and XP from the Trenches. Disponível em http://infoq.com/minibooks/scrum-xp-from-the-trenches.
Referências