O documento descreve vários métodos ágeis de desenvolvimento de software, incluindo RAD, DSDM, UP, RUP, XP, FDD, MSF e SCRUM. Estes métodos enfatizam a colaboração com o cliente, entregas frequentes e adaptação às mudanças.
2. MÉTODOS ÁGEIS
A origem dos métodos ágeis está ligada à instabilidade do ambiente
tecnológico e o fato de o cliente estar freqüentemente incapacitado de
definir as suas necessidades de maneira exaustiva no início do
projeto.
O termo “ágil” faz assim referência à capacidade de adaptação às
mudanças de contexto e as modificações de especificações que
intervêm durante o processo de desenvolvimento.
Em 2001,17 pessoas estabeleceram assim manifesto ágil cuja
tradução é a seguinte :
indivíduos e interações, mais do que processos e instrumentos
desenvolvimento de software em vez de documentação exaustiva
colaboração com o cliente em vez de negociação contratual
abertura à mudança em vez de seguir um plano rígido
Graças aos métodos ágeis, o cliente é inteiramente o piloto do seu
projeto e obtém muito rapidamente uma primeira produção do seu
software. Assim, é possível associar os utilizadores ao início do
projeto.
3. MÉTODOS ÁGEIS - RAD
O “método de desenvolvimento rápido de
aplicações” (em inglês Rapid Application
Development, ou RAD), definido por James
Martin no início dos anos 80, consiste num ciclo
de desenvolvimento curto baseado em 3 fases
(Enquadramento, Desenho e Construção) num
prazo ideal de 90 dias e 120 dias no máximo.
4. MÉTODOS ÁGEIS - DSDM
O método DSDM (Dynamic Software Development
Method) foi criado apoiando-se no método RAD a fim
de preencher algumas das suas lacunas,
nomeadamente oferecendo um plano que tem em
conta o conjunto do ciclo de desenvolvimento.
Os princípios fundadores do método DSDM são os seguintes:
Participação dos utilizadores
Um desenvolvimento iterativo e incremental
Uma freqüência de entrega elevada
A integração dos testes em cada etapa
A aceitação dos produtos entregues depende diretamente da
satisfação das necessidades
5. MÉTODOS ÁGEIS - UP
O método do Processo Unificado (UP para Unified
Process) é um processo de desenvolvimento iterativo e
incremental, o que significa que o projeto é recortado
em fases muito curtas ao fim de cada uma das quais
uma nova versão incrementada é entregue.
Trata-se de uma diligência que se apoia na
modelagem UML para a descrição da arquitetura do
software (funcional, lógica e física) e criação de casos
de utilização que permite descrever as necessidades e
exigências dos utilizadores.
6. MÉTODOS ÁGEIS - RUP
RUP (Rational Unified Process) é um método de
desenvolvimento por iterações promovido pela
empresa Rational Software, comprada pela IBM.
O RUP propõe um método que especifica a
composição das equipes e o cronograma, bem
como diversos modelos de documentos.
7. MÉTODOS ÁGEIS - XP
O método XP (para eXtreme Programming) define diversas boas práticas
que permitem desenvolver um software em condições ótimas, colocando o
cliente no meio do processo de desenvolvimento com relação estreita entre
o cliente e a equipe de desenvolvimento.
O eXtreme Programming baseia-se nomeadamente nos conceitos seguintes:
Consiste em equipes de desenvolvimento trabalham diretamente com o
cliente em ciclos muito curtos de uma a duas semanas, no máximo.
As entregas de versões do software acontecem muito cedo e a uma
freqüência elevada para maximizar o impacto das reações dos
utilizadores.
A equipe de desenvolvimento trabalha em colaboração total com base em
binômios.
O código é testado e limpo ao longo de todo o processo de desenvolvimento.
Indicadores permitem medir o adiantamento do projeto para permitir a
atualização do plano de desenvolvimento.
8. MÉTODOS ÁGEIS – FDD
FDD – Feature Driven Development, Em sua essência, FDD é mais
um método de gerenciamento de software do que um ciclo de vida de
desenvolvimento de software.
Resumidamente, FDD é dividido em 5 fases:
Shape Modeling – é uma forma de questionar se todos compreendem o que é para
fazer, analisar requisitos não-funcionais e modelo de arquitetura;
Feature List – É a representação do escopo listando a compreensão do que é para
ser feito e os requerimentos a serem desenvolvidos;
Plan by subject area – É a modularização da lista em conjuntos de
funcionalidades relacionadas, permitindo o desenvolvimento de parte do sistema
autonomamente;
Design by feature set – É uma orientação que determina o desenvolvimento com
base no domínio do problema. Sugere-se nesta fase uma modelagem profunda e
detalhada em UML;
Build by Chief Programmer Work Package – É o empacotamento de pequenas
funcionalidades, uma redução evolutiva que nasce na fase 2 até a fase 4. Prioriza-se
este pacote, codificando sua funcionalidades e criando unit tests.
9. MÉTODOS ÁGEIS – FDD
FDD define também 4 camadas de arquitetura de
software:
● UI – User Interface;
● PD – Problem Domain (lógica do negócio);
● DM – Data Management;
● SI – Systems Interfaces.
10. MÉTODOS ÁGEIS – MSF
O MSF – Microsoft Solutions Framework: O
MSF 4.2, possui duas novas instâncias: MSF for
Agile Software Development e MSF for CMMI
Process Improvement. O MSF se caracteriza por:
defender um ciclo mais curto com iterações de no
máximo 4 semanas.
preservar a importância dos papéis definidos
previamente e inibe a linha “todo mundo pode
fazer tudo no projeto”.
Promover testes unitários e a preocupação com a
cobertura de 100% do código fonte.
11. MÉTODOS ÁGEIS – SCRUM
SCRUM é um método de gerenciamento de software que
pode ser usado com XP ou MSF. É baseado na teoria do
controle empírico de processos e seus fundamentos são
originados na indústria de manufatura japonesa.
Segundo o SCRUM, o desenvolvimento deve ser trabalhado
em 3 níveis: Sprint, Release e Product.
O ponto central é que os requisitos são convertidos em uma
lista que contém valores do cliente chamada Product
Backlog. Um sub-conjunto desta lista é criado e chamado de
Release Backlog. Este sub-conjunto é particionado mais ma
vez transformando-se em Sprint, uma espécie de acordo de
desenvolvimento de funcionalidades que após aceito pela
equipe não deve ser mais alterado.
Tem como característica a de que todos se auto-avaliam
todos os dias (daily stand-up meeting) tornando possível
resultados e técnicas de melhoria contínua.
12. MÉTODOS ÁGEIS – SCRUM
O gerente de projetos como conhecemos hoje, na proposta
SCRUM, é chamado de SCRUM Master.
Suas principais responsabilidades resumem-se em duas:
Proporcionar a passagem técnica;
e retirar todos os impedimentos.
A equipe do projeto é dividida em apenas 3 pápeis: o
SCRUM Master (coach), o Product Owner e a equipe.
13. METODOLOGIAS ÀGEIS
•Deve se manter constante
tempo •Prazo
• Pode se manter constante
Recurso • Desde que não interfira no prazo
• Pode variar
• Deve se adequar as realidade que
Escopo aparecerão