Desenvolvimento agil

22
Desenvolvimento Ágil de softwares • Bryan Ollivie [email protected] 1

Transcript of Desenvolvimento agil

Page 1: Desenvolvimento agil

Desenvolvimento Ágil de softwares

• Bryan Ollivie• [email protected]

1

Page 2: Desenvolvimento agil

INTRODUÇÃO

2

• Descasamento entre processos.• Herança da Revolução Industrial.• Sem sucesso no desenvolvimento de software• Engenharia de Software.• Realidade dinâmica e imprevisível.• Manifesto ágil.• Frameworks.• Utilização de XP e Grails.

Page 3: Desenvolvimento agil

DESENVOLVIMENTO DE SOFTWARE

3

Page 4: Desenvolvimento agil

DESENVOLVIMENTO DE SOFTWARE

4

• Crise do Software– Problemas

• Entregas fora do prazo• Orçamentos estourados• Desempenho insatisfatório

– Soluções• Desenvolver Padrões para os processos de desenvolvimento

Page 5: Desenvolvimento agil

METODOLOGIA TRADICIONAL

5

• Planeja e documenta todo o processo antes de começar a desenvolver.

• Permite uma comparação e repetição com dados obtidos em desenvolvimentos anteriores.

• Baixa interação com os clientes e Falta de flexibilidade para tratamento de falhas.

Page 6: Desenvolvimento agil

METODOLOGIA ÁGIL

6

• Metodologia Ágil (Agile Manifesto, 2001).

• Movimento iniciado por programadores experientes e consultores em desenvolvimento de software.

• Enfatizam adaptações rápidas a mudanças da realidade

• Criação da Aliança Ágil e o estabelecimento do “Manifesto Ágil”

Page 7: Desenvolvimento agil

MANIFESTO ÁGIL

7

• Manifesto Ágil (BECK et al, 2001)– Objetivo

• satisfazer o cliente entregando, rapidamente e com freqüência, sistemas com algum valor.

– Valores

• Indivíduos e Interações mais que Ferramentas e Processos

• Software funcionando mais que documentação abrangente.

• Colaboração com clientes mais que Negociação de Contratos.

• Responder a mudanças mais que Seguir um Plano.

Page 8: Desenvolvimento agil

ALGUNS MÉTODOS ÁGEIS

8

• ASD (Adaptative Software Development)

• FDD (Feature Driven Development)

• Crystal Family

• SCRUM

• XP (eXtreme Programming)

Page 9: Desenvolvimento agil

EXTREME PROGRAMMING (XP)

9

Page 10: Desenvolvimento agil

EXTREME PROGRAMMING (XP)

10

• O que é?“Uma disciplina de desenvolvimento de software

que aborda o risco em todas as etapas do processo de desenvolvimento” (BECK, 2000, p. 22)

• Iterações

• Conjunto de testes

• Possui valores e práticas

Page 11: Desenvolvimento agil

VALORES EM XP

11

“precisamos de algum parâmetro para saber se estamos indo no caminho certo”(BECK, 2000, p. 45).

• Norteiam o projeto

• Ajudam na tomada de decisão

• Base para as práticas

Page 12: Desenvolvimento agil

VALORES

12

• Comunicação

• Simplicidade

• Feedback

• Coragem

Page 13: Desenvolvimento agil

COMUNICAÇÃO

13

“Indivíduos e interações mais que processos e ferramentas” Manifesto Ágil(2001, sp).

• Cliente Presente

• Interação Cliente x Equipe

• Interação entre membros da equipe

Page 14: Desenvolvimento agil

SIMPLICIDADE

14

“45 por cento das funcionalidades encontradas em um sistema jamais são usadas”(JONHSON, 2002, sp).

• Foco em funcionalidades de valor

• Refatoração

• Facilitar manutenção e entendimento do código

Page 15: Desenvolvimento agil

FEEDBACK

15

“A comunicação entre o cliente e a equipe permite que todos os detalhes do projeto sejam tratados com a atenção e agilidade que merecem” (TELES, 2004, p. 22).

• Testes de funcionalidades

• Programação em par

Page 16: Desenvolvimento agil

CORAGEM

16

“quando combinada com comunicação, simplicidade, e feedback, a coragem se torna extremamente valiosa”(BECK, 2000, p. 49).

• Inovar

• Aceitar desafios

• Flexibilidade a mudanças

Page 17: Desenvolvimento agil

PRÁTICAS

17

Práticas

O jogo do planejamento Propriedade coletiva

Entregas frequentes Integração Contínua

Metáfora Semana de 40 horas

Projeto simples Cliente presente

Testes Padrões de codificação

Refatoração Programação em pares

Tabela 1: As doze práticas de XP

Page 18: Desenvolvimento agil

FRAMEWORKS DE DESENVOLVIMENTO ÁGIL

18

Page 19: Desenvolvimento agil

FRAMEWORKS

19

• Segundo Sauve(2007) um framework provê uma solução para uma família de problemas semelhantes.

Figura 5: Interseção de ProblemasFonte: (SAUVÉ, 2007, sp).

Page 20: Desenvolvimento agil

FRAMEWORKS ÁGEIS

20

• São chamados de frameworks ágeis todos os frameworks de programação que dão suporte ou se baseiam completamente nos princípios e valores propostos pelo manifesto ágil e na filosofia e costumes ágeis(Beck,2000)

• Incorporam as praticas de metodologias ágeis.

Page 21: Desenvolvimento agil

CARACTERÍSTICAS

21

• Alta produtividade• Facilidade no aprendizado• Reaproveitamento de código• Padrão MVC• Testes Automatizados• Repositórios

Page 22: Desenvolvimento agil

TECNOLOGIAS ATUAIS

22