Adaptive Software Development (ASD) ou Desenvolvimento de Software Adaptativo é uma técnica para o desenvolvimento de softwares, proposta por Jim Highsmith. Este modelo concentra-se na colaboração humana e na auto-organização da equipe. Tem foco de atuação principalmente nos problemas de sistemas complexos, para grandes desenvolvimentos. O método estimula fortemente o desenvolvimento com repetições e uma constante prototipação.
Bem como em metodologias ágeis, sua operação é em ciclos e em cada interação ocorrerão certas mudanças e até alguns erros. Este ciclo fornece aprendizado e adaptação contínuos ao estado emergente do projeto.
Baseado no ciclo de aprendizado colaborativo, o ASD define o seu ciclo de vida para projetos, isso faz com que os ciclos colaboração e aprendizado - que veremos mais à frente, sejam preenchidas com as suas respectivas práticas. Nesse sentido, o aprendizado é um elemento-chave para que possamos conseguir uma equipe auto-organizada.
Características do metodologia ASD
-
Focado na missão: objetivos muito bem definidos, porém podem ser ajustados de acordo com o desenvolvimento do projeto;
-
Orientado a riscos;
-
Orientado a componentes: as atividades de desenvolvimento não devem ser orientadas a tarefas, mas, focadas nas funcionalidades do desenvolvimento do software;
-
Iterativo;
-
Tolerante a mudanças: incorpora as mudanças que aparecem no meio do projeto. Como é algo frequente em desenvolvimento de software, é mais importante se adaptar à elas ao invés de tentar controlar.
Ciclo de vida do modelo
Um projeto de ASD é composto por um ciclo de três fases:
-
Especulação: Nessa fase o projeto é iniciado e se estabelecem os principais objetivos e metas do projeto, requisitos básicos que serão necessários e as limitações com as quais você trabalhará. Após completar cada ciclo tudo é revisto e ajustado, podendo sofrer mudanças. Tudo isso para que o projeto esteja na realidade que a equipe está trabalhando.
-
Colaboração: A colaboração ajuda bastante no levantamento de necessidades, especificações, etc. Por isso, deve-se existir confiança, ter críticas construtivas, trabalho árduo e promover a comunicação dos problemas e em atitudes que contribuem para o trabalho em equipe.
-
Aprendizado: consiste na compilação de tudo o que foi aprendido do início até o final, o que foi bom e o que foi ruim para que possamos melhorar no futuro.
Curso ASD - Adaptive Software Development
Conhecer o cursoVantagens:
-
É utilizada para aprender com os erros e iniciar o ciclo de desenvolvimento novamente
-
Utiliza as informações sobre as mudanças para melhorar o desempenho do software
-
Promove o trabalho em equipe
Desvantagens:
- Erros que não são detectados anteriormente afetará a qualidade do produto e consequentemente no custo
Considerações finais…
Dessa forma, esse é um modelo que traz excelentes resultados em grupos de trabalho, pois incentiva a comunicação de todos os envolvidos. É bastante indicado para projetos com constante mudança e em ambientes que necessitam implementar projetos que são críticos para o negócio, além de ser uma boa ferramenta para equipes que atuam com projetos de alto risco.
Se você tem interesse em conhecer outras metodologias e também metodologias ágeis, confira outros artigos no nosso blog =D