Desde a crise do Software, estudada em módulo anterior, uma série de iniciativas foram desenvolvidas com o objetivo de tornar mais eficiente e eficaz o processo de desenvolvimento de software. Nesta linha, diversos foram os modelos de processo criados com o objetivo de definir como um produto de software deve ser desenvolvido e mantido.
O primeiro modelo criado foi o em Cascata, daí surgiu uma série de outros, como o em Espiral, o Iterativo e Incremental, o Ágil, dentre outros. Baseado nestes paradigmas, uma série de metodologias foram desenvolvidas e são largamente utilizadas no desenvolvimento de sistemas.
Neste módulo, iremos apresentar três destas metodologias: o SCRUM, o RUP e o XP.
O Scrum é uma metodologia ágil para desenvolvimento de software que se baseia em um pequeno conjunto de princípios, valores e práticas.
A sua criação é ligada a Jeff Sutherland e a equipe da Easel Corporation, que propuseram o método no ano de 2003.
Esta metodologia não é um processo unificado, mas um framework para organização e gerenciamento do trabalho. Desta forma, cada empresa pode montar o seu próprio processo tendo como base os princípios do Scrum.
O processo de desenvolvimento baseado no Scrum é executado por um ou mais times em paralelo, sendo que cada time deve ser composto por pessoas que ocupam determinados papéis, que executam atividades definidas, que produzem artefatos a partir da observação de um determinado conjunto de regras.