SDLC - Modelo Ágil
O modelo Agile SDLC é uma combinação de modelos de processo iterativos e incrementais com foco na adaptabilidade do processo e na satisfação do cliente pela entrega rápida do produto de software funcional. Os métodos ágeis dividem o produto em pequenas compilações incrementais. Essas compilações são fornecidas em iterações. Cada iteração normalmente dura cerca de uma a três semanas. Cada iteração envolve equipes multifuncionais trabalhando simultaneamente em várias áreas como -
- Planning
- Análise de Requisitos
- Design
- Coding
- Teste de Unidade e
- Teste de aceitação.
No final da iteração, um produto funcional é exibido para o cliente e importantes stakeholders.
O que é Agile?
O modelo Agile acredita que cada projeto precisa ser tratado de maneira diferente e os métodos existentes precisam ser ajustados para melhor atender aos requisitos do projeto. No Agile, as tarefas são divididas em caixas de tempo (pequenos intervalos de tempo) para fornecer recursos específicos para um lançamento.
A abordagem iterativa é feita e a construção do software funcional é entregue após cada iteração. Cada construção é incremental em termos de recursos; a versão final contém todos os recursos exigidos pelo cliente.
Aqui está uma ilustração gráfica do modelo ágil -
O processo de pensamento Agile começou no início do desenvolvimento de software e começou a se tornar popular com o tempo devido à sua flexibilidade e adaptabilidade.
Os métodos Ágeis mais populares incluem Rational Unified Process (1994), Scrum (1995), Crystal Clear, Extreme Programming (1996), Adaptive Software Development, Feature Driven Development e Dynamic Systems Development Method (DSDM) (1995). Esses agora são chamados coletivamente deAgile Methodologies, depois que o Manifesto Ágil foi publicado em 2001.
A seguir estão os princípios do Manifesto Ágil -
Individuals and interactions - No desenvolvimento ágil, a auto-organização e a motivação são importantes, assim como as interações como colocalização e programação em pares.
Working software - O software de trabalho de demonstração é considerado o melhor meio de comunicação com os clientes para entender seus requisitos, ao invés de depender apenas de documentação.
Customer collaboration - Como os requisitos não podem ser reunidos completamente no início do projeto devido a vários fatores, a interação contínua com o cliente é muito importante para obter os requisitos adequados do produto.
Responding to change - O desenvolvimento ágil é focado em respostas rápidas para mudanças e desenvolvimento contínuo.
Modelos SDLC Agile vs. Tradicional
Agile é baseado no adaptive software development methods, enquanto os modelos SDLC tradicionais, como o modelo em cascata, são baseados em uma abordagem preditiva. As equipes preditivas nos modelos SDLC tradicionais geralmente trabalham com planejamento detalhado e têm uma previsão completa das tarefas e recursos exatos a serem entregues nos próximos meses ou durante o ciclo de vida do produto.
Os métodos preditivos dependem inteiramente do requirement analysis and planningfeito no início do ciclo. Quaisquer mudanças a serem incorporadas passam por um rígido controle de gestão e priorização de mudanças.
Agile usa um adaptive approachonde não há planejamento detalhado e há clareza sobre as tarefas futuras apenas no que diz respeito aos recursos que precisam ser desenvolvidos. Há um desenvolvimento orientado por recursos e a equipe se adapta aos requisitos de produto em constante mudança. O produto é testado com muita frequência, por meio de iterações de lançamento, minimizando o risco de quaisquer falhas importantes no futuro.
Customer Interactioné a espinha dorsal desta metodologia Ágil, e a comunicação aberta com documentação mínima são os recursos típicos do ambiente de desenvolvimento Ágil. As equipes ágeis trabalham em estreita colaboração umas com as outras e geralmente estão localizadas na mesma localização geográfica.
Modelo Agile - Prós e Contras
Métodos ágeis estão sendo amplamente aceitos no mundo do software recentemente. No entanto, esse método nem sempre é adequado para todos os produtos. Aqui estão alguns prós e contras do modelo Agile.
As vantagens do modelo ágil são as seguintes -
É uma abordagem muito realista para o desenvolvimento de software.
Promove o trabalho em equipe e o treinamento cruzado.
A funcionalidade pode ser desenvolvida e demonstrada rapidamente.
Os requisitos de recursos são mínimos.
Adequado para requisitos fixos ou variáveis
Oferece soluções iniciais de trabalho parciais.
Bom modelo para ambientes que mudam constantemente.
Regras mínimas, documentação facilmente empregada.
Permite o desenvolvimento e entrega simultâneos dentro de um contexto geral planejado.
Pouco ou nenhum planejamento necessário.
Fácil de gerenciar.
Oferece flexibilidade aos desenvolvedores.
As desvantagens do modelo ágil são as seguintes -
Não é adequado para lidar com dependências complexas.
Mais risco de sustentabilidade, facilidade de manutenção e extensibilidade.
Um plano geral, um líder ágil e uma prática de gerenciamento de projetos ágil são essenciais sem os quais não funcionará.
O gerenciamento de entrega estrito determina o escopo, a funcionalidade a ser entregue e os ajustes para cumprir os prazos.
Depende muito da interação com o cliente, portanto, se o cliente não for claro, a equipe pode ser conduzida na direção errada.
A dependência individual é muito alta, visto que há um mínimo de documentação gerada.
A transferência de tecnologia para novos membros da equipe pode ser bastante desafiadora devido à falta de documentação.