Por que eu devo ler este artigo: Artigo do tipo Teórico
Recursos especiais neste artigo:
Conteúdo sobre Agilidade.

Disciplined Agile Delivery
Hoje em dia, com o crescente uso de métodos formais de desenvolvimento de software e a adoção cada vez maior de métodos ágeis, os níveis de produtividade estão aquém do esperado. Continuamos a ter problemas de qualidade relacionados a defeitos não identificados e a dificuldade em manter o que foi desenvolvido. Com base nisso este artigo apresenta uma introdução ao Disciplined Agile Delivery (DAD), um framework de processo desenvolvido por Scott Ambler e Mark Lines, uma abordagem híbrida que estende o Scrum incluindo estratégias provenientes da Agile Modeling (AM), Extreme Programming (XP) e do Unified Process (UP), dentre outros métodos.

Em que situação o tema útil
Este artigo fala sobre Disciplined Agile Delivery, um framework de processo que valoriza as pessoas, é orientado ao aprendizado, possui uma abordagem ágil híbrida, é guiado por objetivos, escalável e possui um ciclo de vida que pondera risco e valor.

Este tema é útil quando se pretende iniciar o desenvolvimento de soluções de software utilizando práticas ágeis de forma estruturada e disciplinada.

Quando os métodos ágeis foram introduzidos, suas ideias não eram novas, muito menos revolucionárias. Muitos dos conceitos que vieram à tona com eles já haviam sido descritos em detalhes em outros métodos como, por exemplo, o Rapid Application Development (RAD), Evo, e várias outras instâncias do Processo Unificado de desenvolvimento de software. Além destes métodos, livros clássicos como “O Mítico Homem Mês”, de Frederick Brooks, também apresentaram estes conceitos.

Não deveria ser novidade que trabalhar de forma conjunta e colaborativa, de maneira unificada e com times focados em produzir software que funcione produz resultados superiores quando comparados àqueles que se especializam em um determinado trabalho e estão mais preocupados com o desempenho individual do que com o desempenho do time. Também não deveria ser surpresa que reduzindo a documentação e a burocracia economiza-se dinheiro e acelera-se a entrega.

As primeiras gerações dos métodos de desenvolvimento de software foram descritas como cascata ou tradicional. Elas são guiadas por planejamento e processos em série que assumem que o desenvolvimento de software é composto por um conjunto de tarefas que podem ser facilmente identificadas, previstas e repetitivas. Porém, o que temos visto não é bem isso. Ao contrário de outras disciplinas da engenharia, software é uma ciência criativa que requer certo grau de invenção e carrega um nível significativo de riscos e incertezas.

A segunda geração dos métodos de desenvolvimento de software foi descrita como iterativa. Ela reconhece que dividir grandes projetos em uma série de iterações com tempo definido possibilita demonstrar progresso aos stakeholders, aprender e adaptar o processo, obter uma visão antecipada sobre a qualidade, dentre outros benefícios.

Estatísticas mostram que métodos iterativos produzem melhorias significativas com relação ao sucesso do projeto quando comparados com as abordagens tradicionais de desenvolvimento. Entretanto, o patamar de sucesso dos projetos iterativos está longe de ser satisfatório. Continua-se a não cumprir o prazo de entrega acordado, a ultrapassar o orçamento previsto e entregar soluções que não satisfazem as reais necessidades de negócio dos stakeholders. Os níveis de produtividade estão aquém do esperado e os processos e burocracias geram uma fenomenal quantidade de perda em termos de documentação, reuniões, aprovações, feedback tardio e transferência de responsabilidades. Adicionalmente, continuamos a ter problemas de qualidade relacionados a defeitos não identificados e a dificuldade em manter o que foi desenvolvido.

...
Quer ler esse conteúdo completo? Tenha acesso completo