Documento de Metodologia
Documento de Metodologia e Processos Histórico de Versão
Histórico de Versão
Data | Versão | Descrição | Autor |
---|---|---|---|
14/09/2022 | 1.0 | Criação do documento | Leonardo Sobrinho e Kallyne M. Passos |
1. Introdução
Esse documento visa informar todas as metodologias, processos e práticas que serão utilizadas ao longo da execução do projeto Pokeranking.
2. Metodologias
Para a viabilização e o efetivo desenvolvimento do projeto serão utilizadas metodologias baseadas majoritariamente no Manifesto Ágil, de modo a ter um planejamento volátil que está sempre mudando. Um dos pilares do Manifesto Ágil é a maior valorização de indivíduos e interações em detrimento de processos e ferramentas. Tendo isso como base, este fator será o foco para o processo de desenvolvimento de software e para a consequente aprendizagem por parte de todos os indivíduos envolvidos no projeto. Dentre as metodologias a serem utilizadas, estão o Scrum, o Kanban, o Extreme Programming (XP) e o Planning Poker.
2.1 Scrum
"A estrutura do Scrum procura aproveitar a maneira como as equipes de fato trabalham, fornecendo ferramentas para se auto-organizarem e otimizarem em pouco tempo a rapidez e a qualidade do trabalho." Scrum: a arte de fazer o dobro do trabalho na metade do tempo, 2016
2.1.1 Product Backlog
O product backlog é uma lista ordenada das tarefas necessárias para o desenvolvimento e melhora do software. Nele estão contidas as funcionalidades a serem implementadas, correções de falhas e alterações em funcionalidades já existentes. Mudanças no Product Backlog devem ser decididas junto com a equipe e também devem ser realizadas em todas as etapas da construção do produto.
2.1.2 Pápeis
-
Scrum Master: É o responsável pela eficiência do grupo, auxiliando a todos no entendimento do framework Scrum e atuando na gestão do grupo.
-
Product Owner: Responsável por aumentar o valor do produto a ser desenvolvido e na gestão do Product Backlog, comunicando com o time sobre o objetivo a ser atingido.
-
Desenvolvedor: Atua no desenvolvimento e teste do produto, criando o Sprint Backlog e adaptando seu plano de modo a atingir o objetivo definido ao final da Sprint.
-
Designer: Atua nas responsabilidades, operações, atributos e relacionamentos de elementos do design do produto, assegurando também que esse esteja consistente com a arquitetura do software.
-
Arquiteto: Atua na decisão das melhores tecnologias a serem utilizadas pelo grupo durante o desenvolvimento do projeto. Atua em suporte ao DevOps.
-
DevOps: Atua na configuração do ambiente de desenvolvimento e homologação do produto. Visa também automatizar processos como os testes e também, atuar para que o projeto forneça uma entrega e integração contínuas.
-
Desenvolvedor: Atua no desenvolvimento e teste do produto, criando o Sprint Backlog e adaptando seu plano de modo a atingir o objetivo definido ao final da Sprint.
2.1.3 Sprints
-
Sprint: Sprints são os eventos principais do Scrum, tendo duração previamente projetada e constante durante todo o projeto. Uma sprint pode ter duração igual ou menor a um mês, sendo utilizado neste projeto o período fixado de uma semana. Na sprint são desenvolvidas todas as atividades do projeto conforme o planejado ao início desta.
-
Sprint Planning: O Sprint Planning é o evento que inicia a sprint, reunindo os membros da equipe para a definição do Sprint Backlog, um artefato que define as metas e atividades que devem ser executadas ao decorrer da sprint.
-
Sprint Review: Realizada no final de cada sprint, o objetivo do Sprint Review é verificar o trabalho realizado durante a sprint e debater as mudanças que ocorreram no projeto.
-
Sprint Retrospective: A Sprint Retrospective é o último evento da sprint, tendo o objetivo de levantar pontos positivos e negativos do decorrer da sprint e debater como a produtividade e a qualidade do produto desenvolvido podem ser incrementadas. Basicamente a Sprint Retrospective busca avaliar o que foi bom ou ruim durante a sprint e agir para que os pontos positivos sejam mantidos e os pontos negativos sofram alterações.
-
Sprint Backlog: O Sprint Backlog é um artefato gerado no Sprint Planning, conforme descrito no tópico anterior. Nele estão contidos os itens do product backlog a serem realizados pelos desenvolvedores.
2.2 Kanban
Kanban em japonês tem como significado quadro de sinal ou sinal visual, o quadro Kanban mais simples possui três colunas – “Pedido”, “Em Progresso” e “Concluído”. Ele serve como uma central de informações em tempo real, destacando os gargalos no sistema e qualquer outra coisa que possa atrapalhar as práticas de trabalho.
O kanban será utilizado como um método de gerenciamento de fluxo de trabalho para definir, gerenciar e melhorar processos que fornecem trabalho de conhecimento, objetivando a visualização rápida do trabalho à ser realizado e a maximização da eficiência e produtividade.
2.3 Extreme Programming (XP)
O Extreme Programming (XP) é uma metodologia ágil que visa o desenvolvimento de sistemas que entreguem o que é pedido pelo cliente, melhorando também o ambiente de trabalho dos desenvolvedores, de modo a propiciar a realização de trabalhos simples e de qualidade. Dentre os pilares do XP, estão a simplicidade, a comunicação, o feedback, respeito e a coragem (de dizer "não").
Durante o projeto, ele será utilizado como forma de melhorar o desempenho individual dos integrantes da equipe.
2.4 Planning Poker
O Planning Poker é um método que visa ajudar a mensurar a dificuldade de uma tarefa. Ele funciona de modo a facilitar a medida ao juntar a opinião do grupo sobre a dificuldade de determinada tarefa sem que haja influência de um integrante sobre outro.
No nosso projeto utilizamos como referência tamanhos de camisa.
3. Plano de Comunicação
O Plano de Comunicação vem para assegurar que exista uma comunicação eficiente e compreensível entre os integrantes da equipe e também para ajudar a documentar e organizar o conjunto de informações que a equipe gera durante todo o processo. Com isso em mente, nossa equipe optou por utilizar os seguintes meios de comunicação: * Github - armazenamento de código fonte, transparência na realização de tarefas e documentação de iterações. * Telegram - diálogo rápido, organização de eventos e decisões de baixo impacto. * Teams - reuniões marcadas para dias específicos da semana.
4. Referências
"Extreme Programming – Conceitos e Práticas", por Manoel.
SUTHERLAND, Jeff: Scrum. A Arte de Fazer o Dobro do Trabalho na Metade do Tempo. Editora LeYa, 2016.
"O Guia Definitivo para o Scrum: As Regras do Jogo", por Ken Schwaber e Jeff Sutherland.
"O que é Timebox? 14 exemplos e casos de uso.".