Metodologias ágeis
Metodologias ágeis têm sido apontadas como uma alternativa às abordagens tradicionais para o desenvolvimento de software. As metodologias tradicionais, conhecidas também como pesadas ou orientadas a planejamentos, devem ser aplicadas apenas em situações em que os requisitos do sistema são estáveis e requisitos futuros são previsíveis. Entretanto, em projetos em que há muitas mudanças, em que os requisitos são passíveis de alterações, onde refazer partes do código não é uma atividade que apresenta alto custo, as equipes são pequenas, as datas de entrega do software são curtas e o desenvolvimento rápido é fundamental, não pode haver requisitos estáticos, necessitando então de metodologias ágeis.
As metodologias ágeis surgiram com a proposta de aumentar o enfoque nas pessoas e não nos processos de desenvolvimento. Além disso, existe a preocupação de gastar menos tempo com documentação e mais com resolução de problemas de forma iterativa.
Metodologias
XP - Extreme Programming é uma metodologia ágil para equipes pequenas e médias desenvolvendo software com requisitos vagos e em constante mudança. Segundo os autores da metodologia, XP é código-cêntrica, ou seja, todo o desenvolvimento é voltado ao código. Em XP, a comunicação entre a equipe, ou entre equipes separadas geograficamente é feita através do código. Para se entender novas funcionalidades nos sistemas, os desenvolvedores olham o seu código.
O ciclo de vida e o ambiente que envolve objetos complexos são definidos através de casos de teste, novamente no código. Problemas no software são demonstrados para a equipe com casos de testes que provam a sua existência, no código. O código é continuamente melhorado através do refactoring. O foco do desenvolvimento em XP é o código escrito para o sistema.
SCRUM é um método de gerenciamento de software que pode ser usado com XP ou MSF. É baseado na teoria do controle empírico de processos e seus fundamentos são originados na indústria de manufatura japonesa.