Projetos ágeis com SCRUM
Todo mundo que já trabalhou com engenheiros de software ou na indústria de tecnologia já ouviu as palavras “Agile” e “Scrum”, frequentemente usadas nesse meio. Mas o que exatamente eles significam? O que é Scrum em gerenciamento de projetos? Quais são as diferentes funções, eventos e artefatos no Scrum?
O que é Agile?
Pessoas que entram no mundo do desenvolvimento de software freqüentemente confundem Scrum com Agile. Mas há uma distinção fundamental entre os dois termos. Ágile se refere a um conjunto de métodos e práticas baseadas nos princípios e valores que foram expressos no Manifesto Ágil. No Manifesto podemos ver que ele fala sobre valores gerais como colaboração, funcionalidade cruzada e auto-organização de equipes. Mas não nos diz como as equipes podem chegar lá. Scrum é um framework que as equipes podem usar para implementar os princípios do desenvolvimento ágil. E é apenas uma das muitas abordagens diferentes para o desenvolvimento de produtos, outras sendo Extreme Programming (XP), Feature Driven Development, DSDM Atern e muitos outros. A metodologia ágil surgiu de técnicas usadas por empresas japonesas inovadoras como Honda ou Toyota nas décadas de 1970 e 1980. Em meados da década de 1990, Jeff Sutherland descobriu os métodos ágeis usados por essas empresas e criou o framework Scrum. Após o fluxo de sucessos iniciais, o Scrum rapidamente se espalhou por todo o cenário de desenvolvimento de software onde governa hoje.
O que é Scrum?
Scrum é uma estrutura ágil que foi projetada para ajudar as equipes na entrega iterativa e incremental de produtos. Ele se concentra no uso de vários processos empíricos que permitem que as equipes respondam às mudanças de forma rápida e eficiente. Enquanto os métodos tradicionais de gerenciamento de projetos se concentram em fixar os requisitos para controlar o tempo e o custo, o Scrum funciona de uma maneira diferente - ele fixa o tempo e o custo para entregar produtos do maior valor possível. Para conseguir isso, Scrum usa eventos, caixas de tempo, um Product Backlog bem priorizado e ciclos de feedback frequentes. Observe que, para funcionar, o Scrum requer excelente colaboração entre a equipe e o cliente. É assim que as equipes criam ótimos produtos de maneira enxuta. Scrum é um framework, o que significa que fornece às equipes uma estrutura de entrega. Ele não especifica como as equipes devem realizar práticas específicas, permitindo que determinem o melhor curso de ação por conta própria.
Scrum em gerenciamento de projetos - como funciona?
Aqui está um resumo de como o Scrum funciona na prática durante um projeto:
- O projeto começa com uma visão geral e um conjunto de características do produto, ordenadas do mais para o menos importante. Todos esses recursos irão parar no Product Backlog, que será mantido pelo Product Owner.
- Junto com a Equipe de Desenvolvimento, o Product Owner irá prever os recursos a serem concluídos durante um periodo de tempo que no Scrum é chamada de Sprint. Um Sprint pode durar de uma a quatro semanas. As equipes de desenvolvimento de software geralmente definem sprints para duas semanas.
- Uma vez que o Sprint Backlog de tarefas está pronto, a Equipe de Desenvolvimento começa a trabalhar nele. Durante a Sprint, a equipe se mantém em contato reunindo-se todos os dias em reuniões de 15 minutos chamadas Daily Scrum.
- No final de cada Sprint, a Equipe de Desenvolvimento mostra uma demonstração do trabalho concluído para todas as partes interessadas relevantes e coleta feedback para usá-lo durante o Sprint seguinte. A equipe também reserva um tempo para refletir sobre seu fluxo de trabalho com o objetivo de melhorá-lo no próximo sprint.
Funções Scrum
Scrum inclui três funções diferentes: a Equipe de Desenvolvimento, o Product Owner e o Scrum Master.
A Equipe de Desenvolvimento é formada por pessoas responsáveis pela entrega do produto. Observe que no Scrum, é a equipe que possui as estimativas, se compromete com as tarefas e participa das reuniões do Daily Scrum. A ideia aqui é criar uma equipe que seja auto-organizada; onde a estrutura emerge sem qualquer intervenção externa. Cabe à equipe escolher como construir um produto.
O Product Owner representa os interesses do cliente no desenvolvimento do produto. É a pessoa que tomará as decisões finais sobre o produto, será o proprietário do Product Backlog e comunicará a visão do produto à equipe. Outra responsabilidade importante do Product Owner é definir e priorizar os Itens do Product Backlog. O Product Owner trabalha com a Equipe de Desenvolvimento e o Scrum Master diariamente, respondendo a perguntas e fornecendo orientação.
A prioridade do Scrum Master é Scrum. A ideia por trás dessa função é promover e apoiar o Scrum e criar um defensor para a equipe que facilita a comunicação, remove obstáculos, medeia discussões dentro da equipe e negocia com partes interessadas externas.
Eventos Scrum
As organizações aplicam o Scrum por meio de uma série de eventos (ou reuniões) específicos. Entre eles estão:
- Sprint Planning,
- Daily Scrum,
- Sprint Review
- Sprint Retrospective.
Aqui está uma breve visão geral do Scrum em gerenciamento de projetos.
Sprint Planning
A reunião de planejamento da Sprint acontece no primeiro dia de cada Sprint. O Scrum Master , o Product Owner e a Equipe de Desenvolvimento participam da reunião para discutir o trabalho a ser concluído durante o sprint. O Product Owner apresenta o conjunto de recursos que gostaria que a equipe concluísse, enquanto a Equipe de Desenvolvimento identifica as tarefas necessárias para concluir esses recursos. A Equipe de Desenvolvimento usa estimativas de trabalho e descobertas de Sprints anteriores para prever se é possível concluir todos os recursos solicitados na Sprint. Nesse caso, a Equipe de Desenvolvimento pode se comprometer com a Sprint. Caso contrário, os recursos de baixa prioridade vão parar no Product Backlog até que a carga de trabalho da Sprint seja pequena o suficiente para atingir o compromisso da equipe.
Uma vez que a reunião de planejamento do Sprint é concluída, a equipe de desenvolvimento começa a monitorar seu progresso usando o quadro de tarefas. O quadro de tarefas ajuda a acompanhar o andamento das tarefas para cada recurso em um quadro que consiste em colunas marcadas como A Fazer, Em Andamento e Concluído.
Reuniões diárias do Scrum
O Daily Scrum é um evento que - como o próprio nome sugere - acontece todos os dias. Os membros da Equipe de Desenvolvimento se reúnem para uma curta reunião de 15 minutos para atualizar uns aos outros sobre seu progresso. Cada membro da equipe conta aos outros o que fizeram ontem e o que planejam fazer hoje. O Scrum Master também está presente durante esta reunião. Se os membros da equipe relatarem obstáculos ou outros problemas, é trabalho do Scrum Master cuidar deles.
Revisão de Sprint
No final do Sprint, a equipe mostra todo o trabalho concluído durante o Sprint para os stakeholders do projeto. O objetivo principal de uma Retrospectiva Sprint é demonstrar o trabalho concluído e coletar feedback valioso. O trabalho do Product Owner é rastrear o feedback e incorporá-lo ao Product Backlog.
Retrospectiva de Sprint
Após o término da reunião de Revisão do Sprint, a equipe realiza uma Retrospectiva do Sprint. É o momento de refletir sobre a forma como a equipe realizou o trabalho. A reunião se concentra em identificar o que deu certo e com o que a equipe estava lutando - e como melhorar isso nas próximas Sprints. Junto com o Scrum Master, a equipe criou um plano de ação e implementa seus itens ao longo do próximo Sprint.
Scrum Artifacts
O Scrum define três artefatos principais: o Product Backlog, Sprint Backlog, e o Product Increment. Todos eles promovem uma compreensão compartilhada do trabalho e transparência da equipe. Enquanto o Product Backlog, e o Sprint Backlog, descrevem o trabalho a ser feito, o Product Increment é a parte do produto concluída pela equipe durante uma Sprint.
- Product Backlog - responde à pergunta: “O que é mais importante construir a seguir?” O desenvolvimento de produtos é um processo dinâmico hoje, e as equipes geralmente atualizam e refinam regularmente o Product Backlog para que corresponda aos requisitos em mudança.
- Sprint Backlog - inclui o 'o quê' e 'como' do Sprint, bem como o plano da Equipe de Desenvolvimento para entregar o Product Increment e atingir o objetivo do Sprint. Funciona como uma visão em tempo real do trabalho que a Equipe pretende realizar durante a Sprint.
- Product Increment - no Scrum, o objetivo da Equipe de Desenvolvimento é entregar um novo Product Increment a cada Sprint. A equipe precisa chegar a um acordo sobre uma definição de Concluído para criar transparência e fornecer orientação.
Scrum em gerenciamento de projetos é uma estrutura essencial para equipes de desenvolvimento hoje. Suas funções, artefatos e eventos têm um impacto profundo em como as empresas criam novos produtos digitais.