Metodologias Ágeis de Desenvolvimento de Software
-
Upload
emerson-henrique -
Category
Technology
-
view
2.394 -
download
0
description
Transcript of Metodologias Ágeis de Desenvolvimento de Software
![Page 1: Metodologias Ágeis de Desenvolvimento de Software](https://reader035.fdocumentos.com/reader035/viewer/2022081414/548ba329b47959f86e8b460e/html5/thumbnails/1.jpg)
METODOLOGIAS ÁGEIS DE
DESENVOLVIMENTO DE SOFTWARE
Por Emerson Henrique, Luciano Almeida e Márcio Lins
![Page 2: Metodologias Ágeis de Desenvolvimento de Software](https://reader035.fdocumentos.com/reader035/viewer/2022081414/548ba329b47959f86e8b460e/html5/thumbnails/2.jpg)
10/04/2023 Metodologias Ágeis de Desenvolvimento de Software
2
Quem somos? Emerson Henrique
Aluno concluinte do curso de Ciência da Computação Analista Desenvolvedor da Ativasystems
Luciano Almeida Graduado em Gestão de Sistemas de Informação Possui MBA em Novas Tecnologias Cursa Especialização em Gerenciamento de Projetos Professor, Consultor, Agilista e Owner do SCRUM Paraíba
Márcio Lins Analista Programador da Construtora Alliance Trabalha com AdvPL (Protheus) E cursa Sistemas para Internet
![Page 3: Metodologias Ágeis de Desenvolvimento de Software](https://reader035.fdocumentos.com/reader035/viewer/2022081414/548ba329b47959f86e8b460e/html5/thumbnails/3.jpg)
Sumário
Introdução Caos AgileManifesto.org Metodologias Ágeis XP SCRUM SCRUM + XP Conclusão
10/04/2023Metodologias Ágeis de Desenvolvimento de
Software 3
![Page 4: Metodologias Ágeis de Desenvolvimento de Software](https://reader035.fdocumentos.com/reader035/viewer/2022081414/548ba329b47959f86e8b460e/html5/thumbnails/4.jpg)
Introdução Projetos de
Construção Civil São geralmente
construídos como planejados
Clientes acompanham a evolução
Se algo dá errado, faz-se um relatório
Projetos de Software Precisam suportar
mudanças nas regras de negócio
Clientes só vêem algo funcionando perto do fim ou em prazos longos
Se algo dá errado, se esquece ou mascara o erro
10/04/2023Metodologias Ágeis de Desenvolvimento de
Software 4
![Page 5: Metodologias Ágeis de Desenvolvimento de Software](https://reader035.fdocumentos.com/reader035/viewer/2022081414/548ba329b47959f86e8b460e/html5/thumbnails/5.jpg)
Introdução Algumas empresas adotam metodologias de
desenvolvimento e práticas extremamente formais e controladoras, porém ainda não conseguem obter qualidade.
Por quê? Pouca preocupação com as pessoas e a interação entre elas Pouca comunicação com o cliente Custos muito altos Excesso de formalismo
Qual a consequência disso? Alta rotatividade No fim o software não serve mais Projeto cancelado Prazos estourados
10/04/2023Metodologias Ágeis de Desenvolvimento de
Software 5
![Page 6: Metodologias Ágeis de Desenvolvimento de Software](https://reader035.fdocumentos.com/reader035/viewer/2022081414/548ba329b47959f86e8b460e/html5/thumbnails/6.jpg)
10/04/2023 Metodologias Ágeis de Desenvolvimento de Software
6
Introdução
Além disso muitas empresas vivem em uma situação de total descontrole e falta de qualidade, e não são nada ágeis, vivem o ...
![Page 7: Metodologias Ágeis de Desenvolvimento de Software](https://reader035.fdocumentos.com/reader035/viewer/2022081414/548ba329b47959f86e8b460e/html5/thumbnails/7.jpg)
... CAOS
10/04/2023Metodologias Ágeis de Desenvolvimento de
Software 7
![Page 8: Metodologias Ágeis de Desenvolvimento de Software](https://reader035.fdocumentos.com/reader035/viewer/2022081414/548ba329b47959f86e8b460e/html5/thumbnails/8.jpg)
CAOS
Situação perturbadora, desmotivante; Utilizando processo definido ou não; Altos riscos nos projetos; Custos muito altos; Projetos sem boa qualidade interna e
externa.
Mas esse problema não é novo, em 2001, 17 caras lançaram o ...
10/04/2023Metodologias Ágeis de Desenvolvimento de
Software 8
![Page 9: Metodologias Ágeis de Desenvolvimento de Software](https://reader035.fdocumentos.com/reader035/viewer/2022081414/548ba329b47959f86e8b460e/html5/thumbnails/9.jpg)
... Agilemanifesto.org O que é isso?
Um manifesto que criticava algumas mitos/práticas da engenharia de software e da gerência de projetos adotadas por abordagens tradicionalistas
Foi assinado por 17 pessoas envolvidas com desenvolvimento de software, dentre eles consultores e programadores experientes
10/04/2023Metodologias Ágeis de Desenvolvimento de
Software 9
Kent BeckMike BeedleArie van BennekumAlistair CockburnWard CunninghamMartin Fowler
Robert C. MartinSteve MellorKen SchwaberJeff SutherlandDave Thomas
James GrenningJim HighsmithAndrew HuntRon JeffriesJon KernBrian Marick
![Page 10: Metodologias Ágeis de Desenvolvimento de Software](https://reader035.fdocumentos.com/reader035/viewer/2022081414/548ba329b47959f86e8b460e/html5/thumbnails/10.jpg)
... Agilemanifesto.org Indivíduos e interação entre eles 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
10/04/2023Metodologias Ágeis de Desenvolvimento de
Software 10
![Page 11: Metodologias Ágeis de Desenvolvimento de Software](https://reader035.fdocumentos.com/reader035/viewer/2022081414/548ba329b47959f86e8b460e/html5/thumbnails/11.jpg)
Agilemanifesto.org 12 princípios por traz do Manifesto Ágil
Satisfazer o cliente As mudanças são bem vindas Entrega periódica de funcionalidade Todos juntos Indivíduos Motivados Conversas face a face Medida primária é o software trabalhado Manter um ritmo constante sempre Atenção contínua, excelência técnica e bom projeto Simplicidade Equipes auto-organizáveis ou auto-gerenciáveis Reflexão de melhoria regularmente
10/04/2023Metodologias Ágeis de Desenvolvimento de
Software 11
![Page 12: Metodologias Ágeis de Desenvolvimento de Software](https://reader035.fdocumentos.com/reader035/viewer/2022081414/548ba329b47959f86e8b460e/html5/thumbnails/12.jpg)
Metodologias
XP – eXtreme Programming SCRUM LEAN CRYSTAL FDD ...
10/04/2023Metodologias Ágeis de Desenvolvimento de
Software 12
![Page 13: Metodologias Ágeis de Desenvolvimento de Software](https://reader035.fdocumentos.com/reader035/viewer/2022081414/548ba329b47959f86e8b460e/html5/thumbnails/13.jpg)
XP – EXtreme Programming Começou a engatinhar 1987 e a se estruturar
em 1996 com o projeto C3 da Chrysler Criado pro Kent Beck, que utilizou pela
primeira vez em conjunto as práticas que formam a estrutura do Extreme Programming nesse projeto da Chrysler
“Jeito leve, eficiente, de baixo risco, flexível, previsível, científico e divertido de desenvolver software” – Kent Beck
10/04/2023Metodologias Ágeis de Desenvolvimento de
Software 13
![Page 14: Metodologias Ágeis de Desenvolvimento de Software](https://reader035.fdocumentos.com/reader035/viewer/2022081414/548ba329b47959f86e8b460e/html5/thumbnails/14.jpg)
XP – EXtreme Programming Valores:
ComunicaçãoSimplicidadeFeedbackCoragem
Abordagem Incremental
10/04/2023Metodologias Ágeis de Desenvolvimento de
Software 14
![Page 15: Metodologias Ágeis de Desenvolvimento de Software](https://reader035.fdocumentos.com/reader035/viewer/2022081414/548ba329b47959f86e8b460e/html5/thumbnails/15.jpg)
XP – EXtreme Programming12 Práticas
Planejamento Entregas
Frequêntes Metáfora Projeto Simples Testes Programação em
pares
10/04/2023Metodologias Ágeis de Desenvolvimento de
Software 15
• Refatorar• Propriedade Coletiva• Integração Contínua• 40 horas semanais
de trabalho• Cliente presente• Padronização do
Código
![Page 16: Metodologias Ágeis de Desenvolvimento de Software](https://reader035.fdocumentos.com/reader035/viewer/2022081414/548ba329b47959f86e8b460e/html5/thumbnails/16.jpg)
XP – EXtreme ProgrammingJogo de Planejamento
Por quê?Gasta-se tempo fazendo coisas inúteis que
servem para aumentar o escopo, o tempo e o custo do projeto
Como?Triando o que é essencial, importante e
desejávelAssumindo a regra “80-20”
○ Entregando 80% dos benefícios com apenas 20% dos requisitos
10/04/2023Metodologias Ágeis de Desenvolvimento de
Software 16
![Page 17: Metodologias Ágeis de Desenvolvimento de Software](https://reader035.fdocumentos.com/reader035/viewer/2022081414/548ba329b47959f86e8b460e/html5/thumbnails/17.jpg)
XP – EXtreme ProgrammingJogo de Planejamento
Como?Definição de históriasValor de negócio das históriasDefinição de releasesEstimativa com base nas experiências
anterioresObservação de riscosMedições de progresso
10/04/2023Metodologias Ágeis de Desenvolvimento de
Software 17
![Page 18: Metodologias Ágeis de Desenvolvimento de Software](https://reader035.fdocumentos.com/reader035/viewer/2022081414/548ba329b47959f86e8b460e/html5/thumbnails/18.jpg)
XP – EXtreme ProgrammingEntregas Frequêntes
Consiste em colocar o sistema em produção com frequência, em prazos curtos, normalmente de dois ou três meses.
Objetivos:Feedbacks rápidos do cliente e para o clienteAceitação de mudanças rápidas e sem
burocracia
10/04/2023Metodologias Ágeis de Desenvolvimento de
Software 18
![Page 19: Metodologias Ágeis de Desenvolvimento de Software](https://reader035.fdocumentos.com/reader035/viewer/2022081414/548ba329b47959f86e8b460e/html5/thumbnails/19.jpg)
XP – EXtreme ProgrammingMetáfora
Utilizam as metáforas para inserir a estrutura conceitual do negócio
Objetivos:Facilidade de entendimento e compreensãoEnvolvidos compreendem o que se quer,
mesmo não dominando a linguagem do negócio
10/04/2023Metodologias Ágeis de Desenvolvimento de
Software 19
![Page 20: Metodologias Ágeis de Desenvolvimento de Software](https://reader035.fdocumentos.com/reader035/viewer/2022081414/548ba329b47959f86e8b460e/html5/thumbnails/20.jpg)
XP – EXtreme ProgrammingProjeto Simples
Projete um software do jeito que o usuário espera:Primeiro que funcioneE funcione corretamenteQue seja fácil de utilizar (modelo mental
coerente)E que possa evoluir com o tempo
10/04/2023Metodologias Ágeis de Desenvolvimento de
Software 20
![Page 21: Metodologias Ágeis de Desenvolvimento de Software](https://reader035.fdocumentos.com/reader035/viewer/2022081414/548ba329b47959f86e8b460e/html5/thumbnails/21.jpg)
XP – EXtreme ProgrammingDesenvolvimento Orientado a Testes
Partindo do pressuposto que achar as causas do bug é mais difícil e demorado que corrigir
Então vamos evitar o problema Evitar problema é mais inteligente que resolver TDD (Test Driven Development) consiste em
escrever um mecanismo de teste automatizado antes de codificar cada história e cada método do sistema (BECK, 2000)
10/04/2023Metodologias Ágeis de Desenvolvimento de
Software 21
![Page 22: Metodologias Ágeis de Desenvolvimento de Software](https://reader035.fdocumentos.com/reader035/viewer/2022081414/548ba329b47959f86e8b460e/html5/thumbnails/22.jpg)
XP – EXtreme ProgrammingDesenvolvimento Orientado a Testes
“O XP se concentra sobretudo em dois tipos de testes: o teste de unidade e o teste de aceitação.
O primeiro tenta assegurar que cada componente do sistema funcione corretamente.
O segundo procura testar a interação entre os componentes, as quais dão origem às
funcionalidades.” [BECK, 2000 apud TELLES, 2005]
10/04/2023Metodologias Ágeis de Desenvolvimento de
Software 22
![Page 23: Metodologias Ágeis de Desenvolvimento de Software](https://reader035.fdocumentos.com/reader035/viewer/2022081414/548ba329b47959f86e8b460e/html5/thumbnails/23.jpg)
XP – EXtreme ProgrammingProgramação em Par Dois programadores
continuamente colaborando no mesmo projeto, algoritmo, código e teste.
Diminui erros de código, permite a refatoração instantânea, aprendizado contínuo, etc.
10/04/2023Metodologias Ágeis de Desenvolvimento de
Software 23
![Page 24: Metodologias Ágeis de Desenvolvimento de Software](https://reader035.fdocumentos.com/reader035/viewer/2022081414/548ba329b47959f86e8b460e/html5/thumbnails/24.jpg)
XP – EXtreme ProgrammingRefatoração A “refatoração é o processo de fazer
mudanças em um código existente e funcional sem alterar seu comportamento externo. [...]” [ASTELS, 2003 apud TELLES,2005
Objetivos:Enxugar o código (Tornar simples e claro)Melhor a eficiência do códigoMinimizar chances de introduzir bugs
GarantiasMelhoria interna contínua
10/04/2023Metodologias Ágeis de Desenvolvimento de
Software 24
![Page 25: Metodologias Ágeis de Desenvolvimento de Software](https://reader035.fdocumentos.com/reader035/viewer/2022081414/548ba329b47959f86e8b460e/html5/thumbnails/25.jpg)
XP – EXtreme ProgrammingPropriedade Coletiva O desenvolvedor tem acesso a todo o código O código é de todos os desenvolvedores e
qualquer um pode melhorar até aquilo que não fez
As alterações podem causar erros. Por segurança, é indicado adotar essa
prática apenas quando se tem testes de regressão automatizados
10/04/2023Metodologias Ágeis de Desenvolvimento de
Software 25
![Page 26: Metodologias Ágeis de Desenvolvimento de Software](https://reader035.fdocumentos.com/reader035/viewer/2022081414/548ba329b47959f86e8b460e/html5/thumbnails/26.jpg)
XP – EXtreme ProgrammingIntegração Contínua
Os pares trabalham de forma isolada, mas integram o que produzem diversas vezes ao dia.
Objetivos:Identificar conflitos cedo, para evitar futuras
falhas de integração Consequência:
Identificação quase que instantânea de conflito, já que se produz pouco código em poucas horas
10/04/2023Metodologias Ágeis de Desenvolvimento de
Software 26
![Page 27: Metodologias Ágeis de Desenvolvimento de Software](https://reader035.fdocumentos.com/reader035/viewer/2022081414/548ba329b47959f86e8b460e/html5/thumbnails/27.jpg)
XP – EXtreme ProgrammingTrabalho em 40 horas semanais
Hora extra é exceção Em atividade de 40 horas semanais já
ocorre a diminuição do fator foco Pressões não aumentam o fator foco,
pelo contrário diminuem
10/04/2023Metodologias Ágeis de Desenvolvimento de
Software 27
![Page 28: Metodologias Ágeis de Desenvolvimento de Software](https://reader035.fdocumentos.com/reader035/viewer/2022081414/548ba329b47959f86e8b460e/html5/thumbnails/28.jpg)
XP – EXtreme ProgrammingCliente presente “O melhor e mais participativo cliente não será
capaz de obter o software desejado se a equipe de desenvolvimento não implementar corretamente o que é pedido e a melhor equipe não será capaz de produzir o software certo se o cliente não for capaz de especificá-lo adequadamente e prover feedback ao longo do projeto.” [TELLES, 2005]
Junte-os e terá: Feedbacks mais rápidos Mudanças rápidas sem burocracia
10/04/2023Metodologias Ágeis de Desenvolvimento de
Software 28
![Page 29: Metodologias Ágeis de Desenvolvimento de Software](https://reader035.fdocumentos.com/reader035/viewer/2022081414/548ba329b47959f86e8b460e/html5/thumbnails/29.jpg)
XP – EXtreme ProgrammingPadronização de código
É importante definir um padrão de codificação no inicio do projeto
Objetivo:Familiarizar todos com o como o mesmo
padrão de código (código legível a todos)Simplificar a comunicação E tornar o código coletivo
10/04/2023Metodologias Ágeis de Desenvolvimento de
Software 29
![Page 30: Metodologias Ágeis de Desenvolvimento de Software](https://reader035.fdocumentos.com/reader035/viewer/2022081414/548ba329b47959f86e8b460e/html5/thumbnails/30.jpg)
SCRUM
O nome é originado da organização de uma equipe de Rugby para o reinicio da partida.
Formalizado e implantado no desenvolvimento de software em 1995 por Ken Shwaber
A função primária do Scrum é ser utilizado para o gerenciamento de projetos de desenvolvimento de software
10/04/2023Metodologias Ágeis de Desenvolvimento de
Software 30
![Page 31: Metodologias Ágeis de Desenvolvimento de Software](https://reader035.fdocumentos.com/reader035/viewer/2022081414/548ba329b47959f86e8b460e/html5/thumbnails/31.jpg)
SCRUM
O que é de fato?É um framework de desenvolvimento de produto,
sobre um ciclo de vida interativo e incremental Objetivos:
Acompanhamento contínuoIterações curtasRetorno mais rápido
SCRUM NÃO É A BALA DE PRATA! “Não garante sozinho o sucesso de um projeto”
10/04/2023Metodologias Ágeis de Desenvolvimento de
Software 31
![Page 32: Metodologias Ágeis de Desenvolvimento de Software](https://reader035.fdocumentos.com/reader035/viewer/2022081414/548ba329b47959f86e8b460e/html5/thumbnails/32.jpg)
SCRUM Quais são os papeis envolvidos?
Product Owner (PO)
Scrum Team
Scrum Master
10/04/2023Metodologias Ágeis de Desenvolvimento de
Software 32
![Page 33: Metodologias Ágeis de Desenvolvimento de Software](https://reader035.fdocumentos.com/reader035/viewer/2022081414/548ba329b47959f86e8b460e/html5/thumbnails/33.jpg)
SCRUMPapel do Product Owner Conhece o produto e as
necessidades do cliente Representa o cliente Define os requisitos do
produto, bem como sua importância e urgência
É responsável pelo retorno do investimento
10/04/2023Metodologias Ágeis de Desenvolvimento de
Software 33
![Page 34: Metodologias Ágeis de Desenvolvimento de Software](https://reader035.fdocumentos.com/reader035/viewer/2022081414/548ba329b47959f86e8b460e/html5/thumbnails/34.jpg)
SCRUMPapel do Scrum Master É o líder servidor Responsável por remover
os impedimentos do time Por remover interferências
externas E por garantir o uso correto
do Scrum Ensina Scrum aos
envolvidos
10/04/2023Metodologias Ágeis de Desenvolvimento de
Software 34
![Page 35: Metodologias Ágeis de Desenvolvimento de Software](https://reader035.fdocumentos.com/reader035/viewer/2022081414/548ba329b47959f86e8b460e/html5/thumbnails/35.jpg)
SCRUMPapel do Scrum Team Fazem parte do Scrum team
todos os desenvolvedores, arquitetos, analistas, ... que participam do projeto
O time é auto-gerenciável e multifuncional ou multidisciplinar (pessoas com diferentes aptidões)
Decidem junto com o PO o que entra no Sprint
E são responsáveis pelas estimativas de esforço
10/04/2023Metodologias Ágeis de Desenvolvimento de
Software 35
![Page 36: Metodologias Ágeis de Desenvolvimento de Software](https://reader035.fdocumentos.com/reader035/viewer/2022081414/548ba329b47959f86e8b460e/html5/thumbnails/36.jpg)
SCRUMCerimônias
São elas:Planejamentos de SprintRevisões de SprintRetrospectivas de SprintReuniões diárias
10/04/2023Metodologias Ágeis de Desenvolvimento de
Software 36
![Page 37: Metodologias Ágeis de Desenvolvimento de Software](https://reader035.fdocumentos.com/reader035/viewer/2022081414/548ba329b47959f86e8b460e/html5/thumbnails/37.jpg)
SCRUMArtefatos
Product BacklogLista priorizada de requisitos (Lista
mutável) Sprint Backlog
Itens que serão feitos na Sprint (Lista não mutável)
Burndown ChartsO trabalho acumulado ou realizado
(atualizados diariamente durante um Sprint)
10/04/2023Metodologias Ágeis de Desenvolvimento de
Software 37
![Page 38: Metodologias Ágeis de Desenvolvimento de Software](https://reader035.fdocumentos.com/reader035/viewer/2022081414/548ba329b47959f86e8b460e/html5/thumbnails/38.jpg)
SCRUMExemplo de Burndown Chart
10/04/2023Metodologias Ágeis de Desenvolvimento de
Software 38
![Page 39: Metodologias Ágeis de Desenvolvimento de Software](https://reader035.fdocumentos.com/reader035/viewer/2022081414/548ba329b47959f86e8b460e/html5/thumbnails/39.jpg)
SCRUMExemplo de Burndown Chart
10/04/2023Metodologias Ágeis de Desenvolvimento de
Software 39
![Page 40: Metodologias Ágeis de Desenvolvimento de Software](https://reader035.fdocumentos.com/reader035/viewer/2022081414/548ba329b47959f86e8b460e/html5/thumbnails/40.jpg)
10/04/2023 Metodologias Ágeis de Desenvolvimento de Software
40
SCRUM + XP
Scrum não define técnicas de Engenharia de Software
Foi construído inicialmente para o desenvolvimento de software
Porém, é um framework para gerenciamento do desenvolvimento de um produto
Por isso uma parceria de sucesso no desenvolvimento de software é:SCRUM + XP (Algumas práticas)
![Page 41: Metodologias Ágeis de Desenvolvimento de Software](https://reader035.fdocumentos.com/reader035/viewer/2022081414/548ba329b47959f86e8b460e/html5/thumbnails/41.jpg)
10/04/2023 Metodologias Ágeis de Desenvolvimento de Software
41
Conclusão SCRUM é uma excelente alternativa para
empresas que estão no CAOS É interessante para equipes pequenas, onde a
comunicação possa funcionar de forma tranquila
XP define boas práticas que contribuem para uma boa comunicação e para a prevenção de problemas
Ambas se preocupam e melhoria contínua da qualidade, através de avaliação contínua do trabalho e do processo
![Page 42: Metodologias Ágeis de Desenvolvimento de Software](https://reader035.fdocumentos.com/reader035/viewer/2022081414/548ba329b47959f86e8b460e/html5/thumbnails/42.jpg)
10/04/2023 Metodologias Ágeis de Desenvolvimento de Software
42
Dúvidas?
![Page 43: Metodologias Ágeis de Desenvolvimento de Software](https://reader035.fdocumentos.com/reader035/viewer/2022081414/548ba329b47959f86e8b460e/html5/thumbnails/43.jpg)
10/04/2023 Metodologias Ágeis de Desenvolvimento de Software
43
REFERÊNCIAS BECK, Kent. Extreme Programming explained: embrace
change. 1. ed. Reading, MA: Addison-Wesley, 2000. 190 p.
TELLES, Vinícius Magalhães. UM ESTUDO DE CASO DA ADOÇÃO DAS PRÁTICA E VALORES DO EXTREME PROGRAMMING. 2005.
KINIBERG, Herink. Scrum e XP direto das Trincheiras. 2008. Disponível em: <http://www.infoq.com/br/minibooks/scrum-xp-from-the-trenches>
<http://improveit.com.br/scrum> Acesso em: 21/10/2009 <http://www.adaptworks.com.br/scrum/> Acesso em:
21/10/2009
![Page 44: Metodologias Ágeis de Desenvolvimento de Software](https://reader035.fdocumentos.com/reader035/viewer/2022081414/548ba329b47959f86e8b460e/html5/thumbnails/44.jpg)
10/04/2023 Metodologias Ágeis de Desenvolvimento de Software
44
Contatos Emerson Henrique
[email protected] http://emersonhss.wordpress.com http://twitter.com/emersonhss
Luciano Almeida [email protected] http://twitter.com/lucianohenrique
Márcio Lins [email protected] http://twitter.com/marciolins
SCRUM PARAÍBA http://scrumpb.org/