Introdução a Métodos Ágeis -...

Preview:

Citation preview

IntroduçIntrodução aão aMétodos ÁgeisMétodos Ágeis

Curso de Verão 2008 - IME/USPwww.agilcoop.org.br

Danilo Sato Mariana Bravo

2Copyleft Agilcoop 2008

Tradicional ou Ágil?

3Copyleft Agilcoop 2008

Tradicional ou Ágil?

Forecast-drivenvs

Feedback-driven

4Copyleft Agilcoop 2008

O Que é Sucesso?

Praz

o Escopo

Orçamento

5Copyleft Agilcoop 2008

CHAOS Report

• Resultado dos projetos (2003):

15%

34%51%com

problemas

sucesso

falham

6Copyleft Agilcoop 2008

Qual software?

64%Funcionalidades

nunca ouraramente

utilizadas

Jim Johnson, 2000

7Copyleft Agilcoop 2008

O Que é Sucesso?

Praz

o Escopo

Orçamento

Ser Realista?

?Retorno de Investimento?

Atendernecessidades?

Qualidade?Equipe??

??

8Copyleft Agilcoop 2008

Um pouco de história…

Requisitos

Análise

Construção

Arquitetura eDesign

Testes

Produção

1970

9Copyleft Agilcoop 2008

Analogias…

Engenharia de Software ≠ Engenharia CivilC

usto

da

mud

ança

Manutenção Constante!

10Copyleft Agilcoop 2008

Analogias…

Engenharia de Software ≠ Engenharia Civil

Programar é fazer Design!

11Copyleft Agilcoop 2008

E o RUP?

“Ninguém segue o modelo cascata”

Incepção

Elaboração

Transição

Construção

12Copyleft Agilcoop 2008

Jacobson, agosto/2007

13Copyleft Agilcoop 2008

Como extrair valor de TI?

• Processos tradicionais:

tempo-$$?

+$???

Gasto: -30$ 0$ 0$ 0$ 0$ 0$

Lucro: 0$ 0$ 0$ 0$ 0$ 20$

Saldo: -30$ -30$ -30$ -30$ -30$ -10$

14Copyleft Agilcoop 2008

Como extrair valor de TI?

• Métodos Ágeis:

tempo

Gasto: -5$ -5$ -5$ -5$ -5$ -5$

Lucro: 0$ 2$ 4$ 9$ 15$ 20$

Saldo: -5$ -8$ -9$ -5$ 5$ 20$

15Copyleft Agilcoop 2008

Processos tradicionais:

Valor = software funcionando

O que é valor?

16Copyleft Agilcoop 2008

Ou seja...

Software funcionandoé mais importante que

documentação abrangente

17Copyleft Agilcoop 2008

Então não documenta?• Documentação é uma excelente forma de armazenar o histórico de

decisões de um projeto. Quando algo dá errado, é importante poderrastrear tais decisões para descobrir o que deu errado. Além disso, umdocumento é escrito numa linguagem muito mais formal e, portanto, maiscorreta, evitando ambigüidades de sentido. É importante manter toda adocumentação sincronizada com o resto do projeto. Por exemplo, umdocumento de design ou arquitetura do sistema precisa refletir arealidade implementada. Outro tipo de documentação comumente escritaao desenvolver software como um produto, é um manual técnico ou guiade uso para o usuário final. No entanto, é preciso lembrar que produzirdocumentação é uma tarefa que exige esforço e, portanto, toma tempoda equipe. A quantidade de tempo gasta produzindo documentaçãodesnecessária é desperdício para o projeto e para o cliente. A equipedeve colaborar com o cliente para determinar o real valor da produção deum documento, levando em conta pontos como custo, benefício,precisão, manutenção e linguagem utilizada...

Entenderam?

18Copyleft Agilcoop 2008

Comunicação

• “Telefone sem fio”

• “Documento sem fio”

A B

A ?

19Copyleft Agilcoop 2008

Documente o necessário

• Bom senso:

– O que a equipe julgar necessário

– O que o “dono” do projeto exige

• Tratada como funcionalidade

20Copyleft Agilcoop 2008

Então...

Indivíduos e interaçõessão mais importantes queprocessos e ferramentas

21Copyleft Agilcoop 2008

Então não usa processos eferramentas?

22Copyleft Agilcoop 2008

Fazer certo o software

Carne assada evagem com bacon,

uma delícia.Seguindo a receita vai

ficar muito gostoso!

Sem dúvida vai serum sucesso!!

23Copyleft Agilcoop 2008

Fazer o software certo

Voilá!Mas eu sou

vegetariana!!

24Copyleft Agilcoop 2008

E como fazer o software certo?

Enxergue pelos olhos do cliente!

25Copyleft Agilcoop 2008

Falta de Feedback

Por enquantotudo bem

26Copyleft Agilcoop 2008

Isto é...

Colaboração com o clienteé mais importante que

negociação de contratos

27Copyleft Agilcoop 2008

Então não tem contrato?

• Contratos “tradicionais” incentivamcomportamentos indesejados

• Faça um contrato de benefício mútuo

28Copyleft Agilcoop 2008

Contrato de Escopo Negociável

• Cliente:– Tem a oportunidade de mudar de idéia– Pode interromper o desenvolvimento a

qualquer momento– Custo e Prazo fixos

• Desenvolvedores:– Motivados a produzir o melhor sistema– Receita previsível

29Copyleft Agilcoop 2008

Se não houver interação...

• Perguntas:– Faça sua lista de compras de 2009– Quem vai ganhar o campeonato de 2010?– Quanto tempo demora para pedalar até o RJ?

• Somos ruins para planejar a longo prazo!

30Copyleft Agilcoop 2008

Portanto...

Adaptação a mudançasé mais importante que

seguir um plano

31Copyleft Agilcoop 2008

Então não planejamos?

• Mudando um pouco a história:– Faça a lista de compras para mês/semana

que vem.– Quem vai ganhar o jogo do fim de semana?– Quanto tempo demora para pedalar de casa

até o trabalho?

32Copyleft Agilcoop 2008

Pelo contrário...

Planejamos

SEMPRE

33Copyleft Agilcoop 2008

Pêndulo do Planejamento

• No mundo não-Ágil:

NenhumPlano

Excesso dePlanos

Planejar sempre, em ciclos pequenos

34Copyleft Agilcoop 2008

Planejamento em Ciclos

Dia

Iteração

Release W

S

A

O

R

F

E

T

A

35Copyleft Agilcoop 2008

Novo conceito: Pronto

Seu quartoestá pronto!

? ? ?

36Copyleft Agilcoop 2008

Guiado por Feedback

37Copyleft Agilcoop 2008

Retrospectivas

38Copyleft Agilcoop 2008

Como o projeto atrasou 2 anos?

• 80% pronto

Estimativas não são compromissos!

Já está chegandoem casa?

Faltam só 2 quarteirões

39Copyleft Agilcoop 2008

Área de Trabalho Informativa

40Copyleft Agilcoop 2008

Qualidade leva à agilidade

“Work smarter, not harder”-- Tom de Marco, “Slack”

“Inspecionar para previnir defeitos é bom;Inspecionar para encontrar defeitos édesperdício”-- Shigeo Shingo, “The Toyota Production System”

Qualidade é sempre alta!

41Copyleft Agilcoop 2008

Prevenindo defeitos

• Auto-inspeção (mistake proof)

Testes são a especificação!

42Copyleft Agilcoop 2008

Constante manutenção

• Evitando débito técnico:– Refatoração e Design Simples

Complexidade é o inimigo invisível!

43Copyleft Agilcoop 2008

Quando não refatora….

44Copyleft Agilcoop 2008

Onde começar?

• Comece onde está• Use Retrospectivas• Procure desperdícios

45Copyleft Agilcoop 2008

Recapitulando…

• Manifesto Ágil:– Indivíduos e interações são mais

importantes que processos e ferramentas– Software funcionando é mais importante

que documentação completa e detalhada– Colaboração com o cliente é mais

importante que negociação de contratos– Adaptação a mudanças é mais importante

que seguir um plano

46Copyleft Agilcoop 2008

Metodologias

• XP• Scrum• Lean• Crystal• FDD• …

47Copyleft Agilcoop 2008

Metodologias

A melhor metodologia é asua metodologia

48Copyleft Agilcoop 2008

Conclusão

Não seja um Lemming!

49Copyleft Agilcoop 2008

Dúvidas?

agilcoop@agilcoop.org.br

?www.agilcoop.org.br

Recommended