47
Introdução ao Desenvolvimento Ágil com Scrum Flávio Secchieri Mariotti Solution Architect

Introdução ao Desenvolvimento Ágil com Scrum

Embed Size (px)

DESCRIPTION

Promovi na HP Enterprise Service no dia 05/07/2013 um workshop que abordou o tema ágil. Neste workshop tive a oportunidade de debater sobre o que de fato faz parte da filosofia ágil de desenvolvimento de software. Sabemos que muito se fala sobre esse modelo, mas também sabemos das dificuldades em entender porque existem essas implementações chamadas ágeis. Tentamos então de forma sucinta conhecer as origens dessas práticas, seus princípios e os conceitos que os fazem tão relevantes para enfrentar os desafios de criar sistemas no século 21. Também discutimos algumas maneiras de identificar o melhor momento para adoção de uma prática ágil, e mostramos como avaliar se as equipes estão preparadas para essa abordagem. Além disso, relembramos as peculiaridades dos modelos tradicionais e com uma análise comparativa apuramos as causas que dificultam o uso de processos que requerem escopo de negócio fechado. O dinamismo da informação altera as necessidades constantemente e inevitavelmente os sistemas precisam acompanhar essas mudanças, portanto, a utilização da prática de iteração e a aceitação de mudanças se tornaram itens básicos para o novo ciclo de desenvolvimento de software. No entanto, muitas equipes decidem usar métodos ágeis sem avaliar se estão preparadas, logo, se deparam com um processo indisciplinado e um cenário de caos em seu ambiente de trabalho. O não entendimento da filosofia ágil impede que as equipes obtenham as vantagens alcançadas com ciclos ágeis, assim, dando origem a metodologias customizadas de forma amadora e inconsequente, chamado pelo Ken Schwaber de ScrumBut (http://blogs.hp.com/architecturebrazil/2013/06/18/os-perigos-por-tras-do-scrumbut/) Estas e outras questões foram discutidas no workshop Introdução ao Desenvolvimento Ágil usando Scrum. Agenda do workshop - 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 - Desenvolvimento com SCRUM - ScrumBut - Certificações

Citation preview

Page 1: Introdução ao Desenvolvimento Ágil com Scrum

Introdução ao Desenvolvimento Ágil com Scrum

Flávio Secchieri Mariotti Solution Architect

Page 2: Introdução ao Desenvolvimento Ágil com Scrum

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

Page 3: Introdução ao Desenvolvimento Ágil com Scrum

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

Page 4: Introdução ao Desenvolvimento Ágil com Scrum

Um pouco de contexto sobre o desenvolvimento de software nas últimas décadas

Page 5: Introdução ao Desenvolvimento Ágil com Scrum

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?

Page 6: Introdução ao Desenvolvimento Ágil com Scrum

A importância do softwareA importância dos software nos negócios

Qual a real importância?...

Page 7: Introdução ao Desenvolvimento Ágil com Scrum

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.

Page 8: Introdução ao Desenvolvimento Ágil com Scrum

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;

Page 9: Introdução ao Desenvolvimento Ágil com Scrum

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?

Page 10: Introdução ao Desenvolvimento Ágil com Scrum

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

Page 11: Introdução ao Desenvolvimento Ágil com Scrum

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

Page 12: Introdução ao Desenvolvimento Ágil com Scrum

Desenvolvimento ágil

Page 13: Introdução ao Desenvolvimento Ágil com Scrum

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

Page 14: Introdução ao Desenvolvimento Ágil com Scrum

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

Page 15: Introdução ao Desenvolvimento Ágil com Scrum

Já estão usando...Algumas empresas que adoram o Scrum

Fonte: Mountain Goat Software

Page 16: Introdução ao Desenvolvimento Ágil com Scrum

Manifesto Ágil

Page 17: Introdução ao Desenvolvimento Ágil com Scrum

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

Page 18: Introdução ao Desenvolvimento Ágil com Scrum

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

Page 19: Introdução ao Desenvolvimento Ágil com Scrum

Scrum

Page 20: Introdução ao Desenvolvimento Ágil com 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

Page 21: Introdução ao Desenvolvimento Ágil com Scrum

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.

Page 22: Introdução ao Desenvolvimento Ágil com Scrum

ScrumPilares do Scrum

Três pilares apoiam a implementação de controle de processo empírico:

Transparência

Inspeção

Adaptação

Page 23: Introdução ao Desenvolvimento Ágil com Scrum

Desenvolvimento com ScrumCaracterísticas do Scrum: Iterativo e Incremental

No Scrum o desenvolvimento será iterativo e incremental.

Page 24: Introdução ao Desenvolvimento Ágil com Scrum

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

Page 25: Introdução ao Desenvolvimento Ágil com Scrum

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

Page 26: Introdução ao Desenvolvimento Ágil com Scrum

© 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.

Page 27: Introdução ao Desenvolvimento Ágil com Scrum

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

Page 28: Introdução ao Desenvolvimento Ágil com Scrum

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

Page 29: Introdução ao Desenvolvimento Ágil com Scrum

Características do ScrumScrum é um processo empírico

Processos definidos

Processos empíricos

Page 30: Introdução ao Desenvolvimento Ágil com Scrum

Características do ScrumTime Scrum

Product Owner

Equipe de

Desenvolvimento

Scrum Master

Page 31: Introdução ao Desenvolvimento Ágil com Scrum

Características do ScrumEventos do Scrum

Reunião de Planejamento da Sprint

Reunião diaria

Revisão da Sprint

Retrospectiva da Sprint

Page 32: Introdução ao Desenvolvimento Ágil com Scrum

Características do ScrumArtefatos do Scrum

Backlog do Produto

Backlog da Sprint

Incremento

Definição de “pronto”

Page 33: Introdução ao Desenvolvimento Ágil com Scrum

ComplementoTécnicas, práticas e ferramentas complementares

Planning Poker

Kanban

Gráfico Burndown da Sprint

Gráfico Burndown da Release

Page 34: Introdução ao Desenvolvimento Ágil com Scrum

ScrumBut

Page 35: Introdução ao Desenvolvimento Ágil com Scrum

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

Page 36: Introdução ao Desenvolvimento Ágil com Scrum

ScrumButSintaxe do ScrumBut

O ScrumBut contém uma sintaxe particular definida como:

 

(ScrumBut)(Razão)(Solução)

Page 37: Introdução ao Desenvolvimento Ágil com Scrum

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.”

Page 38: Introdução ao Desenvolvimento Ágil com Scrum

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.

Page 39: Introdução ao Desenvolvimento Ágil com Scrum

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

Page 40: Introdução ao Desenvolvimento Ágil com Scrum

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.

Page 41: Introdução ao Desenvolvimento Ágil com Scrum

Certificações

Page 42: Introdução ao Desenvolvimento Ágil com Scrum

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.

Page 43: Introdução ao Desenvolvimento Ágil com Scrum

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.

Page 44: Introdução ao Desenvolvimento Ágil com Scrum

Referências

Page 45: Introdução ao Desenvolvimento Ágil com Scrum

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

Page 46: Introdução ao Desenvolvimento Ágil com Scrum

DúvidasQ&A

Sobre o que estamos falando?

Zzzz QUE? Terminou?

Qual o nome dele mesmo?

Ele disse Scrum, certo?

Page 47: Introdução ao Desenvolvimento Ágil com Scrum

Obrigado