Scrum (Rugby Team), um modelo de desenvolvimento de software é um tipo de desenvolvimento ágil, que gradualmente se tornou popular nos últimos dez anos.
A premissa básica do Scrum
Desenvolver software é como desenvolver um novo produto. Os procedimentos finais de um produto de software não podem ser definidos desde o início. O processo requer P&D, criatividade, tentativa e erro, portanto não existe um processo fixo que possa garantir o sucesso do projeto.
Scrum compara uma equipe de desenvolvimento de software a um time de futebol. Tem um objetivo claro e alto, conhece o melhor modelo e tecnologia necessária no processo de desenvolvimento, tem um alto grau de autonomia, comunicação e cooperação próxima e garante resolver vários desafios todos os dias com alto grau de flexibilidade; Cada etapa tem um progresso claro em direção ao objetivo.
O Processo Scrum
O processo de desenvolvimento Scrum normalmente começa com uma fase de 30 dias (ou menos), começando com a especificação dos novos requisitos do produto do cliente, com a equipe de desenvolvimento e o cliente escolhendo quais partes da especificação devem ser concluídas no início de cada fase, o desenvolvimento a equipe deve fazer o possível para entregar os resultados após 30 dias, e a equipe se reúne 15 minutos por dia para revisar o progresso e o cronograma de cada membro, entender as dificuldades encontradas e tentar solucionar problemas.
As vantagens da abordagem ágil
Qual é a vantagem do Scrum sobre o modelo de desenvolvimento tradicional. Uma característica distintiva do modelo Scrum é que ele responde a mudanças. Ele pode responder às mudanças o mais rápido possível.
Quando um sistema tradicional se concentra no planejamento inicial, onde fatores como custo, escopo e tempo são importantes, a abordagem ágil dá destaque ao trabalho em equipe, colaboração com o cliente e flexibilidade. À medida que as especificações dos requisitos mudam, a equipe ágil pode permanecer móvel e ser capaz de responder a essas mudanças. No entanto, isso não significa necessariamente que a estratégia de planejamento adaptativo seja sempre melhor do que uma estratégia de planejamento preditivo. Vamos comparar essas duas estratégias de desenvolvimento de projetos com mais detalhes.
Thus, the traditional development (waterfall, also known as plan-driven) approach is linear, with all phases of the process occurring sequentially. This approach depends on predictable tools and predictable experiences. Each project follows the same lifecycle, including feasibility, planning, design, construction, testing, production, support, and so on, as shown below.
The whole project is planned in advance without any room to change the requirements, for example PMI’s PMBOK and PRINCE2 are strict and highly controlled. They outline the different phases of project planning from start to finish and assume that you already have all the requirements and information you need up front.
O Agile é considerado uma estratégia de desenvolvimento de software mais moderna, pois foi projetado principalmente para superar algumas das deficiências da abordagem em cascata mais preditiva. É um modelo de desenvolvimento de software que incentiva o desenvolvimento e teste iterativo ao longo do ciclo de vida de desenvolvimento de software de um projeto.
Visão geral do processo Scrum
Scrum é uma estrutura que prescreve papéis , eventos , artefatos e regras/diretrizes para implementar essa mentalidade. Em outras palavras, Agile é a mentalidade e Scrum é o framework que prescreve um processo para implementar a filosofia ágil.
Scrum e ágil não são a mesma coisa, mas o scrum é um dos processos ágeis. Eles são baseados em desenvolvimento iterativo. Os requisitos e soluções ágeis obtidos pela associação entre as equipes multifuncionais e de auto-organização, e quando implementados adequadamente, podem ajudar as equipes a resolver problemas complexos, entregando de forma incremental produtos de maior valor e mitigando riscos.
Scrum envolve inspeção e adaptação rápidas, o trabalho em equipe é aprimorado pela filosofia de liderança, responsabilidade e auto-organização, melhores práticas de engenharia que ajudam na entrega rápida de software de alta qualidade.
Termos-chave do Scrum
Backlog: todas as tarefas que podem ser previstas, incluindo todas as tarefas funcionais e não funcionais.
Sprint: O período de tempo para um desenvolvimento geracional, geralmente no máximo 30 dias como um ciclo. Durante esse tempo, a equipe de desenvolvimento precisa concluir um backlog formulado e o resultado final é um produto incremental e entregável.
Sprint backlog: as tarefas que precisam ser concluídas em um ciclo de sprint.
Time-box: Um intervalo de tempo para a reunião. Por exemplo, o time-box de cada reunião scrum diária é de 15 minutos.
Reunião de planejamento do sprint: realizada antes de iniciar cada sprint. Geralmente um dia (8 horas). A tarefa a ser formulada nesta reunião é: o proprietário do produto e os membros da equipe decompõem o backlog em pequenos módulos funcionais, decidem quantos pequenos módulos funcionais precisam ser concluídos no próximo sprint e determinam a prioridade da tarefa deste Product Backlog. Além disso, a reunião precisa discutir em detalhes como concluir esses pequenos módulos funcionais conforme necessário. A carga horária desses módulos é calculada em horas.
Reunião diária do Scrum: realizada pelos membros da equipe de desenvolvimento, geralmente 15 minutos. Cada membro de desenvolvimento precisa relatar três projetos ao Scrum Master: O que foi concluído hoje? Você encontrou obstáculos? O que você vai fazer? Por meio dessa reunião, os membros da equipe podem entender o andamento do projeto entre si.
Reunião de revisão do Sprint: Após cada Sprint, a equipe apresentará os resultados do Sprint ao Product Owner e outras pessoas relacionadas. Geralmente, esta reunião tem a duração de 4 horas.
A Sprint Retrospective ocorre após a Sprint Review e antes do próximo Sprint Planning . Esta é, no máximo, uma reunião de três horas para Sprints de um mês . A sessão de retrospectiva é basicamente uma reunião de “melhoria” realizada para encontrar maneiras e meios de identificar possíveis armadilhas, erros passados e buscar novas maneiras de evitar esses erros, que são atendidos por todos – o proprietário do produto , scrum master , membros da equipe de desenvolvimento , e opcionalmente com as partes interessadas.
Scrum Master: Um membro da equipe responsável por supervisionar todo o processo Scrum e revisar o plano.
O Product Owner que possui o produto em nome da empresa faz parte de uma equipe Scrum . No entanto, um Product Owner não tem autoridade sobre outros membros da equipe, assim como o Scrum Master . Um Product Owner é responsável por cuidar de um produto por um longo período de tempo e é responsável por alcançar o sucesso do produto. Como proprietário do produto, você deve interagir diretamente com os clientes e usuários, a equipe de desenvolvimento e outras partes interessadas importantes, como mostra a imagem abaixo.
Um Time Scrum é uma coleção de indivíduos (normalmente entre cinco e nove membros) trabalhando juntos para entregar os incrementos de produto necessários. O framework Scrum incentiva um alto nível de comunicação entre os membros da equipe, para que a equipe possa:
- Siga um objetivo comum
- seguir as mesmas normas e regras
- mostrar respeito um pelo outro
Como funciona o Scrum?
Um processo Scrum se distingue de outros processos ágeis por conceitos e práticas específicos, divididos nas três categorias de Papéis ( proprietário do produto , scrum master , equipe de desenvolvimento e outros stakeholders), eventos, artefatos e regras.
Para iniciar um processo Scrum, um proprietário do produto cria uma lista de desejos priorizada chamada de backlog do produto . Durante o planejamento do sprint, o backlog é dimensionado para complexidade e valor de negócios (prioridade). O proprietário do produto (cliente) e a equipe de desenvolvimento determinam quais itens do backlog são adicionados ao sprint. A equipe tem um certo tempo (chamado de sprint , geralmente de duas a quatro semanas) para concluir seu trabalho, mas se reúne diariamente para avaliar seu progresso ( Scrum diário ). Ao longo do caminho, o Scrum Master mantém a equipe focada em seu objetivo. No final do sprint, a equipe analisa seu progresso, mostra ao cliente o produto que está funcionando e analisa o que correu bem ou o que precisa melhorar para o próximo sprint. Então o ciclo se repete.