O desenvolvimento incremental é baseado na ideia de desenvolver uma implementação inicial, expô-la aos comentários dos usuários e continuar por meio da criação de várias versões até que um sistema adequado seja desenvolvido.
Vantagens importantes quando comparado ao modelo em cascata:
- O custo de acomodar as mudanças nos requisitos do cliente é reduzido.
- É mais fácil obter feedback dos clientes sobre o desenvolvimento que foi feito.
- É possível obter entrega e implementação rápida de um software útil ao cliente, mesmo se toda a funcionalidade não for incluída.
Do ponto de vista do gerenciamento, a abordagem incremental tem dois problemas:
- O processo não é visível.
- A estrutura do sistema tende a se degradar com a adição de novos incrementos.
Os problemas do desenvolvimento incremental são particularmente críticos para os sistemas de vida-longa, grandes e complexos, nos quais várias equipes desenvolvem diferentes partes do sistema. Sistemas de grande porte necessitam de um framework ou arquitetura estável, e as responsabilidades das diferentes equipes de trabalho do sistema precisam ser claramente definidas, respeitando essa arquitetura. Isso deve ser planejado com antecedência, e não desenvolvido de forma incremental.
Fonte: Sommerville, 9 Edição, Capítulo 2, Páginas 21 e 22.