229
O Pensamento Ágil

O Pensamento Ágil

Embed Size (px)

DESCRIPTION

Agile não é substantivo, é adjetivo.

Citation preview

Page 1: O Pensamento Ágil

O Pensamento Ágil

Page 2: O Pensamento Ágil

Insanidade é fazer as coisas sempre do mesmo jeito e

esperar que o resultado mude.

Rita Mae Brown

Page 3: O Pensamento Ágil

Qualidade

Page 4: O Pensamento Ágil

A qualidade de software é uma área de conhecimento da

engenharia de software que objetiva garantir a qualidade do software através da definição e normatização de processos de

desenvolvimento.

"

Page 5: O Pensamento Ágil

Segundo a norma ISO 9000 (versão 2000), a qualidade é o grau em

que um conjunto de características inerentes a um

produto, processo ou sistema cumpre os

requisitos inicialmente estipulados para estes.

"

Page 6: O Pensamento Ágil

No desenvolvimento de software, a qualidade do produto está diretamente

relacionada à qualidade do processo de

desenvolvimento

"

Page 7: O Pensamento Ágil

!

• CMMI • MPS.BR • ISO 9126 • ISO 15504 • ISO 12207

Modelos de qualidade:

"

Page 8: O Pensamento Ágil

qualidade de software = qualidade do

processo

no mundo tradicional…

Page 9: O Pensamento Ágil

Qualidade do Processo

Page 10: O Pensamento Ágil

repetitível

Page 11: O Pensamento Ágil

controlável

Page 12: O Pensamento Ágil

repetitível

Page 13: O Pensamento Ágil
Page 14: O Pensamento Ágil
Page 15: O Pensamento Ágil
Page 16: O Pensamento Ágil
Page 17: O Pensamento Ágil
Page 18: O Pensamento Ágil
Page 19: O Pensamento Ágil

controlável

Page 20: O Pensamento Ágil
Page 21: O Pensamento Ágil
Page 22: O Pensamento Ágil

infinitas variáveis

Page 23: O Pensamento Ágil
Page 24: O Pensamento Ágil
Page 25: O Pensamento Ágil
Page 26: O Pensamento Ágil
Page 27: O Pensamento Ágil
Page 28: O Pensamento Ágil
Page 29: O Pensamento Ágil
Page 30: O Pensamento Ágil
Page 31: O Pensamento Ágil

poucas regras

Page 32: O Pensamento Ágil

o mundo é complexo

Page 33: O Pensamento Ágil

o mundo é caóticopequenas variações no sistema podem

causar consequências estrondosas

Page 34: O Pensamento Ágil

o mundo não é linear

Page 35: O Pensamento Ágil
Page 36: O Pensamento Ágil

qualidade de software = ROI

no mundo moderno…

Page 37: O Pensamento Ágil

Our analysis suggests that 20% of features are used often and 50% of features are hardly ever

or never used.

http://versionone.com/assets/img/files/ChaosManifesto2013.pdf

"

Page 38: O Pensamento Ágil

backlog

Page 39: O Pensamento Ágil

backlog

Page 40: O Pensamento Ágil

backlog

Page 41: O Pensamento Ágil

backlog

Page 42: O Pensamento Ágil

backlog

Page 43: O Pensamento Ágil

escopo

custo

prazo

excelência

Page 44: O Pensamento Ágil

escopo

custo

prazo

excelência

Page 45: O Pensamento Ágil

fazermais

fazercertovs

Page 46: O Pensamento Ágil

escopo

custo

prazo

excelência

Page 47: O Pensamento Ágil

escopo

custo

prazo

excelência

Page 48: O Pensamento Ágil

escopo

custo

prazo

excelência

Page 49: O Pensamento Ágil

1

2

3

4

5

backlog

Page 50: O Pensamento Ágil

backlog

Page 51: O Pensamento Ágil

backlog

Page 52: O Pensamento Ágil

backlog

Page 53: O Pensamento Ágil

backlog

Page 54: O Pensamento Ágil

Lançamento

Page 55: O Pensamento Ágil

escopo

custo

prazo

excelência

Page 56: O Pensamento Ágil

1

2

3

4

5

backlog

Page 57: O Pensamento Ágil

backlog

Page 58: O Pensamento Ágil

backlog

Page 59: O Pensamento Ágil

backlog

Page 60: O Pensamento Ágil

backlog

Page 61: O Pensamento Ágil

Lançamento

Page 62: O Pensamento Ágil

http://en.wikipedia.org/wiki/Perpetual_beta

Page 63: O Pensamento Ágil
Page 64: O Pensamento Ágil

Simplicidade

Page 65: O Pensamento Ágil
Page 66: O Pensamento Ágil

20%

80%

20%

80%

esforço resultados

Page 67: O Pensamento Ágil
Page 68: O Pensamento Ágil
Page 69: O Pensamento Ágil
Page 70: O Pensamento Ágil
Page 71: O Pensamento Ágil

Menos é Mais

Page 72: O Pensamento Ágil

vs

Page 73: O Pensamento Ágil
Page 74: O Pensamento Ágil

Aprendizado

Page 75: O Pensamento Ágil

desenvolvimento de software = aprender

Page 76: O Pensamento Ágil

aprende-se constrói-se

Page 77: O Pensamento Ágil

análise de requisitos

Page 78: O Pensamento Ágil
Page 79: O Pensamento Ágil

R

Q

P D T

Page 80: O Pensamento Ágil

R

Q

P D T

Page 81: O Pensamento Ágil

R

Q

P

DT

C

(

Page 82: O Pensamento Ágil

R

Q

P

DT

C

Meses !!!

Page 83: O Pensamento Ágil

R

Q

P

DT

C

Meses !!!

!=

(

Page 84: O Pensamento Ágil

waterfall

Page 85: O Pensamento Ágil

The first formal description of the waterfall model is often cited as a 1970 article by Winston W. Royce,[4][5] although Royce did not use the term "waterfall" in

this article. Royce presented this model as an example of a flawed, non-working model.

http://en.wikipedia.org/wiki/Waterfall_model#cite_note-0

"

Page 86: O Pensamento Ágil

http://www.cs.umd.edu/class/spring2003/cmsc838p/Process/waterfall.pdf

Page 87: O Pensamento Ágil

http://www.cs.umd.edu/class/spring2003/cmsc838p/Process/waterfall.pdf

I believe in this concept, but the implementation described above is

risky and invites failure."

Page 88: O Pensamento Ágil

http://www.cs.umd.edu/class/spring2003/cmsc838p/Process/waterfall.pdf

Page 89: O Pensamento Ágil

http://www.cs.umd.edu/class/spring2003/cmsc838p/Process/waterfall.pdf

Page 90: O Pensamento Ágil
Page 91: O Pensamento Ágil
Page 92: O Pensamento Ágil
Page 93: O Pensamento Ágil

• Planejamento da Contratação

‣ Análise da Viabilidade da Contratação

‣ Plano de Sustentação

‣ Estratégia da Contratação

‣ Análise de Riscos

‣ Termo de Referência ou Projeto Básico

- objeto - fundamentação da contratação - descrição da solução - requisitos da solução!- modelo de prestação de serviços

- elementos para gestão do contrato - estimativa de preços - adequação orçamentária - critérios de sanções - critérios de seleção do fornecedor

• Seleção do Fornecedor

• Gerenciamento do Contrato

IN SLTI MP 04/2010!IN SLTI MP 02/2012

Page 94: O Pensamento Ágil

aprende-se constrói-se

Page 95: O Pensamento Ágil

define-se constrói-se

Page 96: O Pensamento Ágil
Page 97: O Pensamento Ágil
Page 98: O Pensamento Ágil

aprende-se contrata-se

Page 99: O Pensamento Ágil

valida-se constrói-se

Page 100: O Pensamento Ágil

valida-se constrói-se

Page 101: O Pensamento Ágil

startups

Page 102: O Pensamento Ágil
Page 103: O Pensamento Ágil
Page 104: O Pensamento Ágil

http://startupbizmodel.com/2013/04/18/sua-startup-esta-preparada-para-receber-investimento/

Page 105: O Pensamento Ágil

=

Page 106: O Pensamento Ágil
Page 107: O Pensamento Ágil
Page 108: O Pensamento Ágil

R

Q

P

DT

Page 109: O Pensamento Ágil

R

Q

PD

T

RP

DT

RP

DT

2 meses 2 meses 2 meses

Page 110: O Pensamento Ágil

R

Q

PD

T

RP

DT

RP

DT

2 semanas 2 semanas 2 semanas

Page 111: O Pensamento Ágil

Q

R P

DT

Page 112: O Pensamento Ágil

Q

R P

DT

C

)

Page 113: O Pensamento Ágil

R P

DT

C

)

Page 114: O Pensamento Ágil

R P

DT

Page 115: O Pensamento Ágil

R P

DT

Page 116: O Pensamento Ágil

RP

D T

D

D

D

T

TT

TTP

PP

P

P

R

R

R

R

R

Page 117: O Pensamento Ágil
Page 118: O Pensamento Ágil

RP

D T

D

D

D

T

TT

TTP

PP

P

P

R

R

R

R

R?

Page 119: O Pensamento Ágil
Page 120: O Pensamento Ágil

==?

Melhoria

Page 121: O Pensamento Ágil

==?

Plan Do Check Act

Page 122: O Pensamento Ágil

==?

Plan Do Check Act

Page 123: O Pensamento Ágil

?

Page 124: O Pensamento Ágil

Pilha de funcionalidades

Page 125: O Pensamento Ágil

Esforço

Prioridade

Page 126: O Pensamento Ágil

Esforço

Prioridade

X

Page 127: O Pensamento Ágil

Benefício

CustoX

Page 128: O Pensamento Ágil

RoI

Page 129: O Pensamento Ágil
Page 130: O Pensamento Ágil

Simplicidade

Page 131: O Pensamento Ágil
Page 132: O Pensamento Ágil

Diário

Semanal

Mensal

Tri-mestral

Estratégico

...

Page 133: O Pensamento Ágil

Diário

Semanal

Mensal

Tri-mestral

Estratégico

...

Page 134: O Pensamento Ágil

Design Evolutivo

Page 135: O Pensamento Ágil
Page 136: O Pensamento Ágil
Page 137: O Pensamento Ágil

?

Page 138: O Pensamento Ágil
Page 139: O Pensamento Ágil

Adaptabilidade

Page 140: O Pensamento Ágil

Qualidade Embutida

Page 141: O Pensamento Ágil
Page 142: O Pensamento Ágil

Testes Automáticos

Page 143: O Pensamento Ágil

Programa

Teste

Page 144: O Pensamento Ágil

Programa

Teste

Page 145: O Pensamento Ágil

Programa

Teste

Page 146: O Pensamento Ágil

(...) public int soma(int a, int b) { // código

} (...)

(...) public void meuTeste() { int par1 = 1; int par2 = 1; int result = Classe.soma(par1,par1); assertEquals(2, result);

} (...)

Page 147: O Pensamento Ágil

(...) public int soma(int a, int b) { // código

} (...)

(...) public void meuTeste() { int par1 = 1; int par2 = 1; int result = Classe.soma(par1,par1); assertEquals(2, result);

} (...)

Preparação

Page 148: O Pensamento Ágil

(...) public int soma(int a, int b) { // código

} (...)

(...) public void meuTeste() { int par1 = 1; int par2 = 1; int result = Classe.soma(par1,par2); assertEquals(2, result);

} (...)

Exercício

Page 149: O Pensamento Ágil

(...) public int soma(int a, int b) { // código

} (...)

(...) public void meuTeste() { int par1 = 1; int par2 = 1; int result = Classe.soma(par1,par1); assertEquals(2, result);

} (...)

Verificação

Page 150: O Pensamento Ágil

X

Page 151: O Pensamento Ágil

10

30

20 30 40 50 60 70

30 30 30 30 30 30

Page 152: O Pensamento Ágil
Page 153: O Pensamento Ágil

public class Romanos { !public static String parse(int entrada) { StringBuilder resultado = new StringBuilder(); if (entrada <= 3) { for (int i = 0; i < entrada; i++) resultado.append("I"); return resultado.toString(); } else if (entrada == 4) { return "IV"; } else if(entrada == 5){ return "V"; } else if (entrada < 9){ resultado.append("V"); return resultado.toString(); }else if (entrada == 9){ return "IX"; }else{ return "X"; } } !} !

!public static String parse(int entrada) { else if (entrada == 4) { return "IV"; } else if(entrada == 5){ return "V"; } !} !

!public static String parse(int entrada) { else if (entrada == 4) { return "IV"; } else if(entrada == 5){ return "V"; } !} !

!public static String parse(int entrada) { else if (entrada == 4) { return "IV"; } else if(entrada == 5){ return "V"; } !} !

!public static String parse(int entrada) { else if (entrada == 4) { return "IV"; } else if(entrada == 5){ return "V"; } !} !

!public static String parse(int entrada) { else if (entrada == 4) { return "IV"; } else if(entrada == 5){ return "V"; } !} !

!public static String parse(int entrada) { else if (entrada == 4) { return "IV"; } else if(entrada == 5){ return "V"; } !} !!

public static String parse(int entrada) { else if (entrada == 4) { return "IV"; } else if(entrada == 5){ return "V"; } !} !

!public static String parse(int entrada) { else if (entrada == 4) { return "IV"; } else if(entrada == 5){ return "V"; } !} !

Page 154: O Pensamento Ágil

public class Romanos { !public static String parse(int entrada) { StringBuilder resultado = new StringBuilder(); if (entrada <= 3) { for (int i = 0; i < entrada; i++) resultado.append("I"); return resultado.toString(); } else if (entrada == 4) { return "IV"; } else if(entrada == 5){ return "V"; } else if (entrada < 9){ resultado.append("V"); return resultado.toString(); }else if (entrada == 9){ return "IX"; }else{ return "X"; } } !} !

!public static String parse(int entrada) { else if (entrada == 4) { return "IV"; } else if(entrada == 5){ return "V"; } !} !

!public static String parse(int entrada) { else if (entrada == 4) { return "IV"; } else if(entrada == 5){ return "V"; } !} !

!public static String parse(int entrada) { else if (entrada == 4) { return "IV"; } else if(entrada == 5){ return "V"; } !} !

!public static String parse(int entrada) { else if (entrada == 4) { return "IV"; } else if(entrada == 5){ return "V"; } !} !

!public static String parse(int entrada) { else if (entrada == 4) { return "IV"; } else if(entrada == 5){ return "V"; } !} !

!public static String parse(int entrada) { else if (entrada == 4) { return "IV"; } else if(entrada == 5){ return "V"; } !} !!

public static String parse(int entrada) { else if (entrada == 4) { return "IV"; } else if(entrada == 5){ return "V"; } !} !

!public static String parse(int entrada) { else if (entrada == 4) { return "IV"; } else if(entrada == 5){ return "V"; } !} !

Page 155: O Pensamento Ágil

public class Romanos { !public static String parse(int entrada) { StringBuilder resultado = new StringBuilder(); if (entrada <= 3) { for (int i = 0; i < entrada; i++) resultado.append("I"); return resultado.toString(); } else if (entrada == 4) { return "IV"; } else if(entrada == 5){ return "V"; } else if (entrada < 9){ resultado.append("V"); return resultado.toString(); }else if (entrada == 9){ return "IX"; }else{ return "X"; } } !} !

!public static String parse(int entrada) { else if (entrada == 4) { return "IV"; } else if(entrada == 5){ return "V"; } !} !

!public static String parse(int entrada) { else if (entrada == 4) { return "IV"; } else if(entrada == 5){ return "V"; } !} !

!public static String parse(int entrada) { else if (entrada == 4) { return "IV"; } else if(entrada == 5){ return "V"; } !} !

!public static String parse(int entrada) { else if (entrada == 4) { return "IV"; } else if(entrada == 5){ return "V"; } !} !

!public static String parse(int entrada) { else if (entrada == 4) { return "IV"; } else if(entrada == 5){ return "V"; } !} !

!public static String parse(int entrada) { else if (entrada == 4) { return "IV"; } else if(entrada == 5){ return "V"; } !} !!

public static String parse(int entrada) { else if (entrada == 4) { return "IV"; } else if(entrada == 5){ return "V"; } !} !

!public static String parse(int entrada) { else if (entrada == 4) { return "IV"; } else if(entrada == 5){ return "V"; } !} !

Page 156: O Pensamento Ágil
Page 157: O Pensamento Ágil
Page 158: O Pensamento Ágil
Page 159: O Pensamento Ágil

Tempo

Custo

Page 160: O Pensamento Ágil
Page 161: O Pensamento Ágil

Comunicação

Page 162: O Pensamento Ágil

R P D TC

Page 163: O Pensamento Ágil

R P D TC

?!

Page 164: O Pensamento Ágil

R P D TC

Page 165: O Pensamento Ágil

R

P D

T

C

Page 166: O Pensamento Ágil
Page 167: O Pensamento Ágil

Agile Manifesto

Page 168: O Pensamento Ágil

O Manifesto Agilhttp://agilemanifesto.org

Page 169: O Pensamento Ágil
Page 170: O Pensamento Ágil
Page 171: O Pensamento Ágil

Autoreshttp://agilemanifesto.org

Page 172: O Pensamento Ágil

@KentBeck

@kschwaber

@jeffsutherland

Page 173: O Pensamento Ágil

@martinfowler

@pragdave

Andrew Hunt

Page 174: O Pensamento Ágil

Arie van Bennekum

@WardCunningham

@TotherAlistair

Page 175: O Pensamento Ágil

@marick

@jimhighsmith

@unclebobmartin

Page 176: O Pensamento Ágil

@RonJeffries

Mike Beedle

@JonKernPA

Page 177: O Pensamento Ágil

Valoreshttp://agilemanifesto.org

Page 178: O Pensamento Ágil

Indivíduos e interação entre elesprocessos e feramentas

mais que

Page 179: O Pensamento Ágil

Software funcionando

mais que

documentacao abrangente

Page 180: O Pensamento Ágil

Colaboração com o cliente

mais que

negociacao de contratos

Page 181: O Pensamento Ágil

Responder a mudanças

mais que

seguir um plano

Page 182: O Pensamento Ágil

Princípioshttp://agilemanifesto.org

Page 183: O Pensamento Ágil

Nossa maior prioridade é satisfazer o cliente, através

de entregas rápidas e contínuas gerando valor

ao software.

1

Page 184: O Pensamento Ágil

Receber bem as mudanças dos requisitos, mesmo em

estágios tardios do desenvolvimento.

2

Page 185: O Pensamento Ágil

Trabalhando para entregar software, em intervalos de

2 semanas até 2 meses

3

Page 186: O Pensamento Ágil

Empresários e desenvolvedores devem

trabalhar juntos diariamente durante todo

o projeto.

4

Page 187: O Pensamento Ágil

Construa projetos com indivíduos motivados, dê-

lhes o ambiente e o suporte que precisam, e confie neles para ter o

trabalho realizado

5

Page 188: O Pensamento Ágil

O método mais eficiente e efetivo de transmitir

informação para a equipe de desenvolvimento está na conversa face-a-face

6

Page 189: O Pensamento Ágil

Software funcionando é a principal medida para o

progresso

7

Page 190: O Pensamento Ágil

Processos ágeis promovem o desenvolvimento

sustentável.

8

Page 191: O Pensamento Ágil

Atenção contínua para uma excelência técnica e um bom design aumentam

a agilidade

9

Page 192: O Pensamento Ágil

Simplicidade – a arte de maximizar o valor do trabalho não feito – é

essencial

10

Page 193: O Pensamento Ágil

As melhores arquiteturas, requisitos, e design

emergem a partir de equipes auto-organizadas

11

Page 194: O Pensamento Ágil

Em intervalos regulares, as equipes devem refletir sobre

como tornaram-se mais efetivas, em seguida aprimorar e ajustar de acordo com seu

comportamento.

12

Page 195: O Pensamento Ágil

Scrum

Page 196: O Pensamento Ágil
Page 197: O Pensamento Ágil

ScrumSCRUM

Page 198: O Pensamento Ágil
Page 199: O Pensamento Ágil
Page 200: O Pensamento Ágil

CERIMÔNIAS

Sprint Planning

Sprint Review

Retrospectiva

Daily Scrum

Estimation Meeting

Page 201: O Pensamento Ágil

ESTIMATION MEETING

Page 202: O Pensamento Ágil

PRODUCT BACKLOG

Page 203: O Pensamento Ágil

USER STORIES

Page 204: O Pensamento Ágil

USER STORIES

Cadastro de e-mail na Newsletter

Como: ClienteEu: Cadastro minha conta de e-mail na newsletter Para: Receber informações do Fornecedor

3

Pronto

- E-mail do cliente cadastrado corretamente no banco- Newsletter enviada ao e-mail cliente na publicação- Newsletter recebida corretamente no e-mal do cliente

Page 205: O Pensamento Ágil

Planning Poker

Page 206: O Pensamento Ágil
Page 207: O Pensamento Ágil

SPRINT PLANNING

Page 208: O Pensamento Ágil

SPRINT BACKLOG

Page 209: O Pensamento Ágil

TAREFAS

Page 210: O Pensamento Ágil

KAN-BAN

Page 211: O Pensamento Ágil
Page 212: O Pensamento Ágil

SPRINT BURNDOWN

Page 213: O Pensamento Ágil

DAILY SCRUM

Page 214: O Pensamento Ágil

DAILY SCRUM

• O que fez desde a última reunião?

• O que vai fazer até a próxima?

• Há algum impedimento?

Page 215: O Pensamento Ágil

SPRINT REVIEW/ DEMO

Page 216: O Pensamento Ágil

SPRINT REVIEW / DEMO

Page 217: O Pensamento Ágil

RETROSPECTIVA

Page 218: O Pensamento Ágil

RETROSPECTIVA

Page 219: O Pensamento Ágil

SE ADAPTE!“Não é o mais forte das espécies que sobrevive, nem o mais inteligente, mas o mais adaptável às mudanças.”

Charles Darwin

Page 220: O Pensamento Ágil
Page 221: O Pensamento Ágil

!

Page 222: O Pensamento Ágil

Agile Is Dead (Long Live Agility)http://pragdave.me/blog/2014/03/04/time-to-kill-agile/

The word “agile” has been subverted to the point where it is effectively meaningless (…)

“Do Agile Right” is like saying “Do Orange Right.”

Let’s abandon the word agile to the people who don’t do things.

• Find out where you are. • Take a small step towards your goal. • Adjust your understanding based on what you learned. • Repeat

Page 223: O Pensamento Ágil

http://mikehadlow.blogspot.co.uk/2014/03/coconut-headphones-why-agile-has-failed.html

Why Agile has Failed

If your role is simply asking for estimates and enforcing the agile rituals: stand-ups, fortnightly sprints,

retrospectives; then you are an impediment rather than an asset to delivery.

(…) over the decade (…), agile has come to mean ‘management agile’

In the meantime, the word ‘agile’ has become so abused, that we should stop using it

Page 224: O Pensamento Ágil
Page 225: O Pensamento Ágil

Coding Dojo

Page 226: O Pensamento Ágil
Page 227: O Pensamento Ágil
Page 228: O Pensamento Ágil
Page 229: O Pensamento Ágil