Aplicações do Scrum em Diferentes Setores
thumb|400px|direita|Representação visual dos principais artefatos do Scrum Framework e seu relacionamento com a Sprint
O Scrum (pronunciado [skɻʌm]) é um framework de gerenciamento de projetos (conjunto de técnicas/processos de gerenciamento não linear de projetos em equipe), da etapa da organização ao desenvolvimento ágil de produtos complexos e adaptativos buscando o valor máximo, criado na década de 1990. No State of Agile Report de 2021, o scrum era a metodologia ágil mais utilizada, sendo adotada por 66% dos participantes do relatório.
Embora muito utilizado por equipes de desenvolvimento de software, os princípios desse conjunto podem ser aplicados a todos os tipos de trabalhos em equipe.
Em função de não ser linear, pode empregar vários outros processos ou técnicas, de modo que você possa melhorá-los. Também não é um processo prescritivo, ou seja, não descreve o que fazer em cada situação, pois em trabalhos complexos é impossível predizer tudo o que irá ocorrer. É um conjunto de valores, princípios e práticas que fornecem a base para que a sua organização adicione suas práticas particulares de engenharia e gestão e que sejam relevantes para a realidade da sua empresa. O resultado será uma versão de Scrum que é exclusivamente sua.
Scrum possui seu foco no gerenciamento e projeto da organização onde é difícil planejar à frente. Mecanismos do Controle de Processo Empírico, onde ciclos de feedback constituem o núcleo da técnica de gerenciamento que são usadas em oposição ao tradicional gerenciamento de comando e controle. É uma forma de planejar e gerenciar projetos trazendo a autoridade da tomada de decisão a níveis de propriedade de operação e certeza.
Apesar da palavra não ser um acrônimo, algumas empresas que implementam o processo a soletram com letras maiúsculas como SCRUM. Isto pode ser devido aos primeiros artigos de Ken Schwaber que capitalizava SCRUM no título.
Apesar de ser criado para gerenciamento de projetos de software, também pode ser utilizado em equipes de manutenção de software ou como uma abordagem geral de gerenciamento de projetos/programas.
Atualmente, as técnicas de DevOps são utilizados por programadores no desenvolvimento de software em conjunto com técnicas de gestão e desenvolvimento ágil de software, como o Scrum.DevOps and Agile (Scrum Alliance)Qual a diferença entre extreme programming, Scrum e DevOps?Entenda o que a união entre DevOps e Scrum pode gerar
História Inicialmente, o Scrum foi concebido como um estilo de gerenciamento de produtos em empresas de fabricação de automóveis e produtos de consumo, por Takeuchi e Nonaka no artigo "The New Product Development Game" (Harvard Business Review, Janeiro-Fevereiro 1986). Eles notaram que projetos usando equipes pequenas e multidisciplinares cross-functional produziram os melhores resultados, e associaram estas equipes altamente eficazes à formação Scrum do Rugby - utilizada para reinício do jogo em certos casos. Jeff Sutherland, John Scumniotales e Jeff McKenna conceberam, documentaram e implementaram o Scrum, conforme descrito abaixo, na empresa Easel Corporation em 1993, incorporando os estilos de gerenciamento observados por Takeuchi e Nonaka.
Ken Schwaber e Jeff Sutherland fizeram a primeira co-apresentação do Scrum na conferência OOPSLA de 1995. Esta apresentação essencialmente documentou o aprendizado que Ken e Jeff tiveram ao longo dos anos anteriores na aplicação do Scrum e ajudaram a implantá-lo no desenvolvimento de softwares em todo o mundo.
Scrum junta conceitos de Lean, desenvolvimento iterativo e do estudo de Hirotaka Takeuchi e Ikujiro Nonaka.
A função primária do Scrum é ser utilizado para o gerenciamento de projetos de desenvolvimento de software. Ele tem sido usado com sucesso para isso, assim como Extreme Programming e outras metodologias de desenvolvimento. Porém, teoricamente pode ser aplicado em qualquer contexto no qual um grupo de pessoas necessitem trabalhar juntas para atingir um objetivo comum, como iniciar uma escola pequena, projetos de pesquisa científica, ou até mesmo o planeamento de um casamento.
Mesmo que idealizado para ser utilizado em gestão de projetos de desenvolvimento de software ele também pode ser usado para a gerência de equipes de manutenção, ou como uma abordagem para gestão de programas: Scrum de Scrums.
O Guia do Scrum O Guia do Scrum é o documento oficial que documenta o Scrum, suas regras e definições conforme desenvolvido e sustentado por mais de 20 anos por Jeff Sutherland e Ken Schwaber.
O documento é mantido por duas instituições, a Scrum.org e seus Professional Scrum Trainers (PSTs) e a Scrum Alliance. Ambas oferecem o cursos preparatórios para certificações relacionadas ao Scrum.Site do Scrum.Org oferece o curso de treinamento oficial de Scrum Master
Manutenção e evolução do Guia do Scrum Os criadores do Scrum Ken Schwaber e Jeff Sutherland são os responsáveis primários por toda e qualquer alteração direta ao documento do Guia do Scrum. Além disso os Professional Scrum Trainers, ou PST's, também atuam na evolução do Framework Scrum e no fornecimento de sugestões de melhorias para o documento e sua aplicação no mundo real. Sua atuação em empresas e com a comunidade é imprescindível para a evolução dos métodos, processos e ferramentas ágeis e no uso e adoção do Scrum.
O Professional Scrum Trainer (PST) é um título concedido pela Scrum.org a profissionais que demonstram conhecimentos práticos e teóricos sobre o Framework Scrum e que são aprovados em um rigoroso e extenso processo seletivo para tal. O título de PST representa a honraria e reconhecimento dentro da comunidade Scrum e seus portadores são reconhecidos como autoridades na adoção, implementação e uso do Scrum e suas práticas complementares em empresas, governos e organizações.
Atualmente existem 6 diferentes tipos de PST, cada um com uma diferente especialidade dentro do universo Scrum. Um PST pode ter uma ou mais especialidades e ser reconhecido por elas, que são:
Professional Scrum Master: PST especializado nos processos e ferramentas relacionados ao papel de Scrum Master; Professional Scrum Product Owner: PST especializado nos processos e ferramentas relacionados ao papel de Scrum Master; Professional Scrum Developer: PST especializado nos processos e ferramentas relacionados ao papel de Scrum Master; Scaled Professional Scrum: PST especializado nos processos e ferramentas relacionados ao papel de Scrum Master; Professional Scrum with Kanban: PST especializado nos processos e ferramentas relacionados ao papel de Scrum Master; Professional Agile Leadership: PST especializado nos processos e ferramentas relacionados ao papel de Scrum Master;
Características do Scrum
Clientes tornam-se parte da equipe de desenvolvimento (os clientes devem estar genuinamente interessados na saída); Entregas frequentes e intermediárias de funcionalidades 100% desenvolvidas; Planos frequentes de mitigação de riscos desenvolvidos pela equipe; Discussões diárias de status com a equipe de desenvolvimento; A discussão diária na qual cada membro da equipe de desenvolvimento responde às seguintes perguntas: O que fiz desde ontem em direção a meta? O que estou a pensar fazer até amanhã em direção a meta? Existe algo que me impede de atingir a meta? Transparência no planejamento e desenvolvimento; Reuniões frequentes com os stakeholders (partes interessadas no projeto) para monitorar o progresso; Problemas não são ignorados e ninguém é penalizado por reconhecer ou descrever qualquer problema não visto; Locais e horas de trabalho devem ser energizadas, no sentido de que "trabalhar horas extras" não necessariamente significa "produzir mais". Um princípio chave do Scrum é o reconhecimento de que, durante um projeto, os clientes podem mudar de ideia sobre o que eles querem e precisam (muitas vezes chamados requisitos churn), e que os desafios imprevisíveis não podem ser facilmente tratados de uma maneira preditiva ou planeada tradicional. Como tal, o Scrum adota uma abordagem empírica, aceitando que o problema não pode ser totalmente entendido ou definido, focando na maximização da habilidade da equipe para entregar rapidamente e responder às necessidades emergentes.
Gerenciamento ágil de projetos com Scrum Scrum não só reforçou o interesse em gerenciamento de projetos de software, mas também desafiou as ideias convencionais sobre essa gestão. Scrum é voltado para instituições de gerenciamento de projetos, onde é difícil planejar o futuro com mecanismos de controle de processos empíricos, como loops de feedback, onde constituem o elemento central do desenvolvimento do produto em comparação com a gestão de comando e controle tradicionais orientado. Ela representa uma abordagem radicalmente nova para o planeamento e gerenciamento de projetos de software, trazendo poder de decisão ao nível das propriedades operação e certezas. Scrum reduz defeitos e torna o processo de desenvolvimento mais eficiente, bem como reduzindo os custos de manutenção a longo prazo.
Sprint A sprint é o principal evento do Scrum, é a unidade básica de desenvolvimento. É um período curto, que pode ir de uma semana até o máximo de quatro semanas. O mais importante é entregar um incremento de produto, algo concreto que possa ser testado, ao final da sprint, e não apenas análises teóricas, por exemplo.
Antes de começar a sprint, deve ocorrer uma reunião de planejamento, chamada de Sprint Planning (Planejamento da Sprint). Nessa reunião, são definidos os itens a serem realizados durante o ciclo, que são retirados do Product Backlog. É importante que tanto o time de desenvolvimento quanto o Product Owner estejam nessa reunião. Os itens da sprint compõem o que é chamado de Sprint Backlog. Nesse momento, estes itens devem ser refinados e expandidos pelo time de desenvolvimento, com as informações técnicas e o tempo necessários para a conclusão de cada item.
Depois da definição do Sprint Backlog, é chegado o momento da execução, que irá de uma a quatro semanas, de acordo com o tempo definido para a Sprint. Durante esse período, devem ocorrer as Scrum Daily Meetings, que são pequenas reuniões diárias do time de desenvolvimento. A não ser que o time exiga a presença do Product Owner, é importante que o time consiga se auto-organizar sozinho. Além disso, as pautas das reuniões diárias normalmente envolvem a parte mais técnica do produto, logo a presença do Product Owner é pouco relevante. Essas reuniões podem durar, em média, 15 minutos apenas, e nesse momento o time pode revisar o que fez no dia anterior e se organizar para o dia atual. Ao fim do período de execução, é importante que o time entregue um incremento de produto concreto.
Ao fim da Sprint, ocorre a Reunião de Revisão, para inspecionar o incremento e adaptar o Product Backlog com os itens concluídos. Nesse momento, pode-se colher feedbacks de partes interessadas, apresentando-lhes o que foi feito. Um erro comum é tornar essa reunião um momento de apresentar ao Product Owner o que o time de desenvolvimento fez. Na verdade, na reunião de revisão, o Product Owner já deve estar ciente de tudo que foi feito e já ter aprovado, pois ele deve acompanhar a execução da Sprint.
Há, por fim, a Retrospectiva. Enquanto a reunião de revisão tem foco no produto, a reunião de retrospectiva tem foco no processo de trabalho. Aqui, o time pode comentar e refletir sobre os pontos fortes e fracos do seu trabalho em equipe, o que foi bom e o que foi ruim durante a execução, para aprimorar na próxima sprint.
Papéis Scrum é um esqueleto de processos que contém grupos de práticas e papéis pré-definidos. Os três papéis definidos no Guia Scrum são: O Scrum Master, que mantém os processos normalmente no lugar de um gerente de projeto; O Dono do Produto, ou Product Owner, que representa os stakeholders e o negócio;