Desenvolvimento ágil de software (do inglês Agile software development) ou Método ágil é um conjunto de metodologias de desenvolvimento de software. O desenvolvimento ágil, tal como qualquer metodologia de software, providencia uma estrutura conceitual para reger projetos de engenharia de software.
Os princípios do desenvolvimento ágil valorizam:
* Garantir a satisfação do consumidor entregando rapidamente e continuamente softwares funcionais;
* Softwares funcionais são entregues frequentemente (semanas, ao invés de meses);
* Softwares funcionais são a principal medida de progresso do projecto;
* Até mesmo mudanças tardias de escopo no projecto são bem-vindas.
* Cooperação constante entre pessoas que entendem do 'negócio' e desenvolvedores;
* Projetos surgem através de indivíduos motivados, entre os quais existe relação de confiança.
* Design do software deve prezar pela excelência técnica;
* Simplicidade;
* Rápida adaptação às mudanças;
* Indivíduos e interações mais do que processos e ferramentas;
* Software funcional mais do que documentação extensa;
* Colaboração com clientes mais do que negociação de contratos;
* Responder a mudanças mais do que seguir um plano.
Gabarito: A
Premissas do Desenvolvimento Ágil O cliente aprende ao longo do desenvolvimento, à medida que é capaz de manipular o sistema.
Um dos problemas mais complexos que afetam o desenvolvimento de software é a enorme quantidade de detalhes que precisam ser considerados. Normalmente, ao especificar um sistema, o cliente tem o conhecimento de alguns aspectos do software que deseja. Entretanto, muitos outros só ficam claros quando ele tem a oportunidade de utilizar o sistema. Portanto, o cliente não especifica estes detalhes no início do projeto por uma razão muito simples: ele não os conhece [BECK, 2000]. Além do mais, mesmo que tais detalhes fossem conhecidos previamente, seria muito difícil especificá-los através de documentos, devido à grande quantidade de elementos que precisariam ser descritos.
Perceber que o cliente aprende ao longo do desenvolvimento é a chave para se compreender o grande desafio existente no desenvolvimento de software. O cliente aprende à medida que tem acesso ao sistema e se envolve em discussões sobre ele. Este aprendizado pode ser utilizado para realimentar o processo de desenvolvimento ou pode ser ignorado. Esta última alternativa é o caminho adotado normalmente no desenvolvimento tradicional, pois ele parte da premissa que o cliente já sabe o que quer no início do projeto e a ele cabe apenas descrever os requisitos. Depois, ao final, ele receberá o sistema e não haverá ciclos de realimentação entre a especificação e a entrega do sistema [TELES, 2004].
Fonte: http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=5916