Desenvolvimento agil

Preview:

Citation preview

Desenvolvimento Ágil de softwares

• Bryan Ollivie• bryanollivie@gmail.com

1

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.

DESENVOLVIMENTO DE SOFTWARE

3

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

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.

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”

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.

ALGUNS MÉTODOS ÁGEIS

8

• ASD (Adaptative Software Development)

• FDD (Feature Driven Development)

• Crystal Family

• SCRUM

• XP (eXtreme Programming)

EXTREME PROGRAMMING (XP)

9

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

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

VALORES

12

• Comunicação

• Simplicidade

• Feedback

• Coragem

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

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

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

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

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

FRAMEWORKS DE DESENVOLVIMENTO ÁGIL

18

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).

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.

CARACTERÍSTICAS

21

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

TECNOLOGIAS ATUAIS

22