Projeto de Sistemas
Aula 3
• Professora Kelly de Paula Cunha
Distribuição da pontuação
das atividades
• Acessar o moodle para ver o cronograma das
atividades e suas respectivas pontuações
Modelos Tradicionais versus Modelos Ágeis
o
o
o
o
Modelos Tradicionais:
Modelo Cascata
Modelo Rad
Modelo Incremental
Modelo de Prototipação ...
Modelos Ágeis:
o Scrum
o Kanban
o XP
Desenvolvimento Ágil de Software
Agile Development
Material Didático Elaborado pelo
Professor Felipe A. Moura Miranda
Índice
Desenvolvimento Ágil
1.Introdução
2.Métodos de Desenvolvimento Ágil
3.Scrum
4.Programação Extrema – XP
5.Kanban
5
Introdução
O que é Desenvolvimento Ágil?
Resumidamente: Mudança de Perspectiva!
6
Introdução
O que é Desenvolvimento Ágil?
Resumidamente: Mudança de Perspectiva!
Modelo Tradicional
• Análise ==> Projeto ==> Construção
Modelo Ágil
• Iterações curtas!
==> Entrega/Execução ==>
• Entregas pequenas, mas frequentes!
Manutenção
• Uso de Padrões de Projetos e
• Baseado em modelos industriais de
produção.
• Mudanças feitas em estágios
avançados são caríssimas.
Frameworks.
• Diminuição de riscos no
desenvolvimento.
• Maior envolvimento do cliente.
• O cliente só vê o software no fim do
processo.
7
Introdução
O que é Desenvolvimento Ágil?
Motivação e Valores
Estamos descobrindo maneiras melhores de desenvolver software, fazendo-o nós
mesmos e ajudando outros a fazerem o mesmo.
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
Fonte: Manifesto Ágil (http://www.agilemanifesto.org/iso/ptbr/)
Introdução
O que é Desenvolvimento Ágil?
Princípios
Nossa maior prioridade é satisfazer o cliente através da entrega contínua e
adiantada de software com valor agregado.
Mudanças nos requisitos são bem-vindas, mesmo tardiamente no
desenvolvimento. Processos ágeis tiram vantagem das mudanças visando
vantagem competitiva para o cliente.
Entregar frequentemente software funcionando, de poucas semanas a
poucos meses, com preferência à menor escala de tempo.
E outros 9…
Métodos de
Desenvolvimento Ágil
★ SCRUM
- Forma simples e de fácil repetição para gerenciar trabalho.
★XP (Extreme Programming)
- Baseia-se nos valores de simplicidade, comunicação,
feeback e coragem e em um conjunto de práticas iterativas.
★KANBAN
- Método principalmente visual.
As tarefas são colocadas num quadro
para todos do time verem.
SCRUM
Quem é quem no SCRUM
Dono do Produto
- Responsável pelo
“Por que? & O que?”
- Prioriza e valida requisitos
- Dita o rumo do projeto
Equipe
Scrum Master
- Responsável pelo “Como?"
- Se organiza de forma independente
- Estima e produz o software
- Coordena o processo
- Resolve problemas e impedimentos
- Foca na cultura da empresa
SCRUM
Fluxo de Trabalho
SCRUM
Fluxo de Trabalho
Sprint (Corrida, Tiro)
- É a unidade básica de trabalho da equipe, onde o desenvolvimento
realmente acontece.
- A duração pode ser escolhida pela equipe.
Normalmente, fica entre 1 semana e 1 mês.
- Uma duração constante favorece o ritmo
da equipe.
- No exemplo, o sprint é de 2 semanas.
SCRUM
Fluxo de Trabalho
Backlog
- É a lista de itens a serem desenvolvidos.
- O dono do produto prioriza os itens no backlog.
- Um número de itens é selecionado na fase de Planejamento de Sprint,
de acordo com a prioridade, para desenvolver no próximo Sprint.
SCRUM
Fluxo de Trabalho
Planejamento de Sprint
- Antes de começar um novo Sprint, todos os envolvidos se reúnem.
- A lista de itens priorizados é revista, e a equipe estima o esforço (tempo)
que cada um dos itens leva para ser concluído.
- Um número adequado de itens é selecionado, gerando o Sprint Backlog.
Dono do Produto
Scrum Master
Equipe
SCRUM
Fluxo de Trabalho
Atividade diária: Reuniões em pé
- Ocorre todos os dias durante o Sprint e tem duração limitada.
Normalmente é de 15 minutos.
- Os participantes devem reportar:
> O que você fez ontem?
> O que fará hoje?
> Tem alguma coisa o atrapalhando?
- O Scrum Master controla o
andamento da reunião e visa
facilitar o processo.
- As reuniões são em pé para
garantir que acabe no prazo
estabelecido.
SCRUM
Fluxo de Trabalho
Burndown Chart - Gráfico de Progresso
- Trabalho restante x Tempo
restante
- Eixo y: número de tarefas
existentes no Sprint.
- Eixo x: dias correspondentes à
duração do Sprint.
SCRUM
Fluxo de Trabalho
Fim de um Sprint - 1: Sprint Review
- É realizado um trabalho de revisão do Sprint que terminou.
- A reunião é informal, e todos os envolvidos
são convidados.
- O software parcial, mas que funciona, é
apresentado, exibindo as novas funcionalidades.
- As métricas de desempenho do Sprint
também são mostradas.
SCRUM
Fluxo de Trabalho
Fim de um Sprint - 2: Retrospectiva
- É realizado ainda um trabalho de retrospectiva do Sprint que terminou.
- A reunião é fechada ao time e ao Scrum Master.
O dono do produto pode participar.
- A duração é entre 30 a 60 minutos.
- Discute-se o que deu certo, o que não deu, e o
que deve ser feito de diferente no próximo
Sprint.
XP: Extreme Programming
Introdução
- XP usa um conjunto de práticas iterativas de desenvolvimento para obter os
mesmos tipos de benefícios que o Scrum. Entre eles:
- Ciclos curtos de desenvolvimento.
- Priorização dos itens a serem desenvolvidos.
- Refatoração constante.
XP: Extreme Programming
Práticas 1
- Planejamento incremental
Os casos de uso do projeto são transformados em Histórias do Usuário, em que
cada história uma situação do uso do sistema é representada. Os desenvolvedores
transformam uma história em tarefas de desenvolvimento.
- Design simples
O design do projeto deve satisfazer os requisitos mínimos do sistema e nada mais.
- Desenvolvimento baseado em testes
Testes automatizados são escritos para testar uma funcionalidade antes mesmo de
a nova funcionalidade existir, para garantir que ela satisfaça o que era desejado
inicialmente.
- Programação em pares
O desenvolvimento é feito em pares de desenvolvedores, para que um verifique o
trabalho do outro e pensem juntos na resolução de problemas.
XP: Extreme Programming
Práticas 2
- Refatoração constante
Sempre que os desenvolvedores encontrarem possibilidades de melhoramento do
código, devem refatorar, para garantir que a base de código continue simples.
- Integração contínua
Assim que uma tarefa é concluída, ela deve ser incluída e testada no sistema
inteiro.
- Propriedade compartilhada
Todos os pares de desenvolvedores trabalham em todo o sistema, e não em partes
específicas. Isso garante que o código é constantemente revisado.
Kanban
(看板)
Melhoria Contínua: Princípios e Práticas
- Comece com o que você já faz
Kanban não estipula um processo, apenas motiva para a melhoria contínua.
- Mudanças pequenas, graduais e evolucionárias
As mudanças introduzidas devem ser pequenas, e não revolucionárias, para
que o processo e as pessoas possam se ajustar de acordo.
- Respeite o processo atual
Provavelmente há coisas que funcionam na metodologia atual, e nem tudo deve
ser descartado - deve-se preservar o que funciona.
- Liderança em todos os níveis
Todos os níveis devem ter poder de influência sobre o próprio trabalho.
- Visualização
O objetivo é facilitar o entendimento do fluxo de informação.
Por isso, deve ser visível a todos os envolvidos.
- Limite o que está em andamento
Deve haver um limite nas atividades desenvolvidas
simultaneamente para garantir um nível de produtividade aceitável.
Referências Bibliográficas
• 1. SHORE, Warden. A Arte do Desenvolvimento Ágil. Alta
Books, 2008.
• 2. COHN, Mike. Desenvolvimento de Software com Scrum
- Aplicando Métodos Ágeis com Sucesso. Bookman, 2011.
• 3. KERIEVSKY, Joshua. Refatoração para Padrões.
Bookman, 2008.
• 4. PHAM, Andrew; PHAM, Phuong-Van. Scrum em Ação Gerenciamento e Desenvolvimento Ágil de Projetos de
Software. Novatec, 2011.
• 5. MACEDO, Paulo Cesar de; SBROCCO, José Henrique
Teixeira de Carvalho. Metodologias Ágeis - Engenharia de
Software Sob Medida. Ed. Érica, 2012.
Atividade 4
Escolha um dos métodos de desenvolvimento de
software, para ser empregado no seu trabalho
Ex: Scrum, Kanban, XP...
Justifique porquê este método é mais adequado para
o seu trabalho, e descreva o método.
Entrega: 11/09/2015
Enviar para o e-mail: [email protected]
Cronograma
• 04/09/2015 - Atividade 2 - Elaboração do Resumo e
submissão para o site da Feira de Ciências
• 04/08/2015 - Atividade 3 - Elaboração do Plano de
Trabalho
• 11/08/2015 - Atividade 4 - Descrição da
metodologia de desenvolvimento a ser utilizada
Download

Desenvolvimento Ágil de Software