Buscar

Aulas-gil

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Desenvolvimento Ágil
Diana Braga
1
Bibliografia
Roger Pressman (Cap. 4)
Sommerville (Cap. 17)
2
ANOS 80
Ausência de metodologias de desenvolvimento
Programação procedural e estruturada
Programas são: sequência, decisão e iteração
3
ANOS 90
Linguagem UML
Processos unificados (UP)
Metodologias Orientadas a Objetos
Fases bem definidas e controladas
Analogia com a Engenharia Civil
4
Manifesto Ágil
2001
Envolvidos (Aliança Ágil)
Kent Beck
Mike Beedle
Arie van Bennekum
Alistair Cockburn
Ward Cunningham
Martin Fowler
James Grenning
Jim Highsmith
Andrew Hunt
Ron Jeffries
Jon Kern
Brian Marick
Robert C. Martin
Steve Mellor
Ken Schwaber
Jeff Sutherland
Dave Thomas
5
5
Manifesto Ágil
Estamos descobrindo maneiras melhores de desenvolver software, fazendo-o nós mesmos e ajudando outros a fazerem o mesmo. Através deste trabalho, passamos a valorizar
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
6
6
O que é o desenvolvimento ágil?
É uma filosofia e um conjunto de diretrizes que encorajam
A entrega incremental do software logo de início
Equipes de projeto pequenas e motivadas
Métodos informais de comunicação ao invés de documentos escritos
Enfatizar a entrega em contraposição à análise e ao projeto
Adotar o cliente como parte da equipe
7
7
Quando deve ser usado o
desenvolvimento ágil?
O desenvolvimento ágil é particularmente indicado em situações onde os requisitos são imprevísiveis ou mudam rapidamente
Ele funciona melhor para equipes pequenas (até 10 desenvolvedores) trabalhando no mesmo local
8
8
Doze princípios da agilidade
Ter como maior prioridade satisfazer o cliente por meio da entrega de software
Modificações contínuas são bem-vindas e levam à competitividade para o cliente
Entrega de software funcionando em períodos de duas semanas a dois meses
O pessoal de negócio e os desenvolvedores devem trabalhar juntos diariamente
Construção de projetos em torno de indivíduos motivados e talentosos
Usar métodos informais de comunicação como conversar pessoalmente
9
9
Doze princípios da agilidade
 Software funcionando é a principal medida de progresso
 Promover o desenvolvimento sustentável, mantendo um ritmo de produção
 Atenção contínua à excelência técnica e ao bom projeto
Simplicidade é essencial
As melhores arquiteturas, requisitos e projetos surgem de equipes auto-organizadas
A equipe deve, em intervalos regulares, refletir sobre como se tornar mais efetiva
10
10
O que é um Processo Ágil?
É um processo que atende a três suposições-chave sobre a maioria dos projetos de software
É difícil prever antecipadamente quais requisitos de software e prioridades do cliente vão persistir e quais serão modificadas
É difícil prever o quanto de projeto é necessário antes que a construção seja usada para comprovar o projeto
Análise, projeto, construção e testes não podem ser tão bem planejados como gostaríamos
Dessa forma, como criar um processo que possa gerenciar a imprevisibilidade?
Adaptação do processo
Mas o processo ágil deve ser adaptável incrementalmente (evitar a adaptação contínua sem progresso)
11
11
Fatores humanos
Características-chave de uma equipe ágil
Competência
Foco comum
Colaboração
Capacidade de tomada de decisão
Habilidade de resolver problemas vagos
Respeito e confiança mútua
Auto-organização
Organização do trabalho a ser feito
Organização do processo para melhor acomodar o ambiente local
Organização do cronograma para conseguir a melhor entrega do incremento 
12
12
Modelos De Processo Ágeis
Extreme Programming (XP)
Desenvolvimento Adaptativo de Software (DAS)
Método de Desenvolvimento Dinâmico de Sistemas (DSDM)
Scrum
Crystal
Desenvolvimento Guiado por Características (FDD)
Modelagem Ágil (AM)
13
13
eXtreme Programming
14
Extreme Programming (XP)
Kent Beck
Estados Unidos, 1999
15
XP é leve
XP é focado no desenvolvimento de software
XP se adapta bem a requisitos vagos e que mudam rapidamente
15
Extreme Programming (XP)
Trabalho pioneiro sobre o assunto escrito em 1999 por Kent Beck
Usa uma abordagem orientada a objetos como seu paradigma de desenvolvimento
Inclui um conjunto de regras e práticas que ocorrem no contexto de quatro atividades de arcabouço
 Planejamento
 Projeto
 Codificação
 Teste
16
16
Ciclo Semanal
Jogo do Planejamento
17
17
XP - Planejamento
Clientes escrevem estórias
Estórias são escritas na linguagem natural
Estórias exprimem o comportamento de uma Funcionalidade geral
Exemplo
Realizar cadastro de Usuário no sistema. O sistema deverá armazenar nome, telefone e e-mail. O sistema deverá permitir listagem, edição e exclusão.
18
18
XP - Planejamento
Todos fazem estimativas para todos as estórias
As estimativas são individuais
Estimativas do tempo
19
XP - Planejamento
Cliente Prioriza as histórias
Responsabilidade nas mãos do cliente
Limite máximo de estórias de acordo com as estimativas feitas
Construção de tarefas
Exemplo
História: Realizar cadastro de Usuário no sistema. O sistema deverá armazenar nome, telefone e e-mail. O sistema deverá permitir listagem, edição e exclusão.
Tarefas
Modelagem do banco de dados
Criar Interface
Criar listagem
Criar exclusão 
Criar edição
20
Limite máximo??? Slide 24
20
XP - Projeto
Segue o princípio KIS (Keep It Simple)
Se restringe a implementar as estórias de usuário
Usa cartões CRC (Class-Responsability-Colaborator) para identificar e organizar as classes que são relevantes para o incremento atual
Se um problema de projeto difícil é encontrado, o XP recomenda a criação de uma solução de ponta para diminuir o risco
Solução de ponta = um protótipo operacional daquela parte do projeto, que depois será descartado
O XP encoraja a refactoring (refatoração) = modificar o sistema de tal modo que o comportamento externo não seja alterado, mas aperfeiçoe a estrutura interna
21
21
XP - Projeto
Cartão CRC (Classe Responsabilidade Colaboração)
22
22
XP - Projeto
Refatoração [Fowler, 2000]
Processo de modificar um sistema de software de tal modo que ele não altere o comportamento externo do código, mas aperfeiçoe a estrutura interna
23
23
XP - Codificação
Antes de partir para o código, a equipe deve desenvolver testes unitários para verificar a funcionalidade que será desenvolvida
A programação é feita em pares
Isso fornece um mecanismo de solução de problemas e de garantia de qualidade em tempo real
Uma pessoa pensa nos detalhes do código enquanto a outra garante as normas de codificação e que o código gerado vai se encaixar no resto do sistema
O código gerado vai sendo integrado imediatamente (integração contínua) ao trabalho de outros, o que ajuda a evitar problemas de compatibilidade e interface e fornece um ambiente de “teste de fumaça”
24
24
Programação aos pares
Um digita, outro revisa
Redução de bugs
Disseminação do conhecimento
Pressão do par
Simplicidade
Velocidade
25
XP - Codificação
25
XP - Codificação
Mova as pessoas pelo projeto
26
26
Ambiente de Trabalho
“Se você não tiver um ambiente razoável para trabalhar, seu projeto não terá sucesso” (Kent Beck)
Quadro branco
Post-it
Cadeiras giratórias
Jogos
Comida e café
Folhas em branco
27
XP - Codificação
27
XP - Teste
Os testes unitários são criados de tal forma que eles possam ser automatizados, e aplicados diariamente
O XP usa uma estratégia de teste de regressão: testes são aplicados de novo mesmo que anteriormente eles não tenham apresentado problema
Isso permite a refactoring
Os testes de integração e validação do sistema podem ocorrer diariamente
Testes de aceitação são especificados pelo cliente (derivados das estórias do usuário) e focalizam nas características e funcionalidades do sistema global
28
28
29
Reuniões diárias
30
Aprovação do cliente
31
Retrospectiva
31
Será que Entendi?
Imagine que você trabalha em uma empresa que utiliza o XP como modelo de desenvolvimento e você viu que um determinado código pode ser melhorado. Como você deve agir: deve pedir permissão por escrito ou verbal
para alterar o código??
32
Exercícios
Metodologias Ágeis
São mais adaptativas que preditivas
São mais orientadas a pessoas que orientadas a processos
33
33
Exercícios
Explique a fase de planejamento do XP.
34
34
Exercícios
Explique a fase de planejamento do XP.
35
35
Valores do XP
1. Comunicação
2. Simplicidade
3. Feedback
4. Coragem
5. Respeito
36
Comunicação
Várias práticas do XP promovem uma maior comunicação entre os membros da equipe
A comunicação não é limitada por procedimentos formais. Usa-se o melhor meio possível, que pode ser
Uma conversa ou reunião informal
Um e-mail, um bate-papo, um telefonema
Diagramas, se necessário (pode, mas não precisa, ser UML)
O próprio código
"Estórias" elaboradas pelo usuário-final
Preferência à comunicação mais ágil
Telefonema melhor que e-mail
Presença física melhor que comunicação remota
Código auto-explicativo melhor que documentação escrita
37
Simplicidade
XP incentiva ao extremo práticas que reduzam a complexidade do sistema
A solução adotada deve ser sempre a mais simples que alcance os objetivos esperados
Use as tecnologias, design, algoritmos e técnicas mais simples que permitirão atender aos requerimentos do usuário-final
Design, processo e código podem ser simplificados a qualquer momento
Qualquer design, processo ou código criado pensando em iterações futuras deve ser descartado
38
O Usuário muitas vezes pede uma solução din^amica, real time, mas, na verdade, algo estático resolveria o problema dele
38
Feedback
Várias práticas do XP garantem um rápido feedback sobre várias etapas/partes do processo
Feedback sobre qualidade do código (testes de unidade, programação em pares, posse coletiva)
Feedback sobre estado do desenvolvimento (estórias do usuário-final, integração contínua, jogo do planejamento)
Permite maior agilidade
Erros detectados e corrigidos imediatamente
Requisitos e prazos reavaliados mais cedo
Facilita a tomada de decisões 
Permite estimativas mais precisas
Maior segurança e menos riscos para investidores
39
Coragem
Testes, integração contínua, programação em pares e outras práticas do XP aumentam a confiança do programador e ajudam-no a ter coragem para
Melhorar o design de código que está funcionando para torná-lo mais simples
Jogar fora código desnecessário
Investir tempo no desenvolvimento de testes
Mexer no design em estágio avançado do projeto
Pedir ajuda aos que sabem mais
Dizer ao cliente que um requisito não vai ser implementado no prazo prometido
Abandonar processos formais e fazer design e documentação em forma de código
40
Respeito
Respeito é um valor que dá sustentação a todos os demais
Membros de uma equipe só irão se preocupar em comunicar-se melhor, por exemplo, se se importarem uns com os outros
41
41
Papéis no XP
Cliente
É ele que escreve as estórias, avalia as novas funcionalidades entregues, dá feedback rapidamente, solicita ou aprova mudanças
42
42
Papéis no XP
Desenvolvedores
Constroem o sistema
Não tem uma hierarquia nos desenvolvedores
Não há uma equipe de testes, são os desenvolvedores que fazem os testes
43
43
Papéis no XP
Coach
Desenvolvedor experiente
Identifica as habilidades da equipe
Lembra as regras de XP
Eventualmente faz programação em pares
Seu papel diminui com o tempo
Não desenha a arquitetura
44
44
Papéis no XP
Tracker
Coleta estatísticas e as exibe
Mantém histórico do progresso
Alguns exemplos: número de estórias implementadas, número de testes, numero de classes e linhas de código
45
Práticas do XP
46
12 Práticas XP
Planejamento: evidencia o que há de emergencial para o desenvolvimento
Como é feito?
Desenvolvimento de software é um diálogo constante entre pessoal de negócio e pessoal técnico
As pessoas de negócio não podem tomar essas decisões no vácuo. Elas precisam do pessoal técnico para decidir sobre: estimativas, conseqüências técnicas, processo de desenvolvimento do produto, cronograma detalhado
Cliente propõe “user stories”(estórias) e os desenvolvedores avaliam sua dificuldade
Cada iteração irá durar de uma a três semanas
Cada release pode ter várias iterações
Cada uma delas irá implementar algumas estórias definidas para o release
47
47
12 Práticas XP
Entregas freqüentes: a entrega de pequenas implementações funcionais visa a constante aprovação do software e a incorporação rápida de mudanças por parte dos contratantes através do feedback
Cada release deve ser tão curto quanto possível, contendo os requisitos de negócio de maior valor para o cliente
O release deve fazer sentido como um todo
Não deve existir um release com metade de um requisito (o que não faz sentido)
Releases Curtos promovem o desenvolvimento iterativo e incremental
48
48
12 Práticas XP
Metáfora: são as descrições de um software sem a utilização de termos técnicos, com o intuito de guiar o desenvolvimento do software
Porquê utilizar?
A metáfora é um meio de ajudar a todos (clientes e desenvolvedores) a compreender melhor o objetivo e propósito do produto sendo criado
49
49
12 Práticas XP
Projeto simples: o programa desenvolvido pelo método XP deve ser o mais simples possível e satisfazer os requisitos atuais
50
50
12 Práticas XP
Testes: busca a validação do projeto durante todo o processo de desenvolvimento. Os programadores desenvolvem o software criando primeiramente os testes unitários
XP valoriza o desenvolvimento dirigido por testes
São automatizados, executados o tempo todo
51
51
12 Práticas XP
Programação em pares: dois desenvolvedores trabalham em um único computador. O desenvolvedor que está com o controle do teclado e do mouse implementa o código, enquanto o outro observa o trabalho, buscando encontrar erros sintáticos e semânticos e buscando uma forma de se otimizar o que está sendo implementado pela sua dupla
“Um” pelo preço de “Dois”??
Pesquisas demonstram que duplas produzem código de melhor qualidade em aproximadamente o mesmo tempo que programadores que trabalham sozinhos
52
52
12 Práticas XP
Refatoração: quando se percebe que é possível simplificar o módulo atual sem perder nenhuma funcionalidade
Propriedade coletiva: o código do projeto pertence a todos os membros da equipe. Isto significa que qualquer pessoa que percebe que pode fazer alguma melhoria, pode fazê-lo, desde que valide as mudanças. A propriedade coletiva é uma segurança ao projeto caso algum dos membros deixe a equipe
Módulos não são “propriedade” de nenhum desenvolvedor
Todo desenvolvedor da equipe tem o direito de checar ummódulo e modificá-lo
O código é propriedade da equipe 
53
53
12 Práticas XP
Integração contínua: é a prática de interagir e construir o sistema de software várias vezes por dia, mantendo os programadores em sintonia, além de possibilitar processos rápidos
Integrar apenas um conjunto de modificações de cada vez é uma prática que funciona bem, porque fica óbvio quem deve fazer as correções quando os testes falham, a última equipe que integrou código novo ao software
Código é integrado e testado depois de algumas horas(no máximo no final de cada dia)
No final de um episódio de desenvolvimento, o código é integrado e todos os casos de teste devem rodar a 100%
Essa técnica já existe há tempos e foi conhecida como “daily builds and smoke tests”, largamente utilizada na Microsoft
54
54
12 Práticas XP
40 horas de trabalho semanal: caso seja necessário trabalhar mais de 40 horas pela segunda semana consecutiva, existe um problema sério no projeto que deve ser resolvido com melhor planejamento ou outra atitude, não com horas extras
Cliente presente: a participação do cliente durante todo o desenvolvimento do projeto é essencial. O cliente deve estar sempre disponível para elucidar questões acerca de requisitos, evitando atrasos e até mesmo construções erradas. Uma idéia interessante é manter o cliente como parte integrante da equipe de desenvolvimento
55
55
12 Práticas XP
Código padrão: padronização na arquitetura do código, para que este possa ser compartilhado entre todos os programadores
Cada equipe deve possuir padrões de codificação que serão usados por todos
Idealmente, serão decididos por consenso
Cada
um dos padrões deve ter o claro objetivo de ajudar a melhorar a comunicação da equipe
Todos devem concordar em utilizá-los
56
56
Exercícios
( ) Agilidade não é nada mais do que a capacidade de uma equipe de projeto tem para responder rapidamente às mudanças.
( ) Em processos de software ágil a maior prioridade é satisfazer o cliente através da entrega do software o mais rápido possível e continuada.
( ) Não é possível construir software que atenda às necessidades dos clientes hoje e apresente as características de qualidade que lhe permita ser estendido depois.
( ) Todos os modelos de processos ágeis estão em conformidade com um maior ou menor grau aos princípios estabelecidos no "Manifesto para Desenvolvimento Ágil de Software"
57
Exercícios
( F ) Agilidade não é nada mais do que a capacidade de uma equipe de projeto tem para responder rapidamente às mudanças.
( V ) Em processos de software ágil a maior prioridade é satisfazer o cliente através da entrega do software o mais rápido possível e continuada.
( F ) Não é possível construir software que atenda às necessidades dos clientes hoje e apresente as características de qualidade que lhe permita ser estendido depois.
( V ) Todos os modelos de processos ágeis estão em conformidade com um maior ou menor grau aos princípios estabelecidos no "Manifesto para Desenvolvimento Ágil de Software"
58
Exercícios
Which of the following is not necessary to apply agility to a software process?					
	A)	Eliminate the use of project planning and testing	
	B)	Only essential work products are produced	
	C)	Process allows team to streamline tasks	
	D)	Uses incremental product delivery strategy	
59
streamline = alterar para simplificar 
59
Exercícios
Which of the following is not necessary to apply agility to a software process?					
	A)	Eliminate the use of project planning and testing	
	B)	Only essential work products are produced	
	C)	Process allows team to streamline tasks	
	D)	Uses incremental product delivery strategy	
60
Exercícios
How do you create agile processes to manage unpredictability?					
	A)	Requirements gathering must be conducted very carefully	
	B)	Risk analysis must be conducted before planning takes place	
	C)	Software increments must be delivered in short time periods	
	D)	Software processes must adapt to changes incrementally	
	E)	both c and d	
61
gathering = Recolhimento de requisitos, acumulação
61
Exercícios
How do you create agile processes to manage unpredictability?					
	A)	Requirements gathering must be conducted very carefully	
	B)	Risk analysis must be conducted before planning takes place	
	C)	Software increments must be delivered in short time periods	
	D)	Software processes must adapt to changes incrementally	
	E)	both c and d	
62
Exercícios
Which of the following traits need to exist among the members of an agile software team?					
	A)	Competence	
	B)	Decision-making ability	
	C)	Mutual trust and respect	
	D)	All of the above	
63
Exercícios
Which of the following traits need to exist among the members of an agile software team?					
	A)	Competence	
	B)	Decision-making ability	
	C)	Mutual trust and respect	
	D)	All of the above	
64
Exercícios
What are the four framework activities found in the Extreme Programming (XP) process model?					
	A)	analysis, design, coding, testing	
	B)	planning, analysis, design, coding	
	C)	planning, analysis, coding, testing	
	D)	planning, design, coding, testing	
65
Exercícios
What are the four framework activities found in the Extreme Programming (XP) process model?					
	A)	analysis, design, coding, testing	
	B)	planning, analysis, design, coding	
	C)	planning, analysis, coding, testing	
	D)	planning, design, coding, testing	
66
Exercícios
Segundo o XP, o que significa o termo “solução de ponta”?
O que é refatoração?
Escreva uma estória de usuário XP que descreva a características “Favoritos”, que está disponível na maioria dos navegadores Web.
67
67
SCRUM
68
http://www.slideshare.net/serge_rehem/scrum-em-15-minutos
69
Scrum
Scrum é um processo para construir software incrementalmente em ambientes complexos, onde os requisitos não são claros ou mudam com muita freqüência (considera antecipadamente a existência do caos)
A metodologia é baseada em princípios semelhantes aos de XP: equipes pequenas, requisitos pouco estáveis ou desconhecidos, e iterações curtas para promover visibilidade para o desenvolvimento
70
70
Scrum
71
Scrum
Durante o sprint, os itens em pendência a que as unidades de trabalho do sprint se destinam são congelados (isto é, não são introduzidas as modificações durante o sprint)
Backlog (lista de pendências): uma lista priorizada de requisitos ou características do projeto que fornecem valor de negócio para o cliente. Itens podem ser adicionados à pendência a qualquer momento
Demo: entrega o incremento de software ao cliente de modo que a funcionalidade implementada possa ser demonstrada e avaliada pelo cliente
72
72
Papéis
73
Estórias de Usuário
User Stories
–Como um <ator>, eu gostaria de <ação>, para <motivo>
Atributos
Tamanho (pontos, dias ideais),Valor de negócio, Condições de satisfação
74
Exemplos de User Stories
75
Detalhes e condições de satisfação
76
Story Points
O tamanho de uma User Story
Influenciado por
O quanto difícil é a Story
Qual o tamanho do trabalho
Série de Fibonacci 
1,2,3,5,8,13,21,…
Comparação relativa
77
77
Story Points
Usualmente, para cada story do backlog deverá ser atribuído um valor da série aproximada de Fibonacci (1,2,3,5,8,13,21,…), por exemplo 
Essa atribuição deve ser feita pelo time e não por uma única pessoa 
Para começar a pontuar as stories de um product backlog, pega-se a story que o time julga ser a de menor esforço e atribui pontuação 2
As demais stories deverão seguir uma pontuação relativa a essa primeira
78
78
Story Points
Vantagens
Foco em estimativa relativa
Performances individuais diferentes
Um problema inerente da abordagem homem/dia é que essa medida depende do desempenho de quem está executando
Os indivíduos diferem em know-how, experiência, competência, etc
Foco em tamanho/esforço e não em duração
79
79
Story Points
Desvantagens
Medida não universal
Medir em pontos é uma coisa muito particular e subjetiva, o seu significado acaba fazendo sentido apenas para um time em um determinado projeto
Isso pode atrapalhar ao se juntar grupos diferentes em um mesmo projeto com um product backlog em comum
80
80
Story Points
Desvantagens
Desconforto inicial de alguns
Pode ser difícil convencer algumas pessoas
Especialmente porque todos sabem que ao final os pontos vão se transformar em estimativas de tempo
Após algumas poucas sprints, cria-se uma noção intuitiva de pontos
Ao ser confrontado com uma nova story, os indivíduos do time já começam a pensar se ela custa oito ou cinco pontos e não se vai durar x ou y dias
81
81
Tempo Ideal
Quanto tempo algo iria demorar se
Você trabalhasse apenas nisso
Sem interrupção de tempo
Tudo que você precisa estará disponível
O Tempo ideal de uma partida de futebol Americano seria de 60 minutos
Quatro tempos de 15 minutos
O tempo total porém leva mais de 3 horas
82
Planning Poker
Método ágil para estimativas, descrito inicialmente por James Grenning em 2002 e depois popularizado por Mike Cohn no seu livro Agile Estimating and Planning
Para "jogar" o Planning Poker precisamos apenas de uma lista de backlog e um baralho
O baralho, geralmente composto por cartas que possuem uma sequência Fibonacci ou uma sequência similar (0, ½, 1, 2, 3, 5, 8, 13, 21, 34, 50, 80 ,100, ?), uma carta opcional com um sinal de interrogação,..
Por que não utilizar a sequência de números naturais?
Para que serve o zero e o ponto de interrogação?
83
83
Planning Poker
O jogo começa após as explicações feitas pelo Product Owner, onde todos os membros discutem para chegar a um entendimento do problema
É importante frizar que os membros do time devem estimar todo o trabalho relacionado ao item do backlog, e não apenas a sua parte especifica
Por exemplo, o testador não deve só se preocupar com os testes
84
84
Planning Poker
Cada membro da equipe, pega uma carta que acha que corresponde com os Story points e depois que todos escolheram suas cartas, tem inicio a rodada
85
Membro do time
Rodada 1
Rodada 2
Maria
80
50
Carlos
21
34
João
34
50
Rafael
50
34
Rita
50
50
85
Velocidade
Para fazer um release plan, precisamos saber ou ter uma idéia da Velocidade
3 formas de termos a Velocidade
Média das Velocidades anteriores
Faça 1 ou 2 Sprints e veja o que temos
Faça uma previsão
86
Sprint Backlog
87
Parei a aula aqui
87
Sprint Burndown
Permite medir o progresso
Mostra a quantidade de trabalho restante no Sprint a cada dia
Atualizado a cada dia pelos membros do time
88
88
Sprint Planning
Reunião de planejamento da sprint
PO explica a meta e resume o product backlog
Time faz as estimativas
Time seleciona as estórias para a sprint
Deve dar ao time informações suficientes para que eles possam trabalhar na sprint
O Product Owner já priorizou as estórias, ele ainda precisa participar desta reunião?
89
Escopo
Estimativa
Importância
89
Sprint Planning
Como o time decide quais estórias incluir na sprint?
Como o Product Owner pode afetar em quais estórias devem ser feitas na sprint?
90
Daily Scrum Meeting
91
Sprint Review
A equipe apresenta os resultados obtidos durante o Sprint
Normalmente assume a forma de uma demonstração de novas funcionalidades
Informal
O time inteiro participa
92
92
93
Desenvolvimento Adaptativo de Software (DAS)
94
94
Desenvolvimento Adaptativo de Software (DAS)
Iterativo e incremental
Voltado para a construção de sistemas e softwares complexos
Concentra-se na colaboração humana e na auto-organização da equipe
Cliente sempre presente
Desenvolvimento de aplicações em conjunto (Joint Application development – JAD)
95
95
Desenvolvimento Adaptativo de Software (DAS)
O ASD possui ciclos de 3 fases
96
96
Desenvolvimento Adaptativo de Software (DAS)
Especular (Speculate)
Fixa prazos e objetivos
Define um plano baseado em componentes
Colaborar (Collaborate)
Construção concorrente de vários componentes
Pessoal trabalhando colaborativamente multiplica os resultados
Aprender (Learn)
Repetitivas revisões de qualidade e foco na demostranção das funcionalidades desenvolvidas (Learning loop)
Presença do cliente e especialistas do domínio
Os ciclos duram de 4 a 8 semanas
97
97
Especulação
O projeto é iniciado
Planejamento do ciclo adaptativo é conduzido
Declaração da missão feita pelo cliente
Restrições do projeto
Requisitos básicos
Definição de ciclos de versão (incrementos)
98
Colaboração
Não é somente pela Comunicação
Não é somente pelo Trabalho em Equipe
Não é uma rejeição ao indidualismo
É acima de tudo uma questão de confiança
Precisam confiar umas nas outras
Criticar sem animosidade
Ajudar sem ressentimentos
Trabalhar tão duro ou mais duro do que costumam
Ter um conjunto de habilidade para contribuir com trabalho em mãos
Comunicar problemas e/ou preocupações de um modo que conduza a ação efetiva
99
99
Aprendizado
As equipes DAS aprendem de 3 modos
Foco no grupos
Usuários fornecem feedback sobre os incrementos, indicando se o produto está ou não satisfazendo a necessidade do negócio
Revisões técnicas formais
Os membros da equipe DAS revisam os componentes de SW que são desenvolvidos, aperfeiçoando a qualidade e aprendendo à medida que prosseguem 
Pós conclusão
A equipe cuida do seu próprio desempenho e processo
100
100
Método de Desenvolvimento Dinâmico de Sistemas (DSDM)
101
101
Método de Desenvolvimento Dinâmico de Sistemas (DSDM)
Fornece um arcabouço para construir e manter sistemas que satisfazem às restrições de prazo apertadas por meio do uso de prototipagem incremental em um ambiente controlado de projeto
Sugere uma filosofia uma versão modificada do princípio de Pareto
Princípio de Pareto (Vilfredo Pareto): Ao estudar a distribuição de renda da Itália, constatou que 80% da riqueza dos italianos pertenciam a 20% da população
DSDM: 80% de uma aplicação pode ser entregue em 20% do tempo
102
102
Método de Desenvolvimento Dinâmico de Sistemas (DSDM)
O ciclo de vida DSDM define três ciclos iterativos diferentes, precedidos por duas atividades adicionais de ciclo de vida
Estudo de viabilidade: estabelece requisitos básicos e restrições, e viabilidade do uso do DSDM ao projeto
Estudo do negócio: estabelece requisitos funcional e de informação
Iteração do modelo funcional: protótipo evolutivo inicial para prover rápido feedback do cliente
Iteração de projeto e construção: revisita e refina os protótipos
Implementação: coloca o “protótipo operacionalizado” no ambiente operacional
103
103
Método de Desenvolvimento Dinâmico de Sistemas (DSDM)
104
104
Desenvolvimento Guiado por Características
105
105
Desenvolvimento Guiado por Características
Feature Driven Development (FDD)
Processo ágil e adaptativo que pode ser aplicado a projetos de software de tamanho moderado e grande
No contexto do FDD, uma característica é uma função valorizada pelo cliente que pode ser im­plementada em duas semanas ou menos 
As características podem ser organizadas em um agrupamento hierárquico relacionado ao negócio
Planejamento de projeto, cronogramação e monitoração são guiados pela hierarquia de características em vez de por um conjunto de tarefas de engenharia de software arbitrariamente adotado
106
106
Desenvolvimento Guiado por Características 
Característica
<ação> o <resultado> <por/para/de/a> um <objeto>
Adiciona o produto a um carrinho de compras
Exibe as especificações técnicas de um produto
Armazena as informações de remessa para um cliente
Conjunto de características
<verbo no gerúndio (ação)> um <objeto>
Fazendo uma venda de produto
107
107
Desenvolvimento Guiado por Características
Define cinco atividades de arcabouço "colaborativas“ (em FDD elas são denominadas "processos")
108
108
Modelagem Ágil
109
109
Modelagem Ágil
Scott Ambler
A Modelagem Ágil (AM) é uma metodologia baseada na prática, para modelagem e documentação efetiva de sistemas baseados em software
Colocado simplesmente, Modelagem Ágil é uma coleção de valores, princípios e práticas de modelagem de software que podem ser aplicados a um projeto de desenvolvimento de software de modo efetivo e leve
Os modelos ágeis são mais efetivos do que os modelos tradicionais, porque eles são apenas suficientemente bons, eles não precisam ser perfeitos
110
110
Modelagem Ágil
Princípios
Modelar com uma finalidade (meta)
Usar modelos múltiplos (usar um subconjunto daqueles que agregam valor)
Viajar leve (guarde apenas os modelos essenciais, descarte os não mais necessários)
O conteúdo é mais importante que a representação (o modelo não precisa estar sintaticamente perfeito)
Conhecer os modelos e as ferramentas que você usa para criá-los
Adaptar localmente
111
111
Modelagem Ágil
http://www.agilemodeling.com/
112
Exercícios
What are the three framework activities for the Adaptive Software Development (ASD) process model?					
	A)	analysis, design, coding	
	B)	feasibility study, functional model iteration, implementation	
	C)	requirements gathering, adaptive cycle planning, iterative development	
	D)	speculation, collaboration, learning	
113
Exercícios
What are the three framework activities for the Adaptive Software Development (ASD) process model?					
	A)	analysis, design, coding	
	B)	feasibility study, functional model iteration, implementation	
	C)	requirements gathering, adaptive cycle planning, iterative development	
	D)	speculation, collaboration, learning	
114
Exercícios
The Dynamic Systems Development Method (DSDM) suggests a philosophy that is based on the Pareto principle (80% of the application can be delivered in 20% of the time required to build the complete application).					
	A)	True	
	B)	False	
115
Exercícios
The Dynamic Systems Development Method (DSDM) suggests a philosophy that is based on the Pareto principle (80% of the application can be delivered in 20% of the time required to build the complete application).					
	A)	True	
	B)	False	
116
Exercícios
In Feature Driven Development (FDD) a "feature" is a client-valued function that
can be delivered in two months or less.					
	A)	True	
	B)	False	
117
Exercícios
In Feature Driven Development (FDD) a "feature" is a client-valued function that can be delivered in two months or less.					
	A)	True	
	B)	False	
118
Exercícios
Agile Modeling (AM) provides guidance to practitioner during which of these software tasks?					
	A)	Analysis	
	B)	Design	
	C)	Coding	
	D)	Testing	
119
	E)	both a and b	
119
Exercícios
Agile Modeling (AM) provides guidance to practitioner during which of these software tasks?					
	A)	Analysis	
	B)	Design	
	C)	Coding	
	D)	Testing	
	E)	both a and b	
120
120
Exercícios
Which is not one of the key questions that is answered by each team member at each daily Scrum meeting?					
	A)	What did you do since the last meeting?	
	B)	What obstacles are you encountering?	
	C)	What is the cause of the problems you are encountering?	
	D)	What do you plan to accomplish at the next team meeting?	
121
Exercícios
Which is not one of the key questions that is answered by each team member at each daily Scrum meeting?					
	A)	What did you do since the last meeting?	
	B)	What obstacles are you encountering?	
	C)	What is the cause of the problems you are encountering?	
	D)	What do you plan to accomplish at the next team meeting?	
122
Conclusões
A escolha da metodologia mais adequada para o desenvolvimento de software em uma organização, levando em consideração os inúmeros fatores envolvidos, não é uma tarefa trivial
Por outro lado, é um fator preponderante para o sucesso da organização!!
Embora um bom processo não possa garantir o sucesso de um projeto, certamente a adoção de um processo inadequado pode comprometê-lo
123
Próxima Aula...
124
“O que ouço, esqueço. O que vejo, lembro. O que faço, entendo” 
(Provérbio Chinês)
125
Próxima Aula...
Dinâmica sobre SCRUM
Definir equipes
Scrum Master
Product Owner
Team
126
Equipes
126

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais