quinta-feira, 20 de julho de 2023

Scrum - Excelente framework para todos os Devs

Olá pessoal! Estou animadíssima com meu novo projeto de jogo e pretendo manter este blog mais atualizado conforme o desenvolvimento do jogo avança. Porém hoje vim falar do Scrum, um framework para tornar o processo do desenvolvimento do game mais eficiente.

Não vou falar do Scrum em si, das definições e tals pois já existe muito material sobre isso na internet (o guia oficial do Scrum tem 16 páginas apenas, dá para ler na pausa para um café rs). Vou falar como ele tem ajudado a nossa equipe a trabalhar de forma mais eficiente e identificar claramente o que está sendo entregue e, por consequência, ver o andamento do projeto de forma contínua.

Acima temos um exemplo de algumas tarefas do nosso Trello, (excelente ferramenta para gerenciar projetos e tarefas) do que precisa ser feito, do que está em andamento e do que já foi concluído.

O mais legal desse framework é você ir refinando as entregas sem ter que esperar o produto final estar todo pronto. As reuniões diárias de 15 min são ótimas, pois à medida que vamos fazendo as tarefas da sprint daquela semana, vou pedindo as modificações e no sábado (que fixamos para ser o dia da entrega das tarefas da semana) elas já estão feitas e a entrega, quase sempre, não precisa de mais nenhum ajuste (e se precisar ficará para a próxima semana, na próxima sprint).

Imagine a seguinte situação: você tem um artista que está fazendo o background do seu jogo. Você diz a ele, no domingo, como quer que o cenário fique. Ele te entrega o primeiro estudo no próximo sábado à tarde. Como é a primeira vez que você está olhando a imagem, pode ser que você queira fazer vários ajustes, e lá se vai mais uma semana para uma nova entrega.

Com o Scrum esses ajustes já seriam solicitados durante a semana. Todo dia fazemos nossa reunião e neste momento é mostrado como está ficando a imagem. Se tem algo a mudar, já peço e a pessoa já corrige. No dia seguinte, ele me mostra novamente como está o andamento, e se necessário, peço novo ajuste e assim vai até chegar na data final de entrega (todo sábado). Abaixo temos alguns exemplos das versões originais e modificadas após a solicitação de ajustes.

versão 01

versão final

Imagine fazer isso apenas uma vez por semana ou por mês. Isso atrasaria demais o projeto como um todo. Então essas reuniões curtas são essenciais para ir polindo o que precisa ser entregue naquela semana enquanto a tarefa está em andamento.

versão 01

versão 02

versão final

Optamos também por sprints mais curtas, de uma semana: no domingo planejamos o que vamos fazer e entregar no próximo sábado. Nos dias úteis trabalhamos nas tarefas, sempre fazendo a reunião diária de 15 min e ajustando as coisas, se necessário. No sábado (último dia das nossas sprints) verificamos o que foi efetivamente entregue. Se algo planejado não foi entregue analisamos o motivo. Foi serviço demais? Apareceu algum impedimento? Se sim, por que não foi resolvido nas reuniões diárias? Algum outro motivo? Aqui a intenção não é punitiva, nem procurar culpados e sim de melhoria. O que podemos fazer para melhorar nossas entregas na próxima sprint? Precisamos identificar os problemas ou gargalos e resolvê-los.

Resumo das nossas semanas:

- Domingo: reunião de sprint backlog onde verificamos quais itens do product backlog iremos entregar naquela semana (no geral, dura 1h)

- Segunda a sexta: realização das tarefas para aquela semana (objetivos da sprint) com reuniões diárias de 15 min

- Sábado: entrega das tarefas, reunião de sprint review e sprint retrospective

Evitamos: trabalhar nas tarefas aos sábados e domingos (não é uma regra)

Desta forma, estamos sempre avançando e melhorando nossos processos. O mais legal é ver claramente o que está sendo entregue. Eu gostei tanto do Scrum que fiz minha pós em metodologias ágeis e tirei a certificação: Argon Scrum Master Certified. No meu trabalho atual (sim, tenho um emprego formal e o desenvolvimento de jogos AINDA é uma atividade secundária), alguns departamentos já utilizam o Scrum e existe um incentivo para obter essas certificações, então resolvi tirar.

Recomendo a todos os pequenos desenvolvedores que adotem o Scrum ou algum framework ágil (outro exemplo é o Kanban). Trabalhando sozinho ou em equipe, tenho certeza que o Scrum irá melhorar a produtividade e eficiência dos processos sejam eles quais forem.

Recomendo ainda a seguinte bibliografia para entender o Scrum:

- Guia oficial do Scrum

- Scrum: como fazer o dobro do trabalho na metade do tempo

- Scrum um guia de bolso um companheiro de viagem inteligente

O Scrum pode ser utilizado para qualquer coisa. Tente implementar na sua vida para resolver problemas, criar bons hábitos, ser mais produtivo, etc, você irá se surpreender com os resultados.

Então é isso pessoal, espero ter mais atualizações em breve! Obrigada a todos pela visita!