Scrum é um framework ágil para gestão de projetos que foca em entregas contínuas de software de qualidade por meio de pessoas. Ele foi criado por Ken Schwaber e Jeff Sutherland para resolver problemas do processo cascata, como desenvolvimento em fases congeladas, feedback tardio e dificuldade de adaptação. O Scrum utiliza estratégias como construção de protótipos e encurtamento dos ciclos de desenvolvimento.
Práticas Ágeis de Engenharia de Software com XP – I566 INSTITUTO INFNET - Cada vez mais as empresas convivem com ambientes de negócios que requerem mudanças freqüentes em seus processos. Paradoxalmente, os processos de desenvolvimento tradicionais estão repletos de atividades e artefatos que buscam proteger o software contra essas mudanças, o que faz pouco ou nenhum sentido, visto que os projetos devem se adaptar a tais mudanças ao invés de evitá-las. Extreme Programming (XP) é um processo que possibilita o desenvolvimento de software de alta qualidade, de maneira ágil, econômica e flexível. Vem sendo adotado com enorme sucesso na Europa, nos Estados Unidos e, mais recentemente, no Brasil. O XP concentra os esforços da equipe de desenvolvimento em atividades que geram resultados rapidamente na forma de software intensamente testado e alinhado às necessidades de seus usuários. Além disso, simplifica e organiza o trabalho combinando técnicas comprovadamente eficazes e eliminando atividades redundantes. Por fim, reduz o risco dos projetos desenvolvendo software de forma iterativa e reavaliando permanentemente as prioridades dos usuários.
Práticas Ágeis de Engenharia de Software com XP – I566 INSTITUTO INFNET -
Práticas Ágeis de Engenharia de Software com XP – I566 INSTITUTO INFNET - Antes de descrever o Scrum é preciso entender o modelo clássico de desenvolvimento em fases sequenciais, conhecido como processo em “Cascata” (Waterfall). Waterfall (cascata) é o processo de desenvolvimento que foca na ideia do "plano perfeito", no detalhamento precoce da solução antes de qualquer codificação, de modo a termos maior "controle" sobre o que será desenvolvido, após extenso período de reflexão e análise.
Práticas Ágeis de Engenharia de Software com XP – I566 INSTITUTO INFNET - Apesar da ideia de que planejar tudo antes e implentar com segurança depois parecia ser “a coisa certa a fazer”, o tempo mostrou que a adoção desse processo foi baseada em boatos e suposições , em vez de evidências claras da eficácia do método. Principais problemas: Desenvolvimento em fases (congeladas). Tenta prever resultados (comportamento preditivo). Up-Front design. Feedback tardio. Retorno do Investimento é demorado. Pouco espaço para adaptação e colaboração. Conclusão: vários projetos engordando as estatísticas - já “obesas” - de fracassos empresariais em TI.
Práticas Ágeis de Engenharia de Software com XP – I566 INSTITUTO INFNET - Os processos ágeis são iterativos e evolutivos . OpenUP , Scrum , eXtreme Programming (XP) , são alguns exemplos de métodos que adotam o modulo iterativo de desenvolvimento. Em vez de focar nas fases, passa-se a trabalhar com pequenas iterações curtas (2-4 semanas, em média), agindo de forma adaptativa e sempre produzindo software com qualidade de release final. A cada dia, o trabalho é inspecionado para verificar se o objetivo propostao para iteração será alcançado. Cada release produzido pela iteração é software potencialmente entregável que passou pelas etapas de análise , planejamento , construção e testes e está pronto para ser integrado às outras partes já produzidas do sistema. Os insights adquiridos são debatidos nas retrospectivas e servem de baseline para as iterações seguintes, em um ciclo virtuoso, que se retro-alimenta com o passar do tempo.
Práticas Ágeis de Engenharia de Software com XP – I566 INSTITUTO INFNET - No Scrum , os projetos acontecem em uma série de iterações, com um 1-4 semanas de duração, chamadas Sprints . Scrum é ideal para projetos cujos requisitos mudam rapidamente ou são altamente emergentes. O trabalho a ser feito em um projeto Scrum é registrado no Product Backlog , que é uma lista de todos os desejos de mudança no produto. No inicio de cada Sprint é feita uma Sprint Planning Meeting na qual o Product Owner prioriza o Product Backlog, e o Scrum Team seleciona as tarefas que ela pode completar durante o próximo Sprint. Essas tarefas são então movidas do Product Backlog para o Sprint Backlog . Durante um incremento, são conduzidas curtas reuniões diárias chamadas de Daily Scrum , que ajudam a equipe a manter-se no rumo. Ao final de cada Sprint a equipe demonstra a funcionalidade concluída, na Sprint Review Meeting .
Práticas Ágeis de Engenharia de Software com XP – I566 INSTITUTO INFNET -
Práticas Ágeis de Engenharia de Software com XP – I566 INSTITUTO INFNET -
Práticas Ágeis de Engenharia de Software com XP – I566 INSTITUTO INFNET -