Buscar

EngSW Métodos Ágeis

Prévia do material em texto

1
Teoria de Engenharia de 
Software
Unidade 3
Métodos Ágeis
Prof. Rafael Targino
rtargino@unicarioca.edu.br
2
Casos Comuns em Projetos
Cliente não presente 
e não explica direito 
suas necessidades
Equipe culpa o 
cliente por não 
conseguir entregar
Patrocinador do 
projeto exige que o 
projeto entre em 
produção
2
Modelo em Cascata (ou Sequencial)
• O modelo em cascata move-se para a próxima fase somente 
quando a fase anterior está completa 
• Não há pulo para frente, para trás ou sobreposição entre as 
fases.
Assume que o 
Planejamento do 
Projeto pode ser feito 
para o projeto inteiro 
no início do projeto!
4
Triângulo de Gerenciamento de Projetos
Método em Cascata
Escopo
Custo Prazo
Orientado 
ao Plano
3
Planejamento x Realidade
Mas Mudanças no Projeto Sempre 
Ocorrem
• Clientes tem baixa percepção do problema no 
início do projeto
• Nossa capacidade de planejar mais do que 2 ou 3 
meses do projeto é muito limitada
– Frequentes estouros de prazos e orçamentos...
• O negócio muda muito rápido
• A equipe não sabe a melhor maneira de executar o 
projeto no início
Engenharia de Software
Principalmente se considerarmos ambientes mais 
dinâmicos como desenvolvimento de software, 
publicidade, jornalismo, entreterimento entre outros...
4
7
Manifesto Ágil
• No início dos anos 2000, um grupo de 17 
profissionais veteranos da ares de 
desenvolvimento de software decidiram se 
reunir em uma estação de esqui nos EUA, 
para discutir novas formas de melhorar o 
desempenho de seus projetos
8
Manifesto Ágil
Indivíduos e Iterações entre eles mais do que 
processos e ferramentas 
(Pessoas)
Software em funcionamento mais do que 
documentação abrangente 
(Valor)
Colaboração com o cliente mais do que negociação 
de contratos 
(Confiança)
Responder a mudança mais que seguir um Plano
(Complexidade)
5
9
Concepção do Ágil
Á g i l ≠ R á p i d o
Á g i l = A d a p t a t i v o
10
Experimentar
Metáfora: Velejando Contra o Vento...
6
11
• Quando o cliente aprende com o produto 
que está sendo entregue e reavalia as suas 
necessidades, gerando feedback para a 
equipe do projeto.
• É o mecanismo fundamental que permite 
que o cliente conduza o desenvolvimento do 
projeto diariamente.
• Garante que a equipe direcione as 
suas atenções para aquilo 
que irá gerar mais valor.
A Importância do Feedback
12
Abordagem Iterativa
Ciclos Iterativos e Incrementais
Versão 1
Versão 2
Versão 3
tempo
abrangência 
Feedback
Feedback
Feedback
Aprendizado
7
13
Visibilidade do Progresso do Projeto
• Os clientes e demais partes interessadas vem o 
progresso do projeto – incrementos do produto 
– a cada final de iteração, ou seja, em 
semanas.
Engenharia de Software
• Estabelece um senso de 
progresso do projeto
• Constrói a confiança entre o 
cliente e a equipe de 
desenvolvimento
Redução do Desperdício
• Produzir apenas o que é necessário e 
suficiente
– Produzir apenas o que os usuários irão utilizar
– Planejar apenas com o nível de detalhe possível
– Utilizar apenas os artefatos necessários e suficientes
Engenharia de Software
8
15
Iterações e Releases
• Os métodos Ágeis estão centrados nas 
utilizações de Iterações e Releases
Engenharia de Software
16
Exemplo de uma Iteração de 1 
Semana
Engenharia de Software
Definição com o cliente
Desenvolvimento
Teste
Avaliação pelo cliente
Validação parcial com o cliente
9
Princípios Ágeis
1. Nossa maior prioridade é satisfazer o cliente, através da entrega adiantada e 
contínua de software de valor.
2. 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.
3. Entregar software funcionando com frequência, na escala de semanas até meses, 
com preferência aos períodos mais curtos.
4. Pessoas relacionadas à negócios e desenvolvedores devem trabalhar em conjunto 
e diariamente, durante todo o curso do projeto.
5. Construir projetos ao redor de indivíduos motivados. Dando a eles o ambiente e 
suporte necessário, e confiar que farão seu trabalho.
6. 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.
7. Software funcional é a medida primária de progresso.
8. Processos ágeis promovem um ambiente sustentável. Os patrocinadores, 
desenvolvedores e usuários, devem ser capazes de manter indefinidamente, 
passos constantes.
9. Contínua atenção à excelência técnica e bom design, aumenta a agilidade.
10.Simplicidade: a arte de maximizar a quantidade de trabalho que não precisou ser 
feito.
11.As melhores arquiteturas, requisitos e designs emergem de times auto 
organizáveis.
12.Em intervalos regulares, o time reflete em como ficar mais efetivo, então, se 
ajustam e otimizam seu comportamento de acordo.
Exercício Princípios Ágeis
Para cada situação abaixo, indique se a mesma está 
de acordo ou não aos Princípios Ágeis identificados na 
lista do slide anterior (informe o número do Princípio 
Ágil):
1. Provocar as pessoas para trabalharem horas extras 
pois o produto está atrasado
2. Equipes de trabalhos distribuídas geograficamente 
e membros de equipes trabalhando remotamente
3. A equipe decide aumentar a duração da iteração de 
2 para 4 semanas porque não estava conseguindo 
constantemente produzir os requisitos acordados.
4. O negócio precisa de uma nova funcionalidade que 
não estava acordada inicialmente no planejamento.
10
Mas será que quebrar o projeto em entregas 
parciais é o suficiente?
Como fica o escopo do seu projeto?
11
Produto Mínimo Viável (MVP)
Importância de saber o momento de Parar
Não dá para ter certeza que a bicicleta elétrica atende ao negócio até você desenvolvê-la...
12
Triângulo de Gerenciamento de Projetos
Metodologias Ágeis
Prazo
Orientado 
ao Valor
Escopo
Custo
FixoFixo
Deixando o Escopo Fluir (Escopo Aberto)
Fluidez do Backlog do Projeto
13
SCRUM
Planejamento por Iteração
Aprendizado a partir do que 
está sendo entregue
Interações inter e intra equipes 
rápidas e constantes
Resumo Métodos Ágeis
14
Usar métodos tradicionais ou ágeis?
• Ágil
• requisitos não conhecidos
• inovação
• usuários irão aprender 
durante o 
desenvolvimento
• documentação apenas do 
que é necessário
• planejamento apenas da 
próxima iteração
• Sistemas menores
• Tradicional
• requisitos estáveis
• migrar sistemas 
• usuários seguros do que 
querem
• documentação 
abrangente
• planejamento de um 
conjunto de iterações
• Sistemas muito grandes
É p r e c i s o o l h a r a n a t u r e z a d o p r o d u t o !
Resumo dos Métodos
Método Planejamento Entrega
Método
Sequencial
Planejamento do 
Todo
Tudo no final do 
projeto
Método Iterativo e 
Incremental
Planejamento do 
Todo
Parciais ao longo 
do Projeto
Métodos Ágeis
(também é 
iterativo e 
incremental)
Planejamento 
próximo de alguma 
coisa do todo, mas 
sem garantia do 
que será feito
Parciais ao longo 
do Projeto

Outros materiais

Materiais relacionados

Perguntas relacionadas

Perguntas Recentes