50
Métodos ágeis de desenvolvimento de software Mauricio Aniche [email protected] @mauricioaniche

Métodos Ágeis de Desenvolvimento de Software: Uma introdução

Embed Size (px)

DESCRIPTION

Introdução aos Métodos Ágeis de Desenvolvimento de Software. Palestra dado no evento da Radix, em 2012.

Citation preview

Page 1: Métodos Ágeis de Desenvolvimento de Software: Uma introdução

Métodos ágeis de desenvolvimento

de softwareMauricio Aniche

[email protected]@mauricioaniche

Page 2: Métodos Ágeis de Desenvolvimento de Software: Uma introdução
Page 3: Métodos Ágeis de Desenvolvimento de Software: Uma introdução

Uma enqueterápida!

Page 4: Métodos Ágeis de Desenvolvimento de Software: Uma introdução

Qual a única certeza

que nós temos sobre o processo

de desenvolvimento

de software?

Page 5: Métodos Ágeis de Desenvolvimento de Software: Uma introdução

O software vai mudar!

Page 6: Métodos Ágeis de Desenvolvimento de Software: Uma introdução

Quem é quejá viu isso?

Page 7: Métodos Ágeis de Desenvolvimento de Software: Uma introdução

Cliente:Tô feliz, vou receber

software!

Page 8: Métodos Ágeis de Desenvolvimento de Software: Uma introdução

Ah, legal essa especificação

de 500 páginas que você me

mandou!Vocês

realmente são sérios!

Page 9: Métodos Ágeis de Desenvolvimento de Software: Uma introdução

Pode cortarmeus pulsos,prometo que

nãovou mudar

nada!

Page 10: Métodos Ágeis de Desenvolvimento de Software: Uma introdução

puxa, esse

monte de bonequinho é meu sistema? Já posso

ver então?

Page 11: Métodos Ágeis de Desenvolvimento de Software: Uma introdução

corre que tá

atrasado!

Page 12: Métodos Ágeis de Desenvolvimento de Software: Uma introdução

teste? pula, dá trabalho!

Page 13: Métodos Ágeis de Desenvolvimento de Software: Uma introdução

não existe!ferrou!

Page 14: Métodos Ágeis de Desenvolvimento de Software: Uma introdução

Levantamento de Requisitos

Tentamos prever o futuro (Gantt Chart??)

Cliente pede tudo!

Assina com o sangue

Não sabe bem o que precisa!

Page 15: Métodos Ágeis de Desenvolvimento de Software: Uma introdução

Design

Arquiteto astronauta

Um monte de bonequinho...

Big Design Up-Front

Page 16: Métodos Ágeis de Desenvolvimento de Software: Uma introdução

Implementação

Sempre atrasado

Gambiarra

Estimativas sempre erradas

Code Monkey

Page 17: Métodos Ágeis de Desenvolvimento de Software: Uma introdução

Qual o melhor goleiro do mundo?

Ah, não há incerteza nenhuma nessa pergunta!

topete? meu

deus...

Page 18: Métodos Ágeis de Desenvolvimento de Software: Uma introdução

EstimativasQual a área do Brasil?

Qual a vazão de Foz do Iguacú?Quanto tempo você gasta pra fazer um

ERP?

Por que estimativas viram compromissos?

Na prática: Um engana o outro! (Roubo ou lucro?)

Page 19: Métodos Ágeis de Desenvolvimento de Software: Uma introdução

Teste

Não precisa, software raramente dá pau! ;)

Na minha máquina funciona!

O cliente não testa?

EUA gastam ~60 bilhões de dólares com erros de software (NIST, 2002)

Page 20: Métodos Ágeis de Desenvolvimento de Software: Uma introdução

Operação

Nada funciona em produção

Não atende as necessidades do cliente (pois elas já mudaram...)

Page 21: Métodos Ágeis de Desenvolvimento de Software: Uma introdução

Fábrica de software (WTF?)

Produzem a mesma coisa, ganhos na escala

Eu quero é adaptabilidade!

Page 22: Métodos Ágeis de Desenvolvimento de Software: Uma introdução

O amor

O analista odeia o programador

O programador odeia o arquiteto

O arquiteto pensa que é Deus

O tester odeia o programador

Mas eles se unem sim: pra odiar o cliente!

Page 23: Métodos Ágeis de Desenvolvimento de Software: Uma introdução

Cliente do mal

Mas o culpado é o meu cliente!

Ele nunca sabe o que quer!

Não é não, nós que somos incompetentes mesmo!

Page 24: Métodos Ágeis de Desenvolvimento de Software: Uma introdução

A coisa tá feia...

Page 25: Métodos Ágeis de Desenvolvimento de Software: Uma introdução

Na prática...

Page 26: Métodos Ágeis de Desenvolvimento de Software: Uma introdução

Algumas coisas nunca deveriam ter aparecido...

Page 27: Métodos Ágeis de Desenvolvimento de Software: Uma introdução

Winston Royce não merecia isso!

Page 28: Métodos Ágeis de Desenvolvimento de Software: Uma introdução

Manifesto Ágil

Page 29: Métodos Ágeis de Desenvolvimento de Software: Uma introdução

Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan

Page 30: Métodos Ágeis de Desenvolvimento de Software: Uma introdução

Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan

COMUNICAÇÃO

Page 31: Métodos Ágeis de Desenvolvimento de Software: Uma introdução

Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan

COMUNICAÇÃO

Page 32: Métodos Ágeis de Desenvolvimento de Software: Uma introdução

Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan

COMUNICAÇÃO

SER ENXUTO

Page 33: Métodos Ágeis de Desenvolvimento de Software: Uma introdução

Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan

COMUNICAÇÃO

SER ENXUTO

Page 34: Métodos Ágeis de Desenvolvimento de Software: Uma introdução

Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan

COMUNICAÇÃO

SER ENXUTO

CLIENTE NO TÁXI

Page 35: Métodos Ágeis de Desenvolvimento de Software: Uma introdução

Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan

COMUNICAÇÃO

SER ENXUTO

CLIENTE NO TÁXI

Page 36: Métodos Ágeis de Desenvolvimento de Software: Uma introdução

Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan

COMUNICAÇÃO

SER ENXUTO

CLIENTE NO TÁXI

ADAPTABILIDADE

Page 37: Métodos Ágeis de Desenvolvimento de Software: Uma introdução

Our highest priority is to satisfy the customerthrough early and continuous delivery

of valuable software.

Page 38: Métodos Ágeis de Desenvolvimento de Software: Uma introdução

Welcome changing requirements, even late in development. Agile processes harness change for

the customer's competitive advantage.

Page 39: Métodos Ágeis de Desenvolvimento de Software: Uma introdução

Deliver working software frequently, from a couple of weeks to a couple of months, with a

preference to the shorter timescale.

Page 40: Métodos Ágeis de Desenvolvimento de Software: Uma introdução

Business people and developers must work together daily throughout the project.

Page 41: Métodos Ágeis de Desenvolvimento de Software: Uma introdução

Build projects around motivated individuals. Give them the environment and support they need,

and trust them to get the job done.

Page 42: Métodos Ágeis de Desenvolvimento de Software: Uma introdução

The most efficient and effective method of conveying information to and within a development

team is face-to-face conversation.

Page 43: Métodos Ágeis de Desenvolvimento de Software: Uma introdução

Working software is the primary measure of progress.

Page 44: Métodos Ágeis de Desenvolvimento de Software: Uma introdução

Agile processes promote sustainable development. The sponsors, developers, and users should be able

to maintain a constant pace indefinitely.

Page 45: Métodos Ágeis de Desenvolvimento de Software: Uma introdução

Continuous attention to technical excellence and good design enhances agility.

Page 46: Métodos Ágeis de Desenvolvimento de Software: Uma introdução

Excelência técnica:- Testes Automatizados

- TDD- Integração contínua

- Programação Pareada- Refatoração

- Propriedade Coletiva do Código

Page 47: Métodos Ágeis de Desenvolvimento de Software: Uma introdução

Simplicity--the art of maximizing the amount of work not done--is essential.

Page 48: Métodos Ágeis de Desenvolvimento de Software: Uma introdução

The best architectures, requirements, and designs emerge from self-organizing teams.

Page 49: Métodos Ágeis de Desenvolvimento de Software: Uma introdução

At regular intervals, the team reflects on how to become more effective, then tunes and adjusts

its behavior accordingly.

Page 50: Métodos Ágeis de Desenvolvimento de Software: Uma introdução

OBRIGADO!

Mauricio [email protected]

@mauricioaniche

15% de desconto com o código“ANICHE15” em

casadocodigo.com.br