Introdução ao Desenvolvimento Ágil com Scrum
-
Upload
flavio-secchieri-mariotti -
Category
Technology
-
view
582 -
download
2
description
Transcript of Introdução ao Desenvolvimento Ágil com Scrum
Introdução ao Desenvolvimento Ágil com Scrum
Flávio Secchieri Mariotti Solution Architect
Um pouco de contexto sobre o desenvolvimento de software nas últimas décadas
O que é desenvolvimento ágil Frameworks de
desenvolvimento ágil Manifesto Ágil O que é SCRUM ScrumBut Certificações Referências Q&A
Agenda
Flávio Secchieri Mariotti
• Arquiteto e Especialista em desenvolvimento de software e defensor afinco de métodos ágeis.
• Mestrando em Engenharia da Computação com ênfase em Engenharia de Software e Pós Graduado em Engenharia de Software baseado em SOA.
Solutions Architect at HP
@FlavioSMariotti
Um pouco de contexto sobre o desenvolvimento de software nas últimas décadas
A importância do softwareA importância dos software nos negócios
Comercial
A importância da informática na gestão das empresas é inquestionável. Empreendimentos de todos os portes ganham agilidade, confiabilidade e, principalmente, uma redução de despesas operacionais com a adoção de softwares de gestão.
Cliente
Precisamos de novos sistemas. Contrate algum estudante de informática e peça para ele desenvolver um software para a próxima semana.
Arquiteto
Para desenvolver esse software precisamos usar alguns designer patterns só assim vamos criar um software escalável, flexível e eficiente.
Testadores
Os programadores não enviam uma versão sem bug, não sei qual a dificuldade nisso.
Desenvolvedores
Quem fez a arquitetura desse projeto?
A importância do softwareA importância dos software nos negócios
Qual a real importância?...
Taxa de sucessos dos projetosGlobal study on success rate of IT projects
Fonte: Standish Group; CHAOS Manifesto 2011.
Estatística
Expectativas
37% atendem às expectativas.
42% dos sistemas não funcionam como o planejado ou nunca serão usados
21% fracassam integralmente.
Qualidade
57% dos sistemas são entregues sabendo-se que têm defeitos
Prazo
68% dos projetos são entregues com atraso
Custo
50% dos projetos custam mais do que o planejado.
Funcionalidades do software
45% Nunca19% Raramente16% As vezes13% Frequentemente7% Sempre
45%
19%
16%
13%
7%
Frequência
Frequência de utilização das funcionalidades nos softwares
20% do software é realmente útil.Fonte: Standish Group;
Por quê?Algumas questões para reflexão
Por que os projetos falham tanto?
O que temos feito de inadequado ao longo dos anos?
Por que somos incapazes de cumprir os prazos e custos?
Por que somos incapazes de entregar aquilo que o cliente deseja?
Modelos tradicionaisDesenvolvimento de software com os modelos tradicionais.
• Cascata
• Modelo Espiral
• Prototipação descartável
• Modelo de Reuso
• Codificação e correção
Justifico
Venda
Comemoração
Planejamento
Revisão
Preocupação
Desespero
Modelo CascataDesenvolvimento de Software com o modelo mais tradicional (waterfall)
Planejado
Real
Requisitos Análise Construção Teste Implantaç
ão
Jun/2013 Jul/2013 Ago/2013 Set/2013 Out/2013
Jun/2013 Jul/2013 Ago/2013 Set/2013 Um dia...
Requisitos Análise Construção Teste Implantação
Desenvolvimento ágil
Desenvolvimento ágilO que é Desenvolvimento ágil de software?
Podemos definir desenvolvimento ágil de software como um conjunto de métodos e práticas de construção de software. Desenvolvimento ágil é termo abrangente que engloba alguns conceitos que vem evoluindo desde a década de 1990, tais como:
Desenvolvimento iterativo
Desenvolvimento incremental
Time auto organizáveis
Times multifuncionais
Envolvimento ativo dos usuários
Maximização do ROI
Desenvolvimento ágilO desenvolvimento ágil compreende vários frameworks
O desenvolvimento ágil compreende vários frameworks e metodologias de desenvolvimento de software:
Extreme Programming XP
DSDM
OpenUP
Scrum
FDD
Modelagem ágil
TDD
HP Agile Development - EDGE
Já estão usando...Algumas empresas que adoram o Scrum
Fonte: Mountain Goat Software
Manifesto Ágil
Manifesto ágilOrigem das abordagens ágeis
Estamos descobrindo maneiras melhores de desenvolver software fazendo-o nós mesmos e ajudando outros a fazê-lo. Através deste trabalho, passamos a valorizar:
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
“Ou seja, mesmo havendo valor nos itens à direita, valorizamos mais os itens à esquerda.”
http://manifestoagil.com.br
Manifesto ágilPrincípios por trás do manifesto ágil
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.
http://manifestoagil.com.br
Scrum
ScrumVisão geral
Scrum: Um framework dentro do qual pessoas podem tratar e resolver problemas complexos e adaptativos, enquanto produtiva e criativamente entregam produtos com o mais alto valor possível.
Leve Simples de entender Extremamente difícil de dominar
ScrumO que é o Scrum?
O framework Scrum consiste nas equipes do Scrum associadas a papéis, eventos, artefatos e regras. Cada componente dentro do framework serve a um propósito específico e é essencial para o uso e sucesso do Scrum.
Scrum é fundamentado nas teorias empíricas de controle de processo, ou empirismo.
Baseadas no que é conhecido.
ScrumPilares do Scrum
Três pilares apoiam a implementação de controle de processo empírico:
Transparência
Inspeção
Adaptação
Desenvolvimento com ScrumCaracterísticas do Scrum: Iterativo e Incremental
No Scrum o desenvolvimento será iterativo e incremental.
IterativoCaracterísticas do Scrum: Iterativo e Incremental
Fonte: Don’t know what I want, but I know how to get it. http://www.agileproductdesign.com/blog/dont_know_what_i_want.html
IncrementalCaracterísticas do Scrum: Iterativo e Incremental
Fonte: Don’t know what I want, but I know how to get it. http://www.agileproductdesign.com/blog/dont_know_what_i_want.html
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.26
Características do ScrumProcesso Iterativo e Incremental
Entregas pequenas e parciais de 2 a 4 semanas.
Entrega do maior valor agregado. Redução das incertezas. Motivação da equipe. Melhoria contínua. Cliente mais confiante.
Características do ScrumAuto-organização
Equipes multifuncionais
Equipes capazes de se auto organizarem
As tarefas são do time e todos são
responsáveis
Forte comprometimento com os
resultados
Características do ScrumCliente é considerado um parceiro
Envolvimento do cliente ao longo de todo o projeto Disponível sempre e quando necessário para tirar dúvidas
Mas colaboração e menos discussão de contrato Mudanças de requisitos são bem-vindas
Características do ScrumScrum é um processo empírico
Processos definidos
Processos empíricos
Características do ScrumTime Scrum
Product Owner
Equipe de
Desenvolvimento
Scrum Master
Características do ScrumEventos do Scrum
Reunião de Planejamento da Sprint
Reunião diaria
Revisão da Sprint
Retrospectiva da Sprint
Características do ScrumArtefatos do Scrum
Backlog do Produto
Backlog da Sprint
Incremento
Definição de “pronto”
ComplementoTécnicas, práticas e ferramentas complementares
Planning Poker
Kanban
Gráfico Burndown da Sprint
Gráfico Burndown da Release
ScrumBut
ScrumButOs perigos por trás do ScrumBut
"ScrumButs são razões pelas quais as equipes não podem tirar proveito do Scrum para resolverem seus
problemas e perceberem os reais benefícios no desenvolvimento de produtos utilizando o framework
Scrum".
By Ken Schwaber
ScrumButSintaxe do ScrumBut
O ScrumBut contém uma sintaxe particular definida como:
(ScrumBut)(Razão)(Solução)
ScrumButExemplos de Scrumbut
“Nós usamos Scrum, mas implementar a Daily Scrum todos os dias sobrecarrega a equipe e não é produtiva, de modo que só temos uma por
semana.”
“Nós usamos Scrum, mas as retrospectivas são um desperdício de tempo, por isso não
implementamos.”
“Nós usamos Scrum, mas não podemos construir uma funcionalidade em quatro semanas, por isso,
nossos Sprints são de seis ou oito semanas de duração.”
ScrumButRazões pelas quais equipes adotam ScrumBut
Clientes não querem ser envolvidos, simplesmente
querem o produto pronto.
A empresa não está disposta a mudar seus
processos.
A empresa não quer ser envolvida e não respeita a
decisões de prioridade do Product Onwer.
Não foi possível convencer o gerente de TI dos
benefícios de permitir a equipe Scrum ser
autogerenciável.
Nem todos da equipes estão disponíveis para
trabalharem de forma integral para o projeto ou
Sprint.
A equipe não sente necessidade das reuniões
diárias.
Nem todos da equipe tem condições de se
responsabilizar por pedaços de funcionalidades
requeridas no Sprint.
Nem sempre conseguimos reunir todos os integrantes
da equipe para reuniões de retrospectiva.
O Scrum Master não respeita as decisões da equipe e
decide o que cada uma deve ou não fazer.
Os gerentes e diretores interessados no produto, não
podem ficar de fora e precisam participar das reuniões
e, se necessário, determinar prazo para finalização de
cada Sprint.
O Scrum Master não está comprometido com o Scrum,
ao ponto que ele ou ela não remove os obstáculos
destacados pelo time Scrum.
O Product Onwer não está comprometido com o Scrum e
não auxilia a equipe Scrum com duvidas e priorização
de atividades.
ScrumButRiscos e consequências
O Scrum é considerado imutável, ou seja, embora seja possível implementar partes do Scrum, o resultado final não é
considerado Scrum.
conflitos internos
clientes insatisfeitos falta de gestão
perda do controle atraso nas entregas
perda de tempo
ScrumButComo evitar o ScrumBut
Discussões regulares sobre os valores do Scrum.
Discussões regulares sobre os princípios do manifesto ágil.
Debates sobre o que o Scrum significa para cada membro.
Inspeções constantes sobre os benefícios e resultados obtidos com
Scrum.
Permitir que o time Scrum se autogerencie dentro de um time-box.
Questione-se regularmente se os processos Scrum estão sendo
respeitados.
Identifique e evite qualquer ação de heroísmo individual.
Certificações
CertificaçõesValidando seus conhecimentos
Existem algumas certificações profissionais relacionadas com o tema ágil e são oferecidas por organizações como: Scrum.org, ScrumAlliance, ICAgile, PMI, dentre outras.
Scrum.orgModelos de certificações do Scrum.org
O Scrum.org é uma organização fundada em 2009 por Ken Schwaber, um dos criadores do Scrum. Apesar de ser uma organização nova, já é reconhecida mundialmente.
O Scrum.org mantém um programa de certificação para profissionais que trabalham ou pretendem trabalhar com o Scrum, são eles: Profissional Scrum Master; Profissional Scrum Developer; Profissional Scrum Product Owner.
Referências
ReferênciasLivros, Blogs, Frameworks, e mais...
HP Agile Development
http://processviewer.corp.hp.com/app/viewer?id=595
HP Agile Development Pattern
http://processviewer.corp.hp.com/app/viewer?id=608
HP Agile Transformation Journey
http://processviewer.corp.hp.com/app/viewer?id=596
Scrum.org
http://www.scrum.org/
Ken Schwaber’s Blog
http://kenschwaber.wordpress.com/
Scaled Agile Framework – Big Picture
http://scaledagileframework.com/
http://scaledagileframework.com/blog-2/
Book: Agile Project Management with Scrum
By Ken Schwaber
DúvidasQ&A
Sobre o que estamos falando?
Zzzz QUE? Terminou?
Qual o nome dele mesmo?
Ele disse Scrum, certo?
Obrigado