Desenvolvimento de Software Adaptativo - Ciclo de Vida
O Adaptive Software Development evoluiu a partir das práticas RAD. Os aspectos de equipe também foram agregados a essas práticas. Empresas da Nova Zelândia ao Canadá, para uma ampla variedade de projetos e tipos de produtos, têm usado o desenvolvimento de software adaptativo.
Jim Highsmith publicou Adaptive Software Development em 2000.
As práticas de Desenvolvimento de Software Adaptável fornecem capacidade de acomodar mudanças e são adaptáveis em ambientes turbulentos com produtos evoluindo com pouco planejamento e aprendizado.
Fases do ciclo de vida do ASD
O Desenvolvimento Adaptativo de Software é cíclico como o modelo Evolucionário, com os nomes das fases refletindo a imprevisibilidade nos sistemas complexos. As fases do ciclo de vida do desenvolvimento adaptativo são -
- Speculate
- Collaborate
- Learn
Essas três fases refletem a natureza dinâmica do Desenvolvimento de Software Adaptativo. O Desenvolvimento Adaptativo substitui explicitamente Determinismo por Emergência. Vai além de uma mera mudança no ciclo de vida para uma mudança mais profunda no estilo de gerenciamento. O Adaptive Software Development tem um ciclo de vida dinâmico especular-colaborar-aprender.
O Adaptive Software Development Lifecycle enfoca os resultados, não as tarefas, e os resultados são identificados como recursos do aplicativo.
Especular
O termo plano é muito determinista e indica um grau razoavelmente alto de certeza sobre o resultado desejado. A meta implícita e explícita de conformidade com o plano restringe a capacidade do gerente de conduzir o projeto em direções inovadoras.
No Adaptive Software Development, o termo plano é substituído pelo termo especular. Ao especular, a equipe não abandona o planejamento, mas reconhece a realidade da incerteza em problemas complexos. Especular incentiva a exploração e experimentação. Iterações com ciclos curtos são encorajadas.
Colaborar
Aplicativos complexos não são construídos, eles evoluem. Aplicativos complexos requerem que um grande volume de informações seja coletado, analisado e aplicado ao problema. Ambientes turbulentos têm altas taxas de fluxo de informações. Conseqüentemente, aplicativos complexos requerem que um grande volume de informações seja coletado, analisado e aplicado ao problema. Isso resulta em diversos requisitos de conhecimento que só podem ser tratados pela colaboração da equipe.
Colaborar exigiria a capacidade de trabalhar em conjunto para produzir resultados, compartilhar conhecimento ou tomar decisões.
No contexto do gerenciamento de projetos, a Colaboração retrata um equilíbrio entre o gerenciamento com técnicas tradicionais de gerenciamento e a criação e manutenção do ambiente colaborativo necessário para o surgimento.
Aprender
A parte Aprender do Ciclo de Vida é vital para o sucesso do projeto. A equipe deve aprimorar seus conhecimentos constantemente, usando práticas como -
- Revisões Técnicas
- Retrospectivas do Projeto
- Grupos de foco do cliente
As revisões devem ser feitas após cada iteração. Tanto os desenvolvedores quanto os clientes examinam suas suposições e usam os resultados de cada ciclo de desenvolvimento para aprender a direção do próximo. A equipe aprende -
Sobre mudanças de produto
Mudanças mais fundamentais nas suposições básicas sobre como os produtos estão sendo desenvolvidos
As iterações precisam ser curtas, para que a equipe possa aprender com pequenos erros em vez de grandes.
Especule - colabore - Aprenda o ciclo como um todo
Como você observa no ciclo Especular-Colaborar-Aprender, fornecido acima, é óbvio que as três fases são não lineares e se sobrepõem.
Observamos o seguinte em uma estrutura adaptativa.
É difícil colaborar sem aprender ou aprender sem colaborar.
É difícil especular sem aprender ou aprender sem especular.
É difícil especular sem colaboração ou colaborar sem especular.