Tecnologias Atuais de C Desenvolvimento de Software C E ?· C C E 3/72 Desenvolvimento Ágil Bibliografia…

Embed Size (px)

Text of Tecnologias Atuais de C Desenvolvimento de Software C E ?· C C E 3/72 Desenvolvimento Ágil...

C

C

E

Tecnologias Atuais de Desenvolvimento de Software

Desenvolvimento gil Prof. Luiz Antnio lpereira@uninet.com.br

C

C

E

2/72

Desenvolvimento gil Agenda

Bibliografia Bsica

Motivao

Fundamentos

XP

C

C

E

3/72

Desenvolvimento gil Bibliografia Bsica

Engenharia de Software; Roger S. Pressman, 5a. Edio, 2002.

Extreme Programming Explained. Embrace Change; Kent Beck, 1999.

Planning Extreme Programming; Kent Beck and Martin Fowler; Addison Weley; 2000.

Extreme Programming Explained. Embrace Change (2nd Edition); Kent Beck & Cynthia Andres, 2004.

Agile Project Management with Scrum; Ken Schwaber; Microsoft Press, 2004.

Google.

C

C

E Desenvolvimento gil

Agilidade refere-se (*)

Velocidade das operaes que ocorrem nas organizaes;

Velocidade nas respostas aos clientes;

Tempo reduzido de ciclo.

4/87

(*)http://ccs.mit.edu/21c/iokey.html

C

C

E

5/72

Desenvolvimento gil Motivao

Contexto tpico de desenvolvimento de S/W:

Negcio no bem conhecido e/ou dinmico (necessidade constante de manuteno evolutiva e adaptativa);

Documentao externa permanece desatualizada em boa parte do ciclo de desenvolvimento;

As manutenes so feitas com base no cdigo (ningum consulta/atualiza a documentao externa);

Necessidade de disponibilidade rpida de cdigo;

Continua...

C

C

E

6/72

Desenvolvimento gil Motivao

Contexto tpico de desenvolvimento de S/W (cont.):

Desenvolvimento centrado no cdigo;

Demanda por maiores nveis de qualidade do produto (qualidades externa e interna);

Se h processo, ele rgido e burocratizado;

Continua...

C

C

E

7/72

Desenvolvimento gil Motivao

Contexto tpico de desenvolvimento de S/W (cont.):

Assunes clssicas:

Usurios especificam exatamente o que querem;

Desenvolvedores entregam o que os usurios especificaram.

A situao real tpica:

Usurios no sabem o que querem;

Desenvolvedores no entregam o que prometeram.

C

C

E

8/72

Desenvolvimento gil Motivao

Algumas constataes importantes:

A entrega de software em prazos e custos

estabelecidos quase nunca conseguida;

Excesso de formalismo nos modelos de

processo propostos nos ltimos 30 anos;

Desenvolvimento de software arriscado e

difcil de ser gerenciado.

Continua...

C

C

E

9/72

Desenvolvimento gil Motivao

Continua...

Comparativo dos Relatrios CHAOS Report

16

27

26

28

34

29

53

33

46

49

51

53

46

44

31

40

28

23

15

18

19

24

35

32

0% 20% 40% 60% 80% 100%

1994

1996

1998

2000

2002

2004

2006

2008

Bem Sucedidos

Comprometidos

Fracassados

Fonte: Relatrio CHAOS Summary 2009

C

C

E

10/72

Desenvolvimento gil Motivao

Algumas constataes importantes (cont.):

Planejamento das etapas fundamental para a execuo/construo de algo;

Uso de mtodos conhecidos e aprovados tambm uma medida efetiva;

Idem com relao ao controle constante do produto e do processo em cada etapa do projeto.

C

C

E

11/72

Desenvolvimento gil Motivao

Necessita-se de novas metodologias que, dentre outras coisas:

Tratem adequadamente requisitos vagos e mutantes;

Mantenham a liberdade necessria para que os programadores trabalhem de forma efetiva e prazerosa;

Produzam software de qualidade;

Diminuam os encargos da equipe com documentao;

Mantenham as expectativas dos usurios atendidas e em nveis realizveis;

Mantenham os projetos gerenciveis;

Tenham base cientfica.

C

C

E

12/72

Desenvolvimento gil Fundamentos

Metodologias geis focam em:

Reduo dos custos de mudanas nos requisitos;

Entrega do sistema em pequenas liberaes:

O sistema no fica pronto s no final do prazo...

... O sistema est pronto ao longo do prazo.

Metodologias geis propem desenvolvimento de software de forma mais

rpida, porm com qualidade.

C

C

E

13/72

Desenvolvimento gil Fundamentos

Metodologias geis:

Movimento iniciado por programadores experientes e consultores em desenvolvimento de software;

Questionam e se ope a uma srie de mitos/prticas adotadas em abordagens tradicionais de Engenharia de Software e Gerncia de Projetos.

C

C

E

14/72

Desenvolvimento gil Fundamentos

Manifesto gil (*):

Assinado por 17 desenvolvedores (Kent Beck et al) em Utah EUA - em fevereiro de 2001.

Descreve a essncia de um conjunto de abordagens para desenvolvimento de software criadas ao longo da ltima dcada.

(*)http://agilemanifesto.org

C

C

E

15/72

Desenvolvimento gil Fundamentos

Manifesto gil Assunes:

Indivduos e interaes so mais importantes que processos e ferramentas;

Software funcionando mais importante que documentao completa e detalhada;

Colaborao com o cliente mais importante que (re)negociao de contratos;

Adaptao a mudanas mais importante que seguir o plano inicial.

C

C

E

16/72

Desenvolvimento gil Fundamentos

Manifesto gil - Objetivos:

Satisfazer o cliente, entregando, rapidamente e com freqncia, sistemas com algum valor.

Entregar verses funcionais em prazos curtos;

Estar preparado para mudanas de requisitos;

Fazer com que o pessoal de negcios e desenvolvedores trabalhem juntos;

Trocar informaes atravs de conversas diretas, face-to-face.

C

C

E

17/72

Desenvolvimento gil XP

XP:

(Breve) Introduo

O foco nos riscos

O que

Custos das modificaes e correes de rumo

Valores, princpios e prticas da XP

C

C

E

18/72

Desenvolvimento gil XP Introduo

XP = Extreme Programming;

Metodologia de desenvolvimento de software sendo aperfeioada nos ltimos anos(*);

As prticas adotadas so as melhores prticas de engenharia de software levadas a nveis extremos;

Originou-se das experincias de Kent Beck, Ward Cunningham e Ron Jeffries (tambm signatrios do Manifesto gil) no projeto C3 (Chrysler, com Smalltalk e GemStone), 1996-1999.

(*) Correspondendo s edies 1 e 2 do livro Extreme Programming Explained: Embrace Change

C

C

E

19/72

Desenvolvimento gil XP O foco nos riscos

Riscos so vistos como o problema bsico Prazo de entrega no cumprido (projetos se

tornam potencialmente cancelveis);

Software posto em produo mas, ao deteriorar, os custos de manuteno so altos;

Software posto em produo com erros e os custos de manuteno corretiva so altos;

Necessidades reais no atendidas (requisitos foram ignorados ou mal entendidos);

Rotatividade da equipe (por desinteresse) X produtividade.

C

C

E

20/72

Desenvolvimento gil XP O foco nos riscos

Como XP trata os riscos Prazo de entrega no cumprido:

Nmero maior de entregas (entregas parciais);

Ciclos de desenvolvimento menores gerncia do projeto mais fcil;

Funcionalidades de maior prioridade para o usurio so implementadas antes;

Funcionalidades de maior prioridade, implementadas antes, cativam os usurios pois satisfazem mais imediatamente suas principais necessidades;

Se houver diminuio do escopo para reduo de prazo, as funcionalidades eliminadas tendero ser as menos importantes (pois so as que ficam para o final).

Continua...

C

C

E

21/72

Desenvolvimento gil XP O foco nos riscos

Como XP trata os riscos (cont.) Software deteriorado e altos custos de

manuteno: Modificaes feitas com maior freqncia;

Testes aplicados a cada modificao;

A XP sempre mantm o sistema em excelente condio (Beck);

Muitos erros no software em produo e altos custos de manuteno corretiva:

Testes so executados a cada alterao;

Testes envolvem a participao dos usurios (testando as funcionalidades)

Continua...

C

C

E

22/72

Desenvolvimento gil XP O foco nos riscos

Como XP trata os riscos (cont.)

Necessidades reais no atendidas:

Usurio convidado a fazer parte do time;

Especificao do projeto continuamente refinada e, com isso, permite-se um entendimento mais uniforme das necessidades do usurio por parte de todos os integrantes da equipe.

Continua...

C

C

E

23/72

Desenvolvimento gil XP O foco nos riscos

Como XP trata os riscos (cont.) Rotatividade da equipe (por desinteresse) X