Scrum: guia completo da técnica ágil
Scrum é uma técnica ágil e flexível para gerenciar o desenvolvimento de
software, cujo principal objetivo é maximizar o retorno do investimento para sua
empresa. Neste blogpost vamos te explicar tudo o que você precisa saber sobre essa técnica de desenvolvimento ágil.
O que é o Scrum?
Scrum é uma técnica ágil e flexível para gerenciar projetos, que surgiu com ênfase em projetos de desenvolvimento de software. O Scrum tem uma estrutura para abordagem de problemas complexos, buscando a solução de forma produtiva, adaptativa e criativa. A estrutura do Scrum baseia-se na construção da funcionalidade de maior valor para o cliente em primeiro lugar e nos princípios de inspeção contínua, adaptação, autogestão e inovação.
Por que optar pelo Scrum para gerenciamento de projetos?
Veja só, o Scrum possui uma estrutura para ajudar você e sua equipe a gerar valor por meio de soluções adaptáveis para problemas complexos. Com o Scrum, o cliente fica entusiasmado e comprometido com o projeto à medida que o vê crescer, interagindo.
Também permite realinhar o projeto com os objetivos de negócios da sua empresa a qualquer momento, pois você pode introduzir alterações funcionais ou prioritárias no início de cada nova iteração sem nenhum problema. Este método de trabalho promove a inovação, motivação e empenho da equipa que integra o projeto.
Qual é o papel do Scrum?
No Scrum, a equipe se concentra na construção de software de qualidade. A gestão de um projeto Scrum foca na definição das características que o produto a ser construído deve ter (o que construir, o que não construir e em que ordem) e na superação de qualquer obstáculo que possa atrapalhar a tarefa da equipe de desenvolvimento.
Você sabia que as metodologias ágeis surgiram como resposta aos problemas manifestados em projetos de software ao aplicar fórmulas tradicionais de gestão? As chamadas preditivas ou em cascata. Essas lógicas não levam em conta uma realidade: o usuário-cliente que ordena o trabalho e não tem clareza sobre os requisitos até ver o trabalho avançado.
Quem desenvolveu sites, por exemplo, sabe do que estamos falando: o cliente não sabe o que quer, mas quando vê o trabalho feito, começa a fazer modificações para desespero do designer. O Scrum resolve esse problema.
Equipe do Scrum, quem são?
Antes de tudo, vou apresentar a você os papéis de uma equipe de Scrum:
- Product Owner (PO): Representante dos acionistas e clientes que utilizam o software. Ele foca no lado do negócio responsável por entregar um valor maior que o dinheiro investido. Transfere a visão do projeto para a equipe, formaliza os benefícios em histórias a serem incluídas no Product Backlog e as reprioriza regularmente.
- Scrum Master: Pessoa que lidera a equipe orientando-a para o cumprimento das regras e processos da estrutura de Scrum. Gerencia a redução de gargalos do projeto e trabalha com o Product Owner para maximizar o ROI.
- Time de desenvolvimento: Grupo de profissionais com conhecimento técnico necessário e que desenvolvem o projeto em conjunto, realizando as histórias com as quais se comprometem no início de cada sprint.
E agora, como funciona o Scrum?
Agora que você já sabe o que é o Scrum, vou mostrar a você como ela funciona. A estrutura do Scrum é simples. Veja o desenho abaixo, que representa o framework do Scrum conforme a proposta de Ken Schwaber e Jeff Sutherland.
Agora, vamos nos aprofundar no processo e funções do Scrum, venha comigo.
O desenvolvimento do Scrum é feito de forma iterativa e incremental. Cada iteração,
denominada Sprint, tem uma duração pré-estabelecida entre 2 e 4 semanas, resultando em uma versão do software com novas funcionalidades prontas para serem utilizadas. A cada nova Sprint, as funcionalidades já construídas são ajustadas e novos recursos são adicionados, sempre priorizando aqueles que proporcionam maior valor ao negócio.
Product Backlog
O product backlog é o conjunto de requisitos de histórias definidos, descritos em linguagem não técnica e priorizados pelo valor do negócio, ou o que é o mesmo, pelo retorno do investimento considerando seu benefício e custo. Requisitos e prioridades são revisados e ajustados durante o curso do projeto em intervalos regulares.
Sprint planning
A sprint planning – planejamento da sprint- , é quando se planeja o que e como será entregue a meta da Sprint. Para realizar esse planejamento, o proprietário do produto, o scrum master e a equipe scrum devem se reunir. Esses tipos de encontros sempre têm duas
partes:
A partir do product backlog, a equipe scrum faz perguntas e seleciona os requisitos de prioridade mais alta a serem concluídos na primeira iteração. Dessa forma, se o cliente precisar, eles serão entregues ao final do sprint.
A equipe scrum escreve a lista de tarefas a serem realizadas no sprint. As equipes de trabalho atribuem tarefas e se organizam em pares ou grupos maiores. Dessa forma, o conhecimento é compartilhado e a resolução de objetivos mais complexos é favorecida. A
resiliência prevalece nessas equipes de trabalho.
Sprint backlog
Lista das tarefas necessárias para realizar as metas da sprint.
Daily Scrum
Reunião diária de no máximo 15 min. em que a equipe está sincronizada para trabalhar de forma coordenada. Cada membro comenta o que fez no dia anterior, o que fará hoje e se há impedimentos.
Sprint Review
Na sprint review são verificados os resultados obtidos na sprint. Desta verificação pode-se descobrir quais futuras adaptações devem ser realizadas no produto. Além disso, o time apresenta os resultados para os principais stakeholders e, assim, é analisado o progresso em direção ao produto final.
Sprint retrospective
Reunião realizada no final do sprint e na qual a equipe apresenta as histórias alcançadas por meio de uma demonstração do produto. Além disso, a equipe analisa o que foi bem-feito, quais processos podem ser melhorados e discute como melhorá-los. Ou seja, desta reunião melhorias para a próxima sprint.
Na prática, como acontece?
A equipe de scrum se reúne diariamente por 15 minutos para sincronizar seu progresso no alcance das metas. Cada equipe inspeciona o trabalho de seus pares para se adaptar dinamicamente ao desenvolvimento.
Durante o desenvolvimento dessas reuniões, o scrum master é responsável por orientar a equipe scrum a manter o foco no alcance dos objetivos. Ele consegue isso eliminando os obstáculos que a equipe scrum não conseguiu resolver e protegendo a equipe de interrupções externas ao projeto.
O proprietário do produto também costuma estar presente nessas reuniões. Assim, em conjunto com a equipe, eles redefinem a lista de requisitos e, se necessário, replanejam ou alteram as necessidades do projeto. O objetivo dessas interações é maximizar a utilidade do produto a ser desenvolvido e, claro, o retorno do investimento
O que é feito em cada sprint?
Cada Sprint é uma iteração que é realizada dia a dia para o sucesso do Scrum. Por exemplo, o primeiro dia deve ser dividido em duas partes:
- Escolha dos requisitos: o cliente deve definir quais são os seus requisitos. Esta reunião deve ter uma duração máxima de quatro horas.
- Planejamento de cada iteração: também com duração não superior a quatro horas, a equipe deve definir uma lista de atribuições para cada iteração e assim responder aos requisitos estabelecidos pelo cliente na primeira reunião.
Para cada dia, é necessário realizar uma Sprint Meeting que não deve durar mais de quinze minutos, para que todos os membros da equipe de trabalho acompanhem o cumprimento dos requisitos. Para esta reunião diária, as seguintes perguntas devem ser respondidas:
- O que você fez desde a última Sprint Meeting?
- Quais são os próximos passos a seguir?
- Quais são os impedimentos que você tem ou poderia ter?
O ponto positivo da Sprint é que o Scrum Master ficará encarregado de eliminar os impedimentos que o time não consegue resolver sozinho com o propósito de proteger o time de coisas externas que podem incomodar o comprometimento da produtividade do time.
Controle e adaptação
A reunião de controle e revisão ocorre no último dia do sprint. Para a revisão a equipe de scrum mostra ao cliente os requisitos concluídos no sprint. Estes aumentam a evolução do produto final ou projeto, para que possa ser entregue com o mínimo esforço.
Com base nos resultados e adaptações, o proprietário do produto indica as adaptações objetivas a serem feitas. Assim, o projeto é reprogramado a partir da primeira iteração.
Quais são os benefícios do Scrum?
As suas vantagens são múltiplas e afetam os Stakeholders e as suas empresas, pelo que a sua implementação pode servir de exemplo para a realização de todos os seus projetos, mesmo os que não são tão mutáveis.
- Cumprimento das expectativas: O cliente estabelece suas expectativas indicando o valor que cada requisito/histórico do projeto lhe traz, a equipe as estima e com essas informações o Product Owner estabelece sua prioridade. Regularmente, nas demonstrações do Sprint, o Product Owner verifica se os requisitos foram realmente atendidos e transmite seu feedback para a equipe.
- Flexibilidade às mudanças: Alta capacidade de reação às mudanças nos requisitos geradas pelas necessidades do cliente ou evolução do mercado. A estrutura é projetada para se adaptar às mudanças nos requisitos que os projetos complexos acarretam.
- Redução do Time to Market: O cliente pode começar a utilizar as funcionalidades mais importantes do projeto antes mesmo de ele estar completamente finalizado.
- Maior qualidade de software: O método de trabalho e a necessidade de obter uma versão funcional após cada iteração ajudam a obter um software de qualidade superior.
- Maior produtividade: é alcançada, entre outros motivos, graças à eliminação da burocracia e à motivação dos trabalhos em equipe que proporciona o fato de serem autônomos para se organizarem.
- Maximiza o retorno sobre o investimento: Produção de software apenas com os recursos que proporcionam o maior valor comercial graças à priorização pelo retorno do investimento.
- Previsões de tempo: Através desta estrutura, conhece-se a velocidade média da equipe por sprint (os chamados story points), com o qual, consequentemente, é possível estimar facilmente quando uma determinada funcionalidade que ainda está no Backlog estará disponível.
- Redução de riscos: O fato de realizar primeiro as funcionalidades mais valiosas e conhecer a velocidade com que a equipe avança no projeto, permite eliminar os riscos de forma eficaz e antecipada.
Casos de uso com Scrum
Existem dois casos de uso para você se entender um pouco melhor, na prática
essa técnica. Um é um caso de sucesso e o outro de fracasso. Vamos lá…
O sucesso do Shopify
Você conhece o Shopify? Veja só, o Shopify utiliza da técnica Scrum para o desenvolvimento de software. Pontos de destaque no sucesso da implementação da técnica no Shopify são que a empresa deu ao Scrum Master a importância necessária para o sucesso de seu projeto, ou seja, eles o deixaram fazer seu trabalho como líder principal.
Além disso, eles não implementaram a técnica como empresa, mas contrataram agentes externos para fazer o trabalho. Veja só, o trabalho do Project Owner foi realizado ao máximo, sendo a voz do cliente para que os requisitos fossem resolvidos, o que era essencial para que os resultados fossem os mais óptimos e esperados.
Por outro lado, o fracasso….
Foi Jeff Sutherland, co-criador do Scrum e Senior Advisor e Coach do OpenView, que explicou os motivos do fracasso da implementação do Scrum na Healthcare.gov. Veja só, você deve prestar atenção especial se não quiser que isso aconteça com você em seus projetos.
Healthcare.gov fazia parte de um projeto do governo dos EUA para dar a impressão de mais transparência em seu seguro de saúde. Ao aplicar o Scrum, não respeitaram determinados processos que devem ser obrigatórios para o sucesso da aplicação e que lhe explicamos em funcionamento.
Por exemplo, o projeto não foi lançado fase a fase, o que é essencial no Scrum, pois o ambiente está mudando e o planejamento é feito semana a semana. Por outro lado, pequenas entregas não eram testadas toda semana para aprender com os erros e continuar na semana seguinte.
Além disso, eles contrataram mais de 20 consultores e nunca viram uma figura de liderança forte em que os outros tivessem um verdadeiro guia. Fora isso, houve uma
total falta de coordenação entre as equipes para entregar suas tarefas no prazo, e lembremos que as equipes devem se autogerenciar para ter os melhores resultados na aplicação da tecnologia.
Finalmente, o teste ou teste final foi feito em um período muito curto, e esta
fase final é a mais importante e a que deveria ser mais detalhada.
Dicas extras
Agora que já expliquei a você tudo sobre o Scrum, que tal algumas dicas sobre o Scrum Master? Legal, não é mesmo?
Requisitos de um Scrum Master
A primeira coisa que você deve saber é que o Scrum Master é um líder a serviço da equipe, não do sistema. Em outras palavras, sua prioridade não é tanto que a técnica de Scrum seja seguida à risca, mas que a equipe seja produtiva e motivada trabalhando no Scrum. Descubra quais são as qualidades imprescindíveis para um Scrum Master.
Treinador
O Scrum Master é, como o próprio nome sugere, o especialista em Scrum. Isso significa que seu primeiro objetivo dentro de uma organização que deseja adotar o Scrum é ensinar em que consiste o Scrum. Quais são os elementos fundamentais, como as reuniões ou eventos devem ocorrer e, sobretudo, como a comunicação deve fluir na equipe.
Uma das principais características do Scrum é a participação ativa de todos os membros da equipe. Além de realizar suas tarefas correspondentes, eles contribuem com ideias, sugerem melhorias, comentam se algo deu errado etc. Uma equipe Scrum não tem um único líder, mas todos têm voz e voto. E isso é algo que o Scrum Master deve saber transmitir. Assim, o Scrum Master não apenas desvenda a técnica, mas também treina e supervisiona cada etapa do processo.
Facilitador
O Scrum Master existe, em parte, para que certos eventos ocorram e todos os membros da equipe estejam ativamente envolvidos. Tem que facilitar a realização dessas reuniões, para quem quiser opinar, para que cada reunião fique clara antes para administrar melhor o tempo etc. Portanto, ele tem que ser um facilitador nato, empático, que saiba reconhecer
um conflito e agir sobre ele, que incentive o empoderamento.
Observador
O Scrum Master não participa de nenhuma tarefa do projeto. Você está desenvolvendo um novo aplicativo? Vai lançar um site? Preparar uma campanha de rede?
O Scrum Master não se importa, seu objetivo é que a metodologia ágil seja bem aplicada e que a equipe obtenha os melhores resultados possíveis, sejam eles quais forem. E para isso você precisa observar. Ouça, observe os gestos, os detalhes, as habilidades de cada membro da equipe. Além disso, ele não tem medo do fracasso, mas entende que você aprende com os erros.
Por fim…
O Scrum é uma técnica ágil que permite gerenciar o desenvolvimento de um software ou projeto, que tem como finalidade maximizar o retorno do investimento para a empresa em questão. É uma tendência na gestão de projetos. Indispensável para ter um negócio ágil. Sempre que os requisitos não estiverem claros ou precisarem ser alterados e o ambiente for complexo, a equipe scrum entregará os melhores resultados possíveis em
tempo recorde.
O principal motivo de implantação dessa estrutura é construir primeiro a funcionalidade de maior valor para o cliente, ou seja, priorizar, e depois fazer uma inspeção ou acompanhamento para adequar tudo, com autogestão da equipe.
Definitivamente, essa técnica é a melhor opção para projetos cujos ambientes são tão mutáveis, pois com sua estratégia de acompanhamento semana a semana e reuniões diárias para falar sobre impedimentos, permite que tudo esteja sob controle.
Até o próximo conteúdo,