Metodologias Ágeis de Desenvolvimento de Software
-
Upload
emerson-henrique -
Category
Technology
-
view
2.393 -
download
0
description
Transcript of Metodologias Ágeis de Desenvolvimento de Software
METODOLOGIAS ÁGEIS DE
DESENVOLVIMENTO DE SOFTWARE
Por Emerson Henrique, Luciano Almeida e Márcio Lins
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
Sumário
Introdução Caos AgileManifesto.org Metodologias Ágeis XP SCRUM SCRUM + XP Conclusão
10/04/2023Metodologias Ágeis de Desenvolvimento de
Software 3
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
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
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 ...
... CAOS
10/04/2023Metodologias Ágeis de Desenvolvimento de
Software 7
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
... 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
... 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
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
Metodologias
XP – eXtreme Programming SCRUM LEAN CRYSTAL FDD ...
10/04/2023Metodologias Ágeis de Desenvolvimento de
Software 12
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
XP – EXtreme Programming Valores:
ComunicaçãoSimplicidadeFeedbackCoragem
Abordagem Incremental
10/04/2023Metodologias Ágeis de Desenvolvimento de
Software 14
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
SCRUM Quais são os papeis envolvidos?
Product Owner (PO)
Scrum Team
Scrum Master
10/04/2023Metodologias Ágeis de Desenvolvimento de
Software 32
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
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
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
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
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
SCRUMExemplo de Burndown Chart
10/04/2023Metodologias Ágeis de Desenvolvimento de
Software 38
SCRUMExemplo de Burndown Chart
10/04/2023Metodologias Ágeis de Desenvolvimento de
Software 39
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)
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
10/04/2023 Metodologias Ágeis de Desenvolvimento de Software
42
Dúvidas?
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
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/