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.