Os softwares mudaram muito nas últimas décadas (Nem precisava dizer, né?). E os mais importante: eles continuam mudando. Naturalmente, o processo de desenvolvimento de softwares também muda.
Dito isso, é insustentável inventar constantemente novos processos de desenvolvimento de softwares. Não seria melhor criar um processo de desenvolvimento flexível o suficiente para acomodar os avanços e as mudanças no desenvolvimento de softwares? É aqui que entra a abordagem Agile para desenvolvimento de softwares.
A abordagem Agile para desenvolvimento de softwares é uma abordagem iterativa e adaptável. Este artigo detalha uma das estruturas Agile mais usadas: a metodologia Scrum.
O que é Scrum?
A metodologia Scrum (também chamada de estrutura Scrum) é uma estrutura Agile usada no desenvolvimento de softwares.
E o que isso significa, exatamente?
Os processos tradicionais de desenvolvimento de softwares operam de forma linear. Primeiro planeja, depois desenvolve, depois testa e assim por diante. A abordagem Agile, por outro lado, é iterativa. Os projetos são divididos em períodos curtos, chamados "sprints", que geralmente duram entre duas semanas e um mês.
Em cada sprint, o time de desenvolvimento adiciona e aprimora funcionalidades para entregar, gradualmente, o melhor produto possível. O desenvolvimento e os testes acontecem com frequência e muitas vezes se sobrepõem. Quer saber mais sobre a abordagem Agile no desenvolvimento de softwares? Confira nosso artigo dedicado a esse tópico!
São várias as estruturas dentro da abordagem Agile. O Scrum, já mencionado, é uma dessas estruturas.
A metodologia Scrum se caracteriza pelo foco no trabalho em equipe e na colaboração. Aliás, o termo "Scrum" vem do rúgbi e se refere a uma parte do jogo que exige um esforço coordenado da equipe. Em cada sprint, os times Scrum se reúnem diariamente para acompanhar o progresso, identificar e transpor obstáculos e manter o projeto em andamento (abordaremos os tipos de reuniões Scrum mais à frente!).
Princípios do Scrum
A estrutura Scrum gira em torno de seis princípios fundamentais. Cada aspecto da metodologia Scrum, das reuniões diárias de sprint aos artefatos Scrum, reflete esses princípios. Vamos ver cada um deles! Os seis princípios fundamentais do Scrum são:
1. Controle sobre os processos empíricos: com foco na transparência, na adaptação e na avaliação frequente, a metodologia Scrum serve para as equipes de desenvolvimento testarem e melhorarem os produtos em cada estágio do processo.
2. Auto-organização: para que a estrutura Scrum funcione, cada membro da equipe deve aceitar integralmente o processo. Isso exige um alto nível de independência e de auto-organização.
3. Colaboração: para entregar o melhor produto possível, a equipe de desenvolvimento de softwares precisa trabalhar em conjunto. Ao longo de cada ciclo, as equipes devem compartilhar responsabilidade e prestar contas. É como um casamento: juntos no sucesso e no fracasso.
4. Priorização com base no valor: uma das características marcantes do Scrum é a flexibilidade. Para se adaptar e atender às novas demandas e requisitos do projeto, os times Scrum devem avaliar e priorizar constantemente cada tarefa a ser realizada.
5. Time-boxing: na metodologia Scrum, cada elemento de um sprint tem uma linha do tempo claramente definida. O sprint em si dura duas semanas, mas as reuniões diárias também operam numa linha do tempo que sempre é respeitada.
6. Desenvolvimento iterativo: como o Scrum é uma estrutura Agile, os produtos são criados de modo iterativo. Isso resulta na melhoria constante, na flexibilidade e, por fim, num produto de alta qualidade.
Time Scrum: como é composto?
Você já viu o termo “time Scrum” neste artigo; agora vamos ver o que ele significa. Por um lado, ele é autoexplicativo: time Scrum é simplesmente uma equipe de desenvolvimento de softwares que usa a estrutura Scrum. Mas não é só isso.
Para que cada sprint opere sem problemas, a metodologia Scrum descreve três funções — muitas vezes chamadas de funções Scrum — que todo time Scrum deve incluir: proprietário do produto, equipe de desenvolvimento e mestre Scrum. A seção a seguir detalha cada função e as respectivas responsabilidades.
Proprietário do produto
Para entregar o melhor produto possível, a equipe de desenvolvimento precisa saber as necessidades e expectativas do cliente. É preciso haver uma linha de comunicação aberta entre as duas partes. E como se faz isso? É aqui que entra o proprietário do produto.
O proprietário do produto é responsável por conhecer o produto por dentro e por fora. Sendo o principal ponto de contato entre o cliente e a equipe de desenvolvimento, ele deve transformar os requisitos do cliente em itens práticos; ou seja, deve criar e manter o backlog do produto.
Todo time Scrum tem um proprietário do produto, função que nunca deve ser compartilhada.
Equipe de desenvolvimento
Este termo é bem direto: a equipe de desenvolvimento envolve as pessoas que desenvolvem o produto. No Scrum, ela deve ser pequena e oferecer aptidões variadas; normalmente, um time Scrum inclui designers e programadores.
Você se lembra dos princípios fundamentais do Scrum? É onde entra a colaboração. Os membros do time Scrum de desenvolvimento devem treinar outros membros da equipe para evitar gargalos. Como o time Scrum de desenvolvimento é responsável pela codificação, os membros são responsáveis por estimar e alocar o tempo e os recursos necessários a cada item da lista de backlog.
Scrum Master
Se você ainda não notou uma coisa, vamos deixar bem claro: a estrutura Scrum exige muitas reuniões. E alguém tem que agendar, coordenar e moderar essas reuniões. É aqui que o mestre Scrum entra.
O domínio do mestre envolve tudo relacionado ao Scrum. Como a equipe está implementando a metodologia Scrum? Existem áreas a ser aprimoradas ou ajustadas? Como a equipe pode melhorar a cada sprint?
Além disso, ele deve garantir que as reuniões Scrum sejam agendadas e que ocorram sem problemas.
Artefatos Scrum
Já abordamos muitos termos do jargão do Scrum, mas ainda tem mais. No Scrum, o artefato é um mecanismo, ou ferramenta, para gerenciar e concluir o trabalho. São quatro os principais artefatos do Scrum:
Backlog de produtos
O backlog do produto, mantido pelo proprietário do produto, é uma lista de requisitos para o produto final. À medida que as prioridades mudam, o proprietário do produto preenche e reordena o backlog. No início de cada sprint, as equipes Scrum devem selecionar várias tarefas do backlog do produto a serem abordadas durante esse sprint.
Backlog do Sprint
A cada sprint, as tarefas selecionadas no backlog do produto são incluídas no backlog do sprint, que é mantido e usado exclusivamente pela equipe de desenvolvimento. Muitas vezes, essas tarefas são organizadas num quadro Scrum, que é uma estrutura visual para acompanhar o progresso e a prioridade de cada tarefa. As tarefas são classificadas em colunas nesse quadro: histórias, pendentes, em andamento e concluídas. À medida que as tarefas são concluídas, a equipe de desenvolvimento as transfere de coluna.