O documento descreve o processo incremental e iterativo de desenvolvimento de software, no qual o trabalho é dividido em pequenas iterações com incrementos contínuos, em vez de um único lançamento ("big bang"). Cada iteração inclui análise, projeto, implementação e transição para o produto, com feedback constante do cliente para manter os requisitos alinhados. O processo oferece vantagens como redução de riscos, entrega contínua de valor e motivação da equipe.
1. Processo incremental e iterativo
Hoje, é considerado errado ter um processo que gere um “big bang”.Não se
deve ter o software inteiro funcionando por inteiro no primeiro release, pois
o risco é grande demais.
Um processo de desenvolvimento de software deve ser iterativo (ter várias
iterações no tempo) e incremental (gerar novas versões incrementadas a
cada release).
Descrição do processo incremental e iterativo
O desenvolvimento de um produto comercial de software é uma grande
tarefa que pode ser estendida por vários meses, possivelmente um ano ou
mais.Por isso, é mais práctico dividir o trabalho em “pedaços” menores ou
iterações.Cada iteração resultará num incremento.
Iterações são passos em fluxo de trabalho e incrementos são crescimentos
do produto.
O princípio subjacente ao processo incremental e iterativo é que a equipa
envolvida possa refinar e alargar pouco-a-pouco a qualidade, detalhe e
âmbito do sistema envolvido.
Por exemplo, numa primeira iteração deve-se identificar a visão global e
determinar a viabilidade económica do sistema, efectuar a maior parte da
análise e um pouco de desenho e implementação.Numa segunda iteração,
deve-se concluir a análise, fazer uma parte significativa do desenho e um
pouco mais de implementação.
Numa terceira iteração, deve-se concluir o desenho, fazer-se parte
substancial da implementação, testar e integrar um pouco, etc.
Ou seja, a principal consequência da aproximação iterativa é que os
produtos finais de todo o processo vão sendo amadurecidos e completados
ao longo do tempo, mas cada iteração produz sempre um conjunto de
produtos finais.
A cada iteração é feito:
- Análise (refinamento de requisitos, refinamento do modelo
conceitual)
- Projecto (refinamento do projecto arquitectural, projecto de baixo
nível)
- Implementação (codificação e testes)
- Transição para produto (documentação, instalação, ...)
2. Vantagens do processo incremental e iterativo
- Possibilidade de avaliar mais cedo os riscos e pontos críticos do
projecto, e identificar medidas para os eliminar ou controlar;
- Redução dos riscos envolvendo custos a um único incremento.Se a
equipa que desenvolve o software precisar repetir a iteração, a
organização perde somente o esforço mal direccionado de uma iteração,
não o valor de um produto inteiro;
- Definição de uma arquitectura que melhor possa orientar todo o
desenvolvimento;
- Disponibilização natural de um conjunto de regras para melhor controlar
os inevitáveis pedidos de alterações futuras;
- Permite que os vários intervenientes possam trabalhar mais
efectivamente pela interacção e partilha de comunicação daí resultante;
3. - Existe sempre algo para entregar ao cliente apressado (a última
iteração);
- Os requisitos mudam com o tempo e um processo iterativo e
incremental mantém frequentes os contactos com o cliente, o que ajuda
a manter os requisitos sincronizados;
- Redução do risco de lançar o projecto no mercado fora da data
planeada.Identificando os riscos numa fase inicial, o esforço despendido
para gerenciá-los ocorre cedo, quando as pessoas estão sob menos
pressão do que numa fase final de projecto;
- Aceleração do tempo de desenvolvimento do projecto como um todo,
porque a equipa que desenvolve o software trabalha de maneira mais
eficiente quando pretende alcançar resultados de escopo pequeno e
claro;
- Altamente motivador para a equipa de desenvolvimento (e o cliente) ver
o software funcionando cedo.
Desvantagens do Processo incremental e iterativo
*Após termos pesquisado o tema, não encontrámos referência a qualquer
tipo de desvantagens na aplicação e utilização do Processo incremental e
iterativo.Por esse motivo, não é apresentado qualquer tipo de desvantagem
sobre este processo no nosso trabalho.