• Nenhum resultado encontrado

Métodos Ágeis de Desenvolvimento de Software

N/A
N/A
Protected

Academic year: 2021

Share "Métodos Ágeis de Desenvolvimento de Software"

Copied!
5
0
0

Texto

(1)

Métodos Ágeis

de Desenvolvimento de

Software

Engenharia de Software Profa. Elisa Yumi Nakagawa 2. Semestre 2005

Material inicialmente elaborado por André Figueiredo e mantido por pesquisadores e colaboradores do Labes.

Conteúdo

 Porque o desenvolvimento de software é uma atividade altamente complexa?

 Como resolver esse problema?

 Porque os processos atuais, algumas vezes, falham?

 O que são os métodos ágeis?

 The Manifesto For Agile Software Development  Principais métodos

 Características comuns

 Domínio de aplicação de métodos ágeis

Porque criar software

é uma atividade complexa?



Alto índice de incerteza

Ferramenta volátil (tecnologia) Objetivo incerto (escopo) Tarefa envolvendo criatividade Dificuldade inerente



Totalmente dependente de pessoas

Capacidade individual

Capacidade de trabalho em grupo



No Silver Bullet

Como tentamos

resolver esse problema?

Do nada (anos 50 e 60) ...

Desenvolvimento era, originalmente, uma atividade solitária e “simples” (gerenciável por uma única pessoa)

... Para o monumental (anos 70, 80 e 90) ...

Crise do software  Aplicação de métodos, técnicas, ferramentas e processos de engenharia para o desenvolvimento de software

... Para o ágil (hoje)

Necessidade de entrega rápida e flexibilidade

Tipos de Processo

 Existem dois tipos básicos de processos [Schwaber]

Processos Definidos

Dado um conjunto de entradas, pode-se definir as saídas com

razoável precisão

Controle feito com base no acompanhamento de um planejamento

inicial

Processos Empíricos

Considera a mudança e a incerteza como inevitável Controle é feito por acompanhamento freqüente e pequenos

ajustes

 métodos atuais usam processos do tipo Definido, que não se aplicam “bem” ao desenvolvimento de todo tipo de software.

O que são Métodos Ágeis?



Nova safra de métodos baseados em

processos Empíricos.



Resultam de aproximadamente 10 anos

de “pesquisa de campo” de seus

principais mentores e líderes.



Formalização com a publicação do

“Manifesto for agile development”, em

fevereiro de 2001

(2)

Manifesto for agile development

We are uncovering better ways of developing software by doing it and helping others do it. Through this work, we have come to value:

Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan

That is, while there is value in the items on the right, we value the items on the left more. http://www.agilemanifesto.org

Índice de sucesso



Gráfico complexidade X índice de

sucesso (Scrum)

Reação flexível diante da mudança aumenta a probabilidade de sucesso.

Complexidade baixa intermediária alta 0,1

0,9

métodos tradicionais métodos ágeis

Principais métodos, processos

ou abordagens



Extreme Programming (XP)



Feature Driven Development (FDD)



Scrum



Crystal Methods

 Open Source Development Process



Adaptive Software Development (ASD)



Dynamic System Development Method

(DSDM)



Agile Modeling (AM)



Lean Development (LD)

Extreme Programming - XP

 Práticas

Jogo do planejamento

Releases pequenos e integração contínua

Metáforas Design simples

Refactorings

Test first programming

Programação em pares Posse coletiva do código 40 horas por semana Cliente é parte da equipe

Padrões de código (Coding Standard)

Extreme Programming - XP



Princípios e valores

Comunicação Simplicidade Feedback Coragem Qualidade

Extreme Programming - XP



Principais líderes

Kent Beck Ward Cunninghan Martin Fowler Ron Jeffries 

Contribuições

Mais popular e que mais despertou interesse Mais estável para domínios específicos (times

(3)

Feature Driven Development

-FDD



Conceitos & Práticas

Cinco processos básicos Construa um modelo global

Crie um lista de características/funcionalidades

(features)

Planeje por características/funcionalidades Modele por características/funcionalidades Implemente por características/funcionalidades

Feature Driven Development

-FDD

Feature Driven Development

-FDD



Principais líderes

Peter Coad Jeff DeLuca



Contribuições

Processo definido e repetível

Foco explícito em modelagem (global e por

características/funcionalidade)

Escalabilidade

Scrum



Conceitos & Práticas

Scrum

 Conceitos & Práticas

Abordagem usada para gerenciar o processo de

desenvolvimento de software em um ambiente volátil

Abordagem empírica baseada na flexibilidade, adaptabilidade e

produtividade

Os desenvolvedores definem as práticas, métodos e técnicas a

serem usadas no processo de implementação

Envolve freqüentes atividades de gerenciamento que têm por

objetivo identificar qualquer deficiência ou impedimento no processo de desenvolvimento ou nas práticas usadas.

Scrum



Principais líderes

Jeff Sutherland Ken Schwaber Mike Beedle 

Contribuições

Reuniões diárias para coordenação e

colaboração

Auxilia a focar nas principais atividades de

(4)

Crystal Methods

 Principais líderes

Alistair Cockburn

 Contribuições

Família que inclui diferentes métodos, dos quais se deve selecionar o mais adequado para cada projeto

Além dos métodos, a abordagem Crystal inclui princípios para amarrar esse métodos de forma a sintonizá-los para um determinado projeto Cada método tem uma cor indicando a “dureza”

do método

Crystal Methods

Contribuições

Crystal sugere que se escolha a cor do método de acordo com o tamanho e criticalidade do projeto

Projetos grandes precisam de mais coordenação e métodos mais duros do que projetos pequenos

Os métodos da família Crystal podem ser usados com qualquer prática de

desenvolvimento, ferramenta, ou produto de trabalho

Características Comuns

 Orientados a funcionalidades  Método evolutivo e iterativo  Foco na geração de código  Arquitetura/Modelo evolutível  Ciclos rápidos

 Priorização por valor de negócio  Testes unitários e revisão de código  “Equipes poderosas”

Autonomia para decisão e auto-organização

 Cliente altamente participativo

Domínio de aplicação de

métodos ágeis



De maneira geral, os métodos ágeis são

melhor aplicados em projetos com uma ou

mais das seguintes características:

Alta complexidade Prazos apertados

Requisitos voláteis ou pouco conhecidos Objetivos de negócio instáveis

Preferencialmente equipes pequenas e

médias

Iniciativas de uso dos métodos

ágeis com outros processos

 A Rapid Development Process with UML – Armano, G.; Marchesi, M.A., ACM SIGAPP Applied Computing Review, New York, v.8, pp4-11, 2000

 Making RUP Agile – Hirsch, M., in OOPSLA2002, pp1-8  Applying Agile Methods in Rapidly Changing

Environments – Kutschera, P.; Scäfer, S., jeckstein.com/papers/ Agile%20Methods%20-%20Steffen%20Schaefer%20&%20Peter%20Kutschera. pdf  …..

Bibliografia

Livros

Ambler, Scott; Agile Modeling: Efective practices for Extreme Programming and the Unified Process; 2002

Beck, Kent; Extreme Programming Explained: Embrace change; 2000; Addison-wesley Beck, Kent and Martin Fowler; Planing XP; 2001;

Addison-wesley

Coad, Peter and Eric Lefebvre and Jeff DeLuca; Java modeling in color with UML; 1999; Prentice Hall

Scwaber, Ken and Mike Beedle; Agile Software Development with scrum; 2002; Prentice Hall

(5)

Bibliografia

Livros

Fowler, Martin; Refactoring; Dez/2000; Software Development

Fowler, Martin; Refactoring; Dez/2000; Software Development

Highsmith, Jim; Agile Software Development Ecosystems; 2002; Addison-Wesley

Cockburn, Alistair; Agile Software Development; 2002; Addison-Wesley

Cockburn, Alistair; Surviving OO projects; 2000; Addison-Wesley

Bibliografia



Artigos

Raymond, Eric Steven; The cathedral and the

bazaar; 1997; Linux Congress

Fowler, Martin; Put your process on a Diet;

Dez/2000; Software Development

Brooks, Frederick; No Silver Bullet; 1986;

Computer

Schwaber, Ken; The Agile Alliance

Revolution; Maio/2001

Bibliografia



URL´s

www.controlcaos.com www.dsdm.org www.martinfowler.com www.crystalmethodologies.org www.agilemanifesto.org www.xprogramming.com www.xispe.com.br/index.html www.agilemodeling.com

Referências

Documentos relacionados

Em relação às substâncias benzeno e benzopireno, assinale a única alternativa CORRETA. d) Ambos são hidrocarbonetos que apresentam apenas carbonos secundários. Como

Verifique o status de controle e põe o conjunto no modo de manutenção Substitua o cartão-matriz.. Restaure o estado

Crie um arquivo add_node.json com somente os detalhes do server novo do cálculo a ser adicionado.  Assegure-se de que o número do índice para o server novo do OSD-cálculo não

Local de realização da avaliação: Centro de Aperfeiçoamento dos Profissionais da Educação - EAPE , endereço : SGAS 907 - Brasília/DF. Estamos à disposição

1. Determinar a demanda em cada período. Determinar a capacidade em horário normal, com horas extras e fazendo subcontratações em cada período. Encontrar os custos da mão-de-obra,

Ainda segundo Gil (2002), como a revisão bibliográfica esclarece os pressupostos teóricos que dão fundamentação à pesquisa e às contribuições oferecidas por

[r]

A revisão realizada por ERDMAN (1988a) mostrou que, nos dezessete experimentos em que a silagem de milho foi a única fonte de volumoso oferecida a vacas leiteiras no início