Desenvolvimento de Software Adaptativo - Evolução
Os modelos SDLC anteriores são mais orientados para as práticas de estabilidade, previsibilidade e retornos decrescentes. O setor, como o de plataformas de Internet, tem se movido para aumentar os ambientes de retorno, abordagens imprevisíveis, não lineares e rápidas.
O Adaptive Software Development (ASD) evoluiu para lidar com esses problemas. Ele enfoca a emergência como o fator mais importante do ponto de vista da administração, para aprimorar a capacidade de gerenciar o desenvolvimento de produtos.
Nas palavras de Jim Highsmith, “A estrutura de desenvolvimento de software adaptável é baseada em anos de experiência com metodologias de desenvolvimento de software tradicionais, consultoria, prática e escrita sobre técnicas de desenvolvimento rápido de aplicativos (RAD) e trabalho com empresas de software de alta tecnologia no gerenciamento de desenvolvimento de produtos práticas ”.
O modelo em cascata é caracterizado pela linearidade e previsibilidade, com feedback insuficiente. Pode ser visto como uma sequência dePlan → Build → Implement.
Os modelos de ciclo de vida evolucionário, como o modelo espiral, mudaram a abordagem determinística para a adaptativa, com Plan → Build → Revise Cycles.
No entanto, a mentalidade dos praticantes permaneceu Determinista, com previsibilidade de longo prazo se transformando em previsibilidade de curto prazo. As práticas de modelos de Ciclo de Vida Evolucionário, como RAD, são consideradas menos determinísticas.
O Ciclo de Vida Adaptável
O modelo adaptativo é construído de um ponto de vista diferente. Embora cíclicos como o modelo Evolucionário, os nomes da fase refletem a natureza imprevisível de sistemas cada vez mais complexos.
O Desenvolvimento Adaptativo vai além de sua herança evolutiva de duas maneiras principais -
Ele substitui explicitamente Determinismo por Emergência.
Vai além de uma mudança no ciclo de vida para uma mudança mais profunda no estilo de gestão.
As três fases do Adaptive Software Development Lifecycle são -
Speculate - Especular substitui a palavra determinística planejamento, planejamento de especificações de produto ou planejamento de tarefas de gerenciamento de projeto.
Collaborate - Colaborar representa o equilíbrio entre
Gerenciando no sentido tradicional de gerenciamento de projetos, e
Criar e manter o ambiente colaborativo necessário para o surgimento.
Learn - Aprender visa, tanto os desenvolvedores quanto os clientes, usar os resultados de cada ciclo de desenvolvimento para aprender a direção do próximo.
Atividades Colaborativas constroem produtos, acompanhando o ritmo das mudanças no ambiente.