Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: novos textos e ajuste na metodologia #96

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 24 additions & 27 deletions docs/planejamento/metodologias.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@

| **Título** | **Alterações Feitas** | **Autor** | **Data de Hoje** |
|-------------------|-----------------------------------------------| -----------| --------------- |
| Metodologias | Abertura de documento | Bruno Cruz | 07 de dezembro de 2024 |
| Metodologias v1 | Abertura de documento | Bruno Cruz | 07 de dezembro de 2024 |
| Metodologias v1.1 | Correção de documento | Bruno Cruz | 07 de janeiro de 2025 |

## Introdução

Expand All @@ -21,69 +22,65 @@ O método XP (Extreme Programming) descreve um método voltado principalmente pa

A programação em par é feita de modo em que dois programadores desenvolvem uma mesma parte do código em conjunto, no mesmo ambiente. Isso garante com que ambos possam ter o aprendizado sobre cada elemento realizado no projeto, minimizando a dependência de um único colaborador. Também favorece o nivelamento técnico e o compartilhamento de conhecimento em ambos programadores.

A equipe a utilizou separando a equipe em pares para a realização das tarefas, onde a cada sprint esse pareamento foi alterado.  

### <i>Testes de aceitação​​</i>

O Desenvolvimento Orientado a Testes (Test Driven Development), o TDD, é amplamente utilizado. Ele garante que cada parte do código criada seja testada unitariamente, minimizando os erros do produto.
O Teste de aceitação é um teste funcional, no qual o usuário decidirá se a implementação do produto disponibilizada pela equipe está aceitável, conforme os critérios de aceitação. Esses testes de aceitação podem ocorrer de modo assíncrono, ou no momento da reunião com os PO's.

### <i>Cliente Presente​​</i>

O cliente é participativo no processo do desenvolvimento do Produto, sempre está em contato com os desenvolvedores, observando o processo e recebendo os resultados de cada processo constantemente.
O cliente é participativo no processo do desenvolvimento do Produto, sempre está em contato com os desenvolvedores, observando o processo e recebendo os resultados de cada processo constantemente.

### <i>Código Coletivo​​</i>

O código fonte é disponibilizado a todos e todos têm acesso e direito para realizar mudanças. Assim, toda a equipe de desenvolvedores pode conhecer todas as partes do produto.
O código-fonte é disponibilizado a todos e todos têm acesso e direito para realizar mudanças. Assim, toda a equipe de desenvolvedores pode conhecer todas as partes do produto. Além da realização da padronização de código do produto.

### <i>Padronização de código​​</i>
### <i>Refatoração</i>

O código fonte é padronizado com regras ditadas pela equipe. Dessa forma o código fica menos confuso e é mais simples caso seja necessário realizar mudanças futuramente.
A refatoração é o processo de alteração do código-fonte, de uma forma onde esse processo não altere a funcionalidade externa do produto, mas que melhore a estrutura interna do código. A refatoração é usada para termos um código mais limpo e organizado, minimizando o risco de bugs e melhorando o entendimento.

### <i>Releases Curtos​​</i>

Sempre são liberadas pequenas versões do produto para o cliente, assim ele poderá testar partes do produto à medida em que este é construído e ajudar no processo de validação.
Sempre são liberadas pequenas versões do produto para o cliente, assim ele poderá testar partes do produto à medida que este é construído e ajudar no processo de validação.


### <i>Testes Unitários</i>

Testes unitários são testes realizados em cada elemento do produto, a fim de verificar se cada um deste funciona como o esperado. Esses testes são usados para que seja possível reduzir o risco de propagação de erros, ou até mesmo isolar um erro específico e assim poder realizar a manutenção do código da melhor maneira.

## Scrum

O método Scrum é um método com foco no gerenciamento do projeto, e esse método propõe artefatos que ditam sobre o planejamento e tarefas dos membros da equipe. É um método iterativo e incremental, onde cada artefato tem uma duração bem definida, criando um fluxo contínuo de trabalho durante ciclos. Esses ciclos são conhecidos como Sprints, e cada sprint determina uma iteração, onde essa tem um tempo determinado e ocorrem vários artefatos durante cada sprint, e ao final de cada sprint, uma release (versão do produto) é liberada ao cliente, além de que ao acabar completamente a sprint, é iniciada outra sprint. Alguns dos artefatos usados no desenvolvimento do projeto são:
O Scrum é um método ágil voltado para o gerenciamento de projetos, com ênfase na organização e colaboração da equipe. Ele utiliza práticas Scrum, que estruturam o planejamento e a execução das tarefas dos membros da equipe. Esse método promove um fluxo de trabalho contínuo por meio de ciclos iterativos e incrementais chamados sprints.

Cada sprint tem uma duração predefinida, geralmente de uma semana nesse projeto, durante a qual a equipe trabalha em tarefas prioritárias para entregar um incremento do produto. Ao final de cada sprint, ocorre uma revisão para apresentar o que foi concluído ao cliente, e uma nova sprint é planejada em seguida. Esse ciclo contínuo garante que o produto seja desenvolvido de forma adaptável e em constante alinhamento com as necessidades do cliente. Algumas práticas Scrum usados no desenvolvimento do projeto são:

### <i>Backlog do Produto</i>

O backlog do produto é basicamente uma lista dos requisitos funcionais, chamados de histórias de usuários, e dos requisitos não funcionais. Nessa lista temos aquilo que tem valor para o usuário, e é altamente flexível, podendo ser alterada a qualquer momento. Esse backlog dura até o desenvolvimento final do produto.

O Backlog está disponível à toda equipe e aos PO's no quadro de atividades do Zenhub.

### <i>Planejamento de Sprint</i>

A cada começo de sprint, a equipe, juntamente dos PO 's, entram em acordo sobre os itens do backlog a serem realizados nesse ciclo. Os Product Owners escolhem e priorizam os requisitos, onde a equipe define a velocidade de produção, estimada em pontos por história, e também detalham cada história em tarefa e estimam a duração delas.
A cada começo de sprint, a equipe, juntamente dos PO's, entram em acordo sobre os itens do backlog a serem realizados nesse ciclo. Os Product Owners escolhem e priorizam os requisitos, onde a equipe define a velocidade de produção, estimada em pontos por história, e também detalham cada história em tarefa e estimam a duração delas.

### <i>Backlog da Sprint</i>

O backlog da Sprint é gerado após a Sprint Planning, onde itens do backlog do produto são escolhidos para serem realizados nesse ciclo. A equipe organiza como será realizado cada item, podendo alterar quem e como desejam realizar cada tarefa, no entanto, sempre tendo em foco o objetivo da sprint
O Backlog da Sprint é gerado após a Sprint Planning, onde itens do backlog do produto são escolhidos para serem realizados nesse ciclo. A equipe organiza como será realizado cada item, podendo alterar quem e como desejam realizar cada tarefa, no entanto, sempre tendo em foco o objetivo da Sprint.

### <i>Daily Meeting</i>

Uma reunião da equipe realizada diariamente, com curto tempo de realização, aproximadamente 15 minutos, com o objetivo de analisar a situação de cada membro e possíveis obstáculos para a conclusão do produto.
Esse Backlog é escolhido pelos PO's, juntamente com a equipe, a cada início de sprint, destacando, juntamente com os critérios de aceitação, quais itens do Backlog do produto serão realizados.

### <i>Sprint Review</i>

Ao final da sprint, a equipe demonstra aos P.O's aquilo que foi realizado durante toda a sprint, além de disponibilizar uma versão do produto. Assim, a equipe recebe um feedback de cada história, decidida se estas foram aceitas ou se necessitam voltar ao backlog do Produto. Somente as histórias concluídas por completo poderão ser aceitas.
Ao final da Sprint, a equipe demonstra aos P.O's aquilo que foi realizado durante toda a sprint, além de disponibilizar uma versão do produto. Assim, a equipe recebe um feedback de cada história, decidida se estas foram aceitas ou se necessitam voltar ao backlog do Produto. Somente as histórias concluídas por completo poderão ser aceitas.

### <i>Retrospectiva da Sprint</i>

A retrospectiva da Sprint é o último artefato de cada Sprint. A equipe Scrum realiza uma reunião e avalia o processo de desenvolvimento, com o objetivo principal de obter oportunidades de melhoria e debater sobre aquilo que funcionou e sobre aquilo que pode ser melhorado na próxima sprint.

## Kanban

O sistema Kanban propõe uma abordagem com o uso de cartões sinalizadores, chamados de Kanban. Esses devem trazer visibilidade, cadência contínua do fluxo de trabalho e limitação do trabalho. Cada cartão traz informações do trabalho a ser realizado, geralmente sendo os requisitos e pequenas tarefas para a realização deste. Os cartões devem ficar em um ambiente com total visibilidade, tanto ao time, quanto aos P.O 's, por isso eles são alocados em quadros Kanban.
O sistema Kanban propõe uma abordagem com o uso de cartões sinalizadores, chamados de Kanban. Esses devem trazer visibilidade, cadência contínua do fluxo de trabalho e limitação do trabalho. Cada cartão traz informações do trabalho a ser realizado, sendo geralmente os requisitos e pequenas tarefas para a realização deste. Os cartões devem ficar em um ambiente com total visibilidade, tanto ao time, quanto aos P.O 's, por isso eles são alocados em quadros Kanban.

Neste projeto, o quadro Kanban utilizado é uma função do Software Zenhub, onde a equipe, juntamente dos PO 's, utilizam o quadro de tarefas (Board), onde temos diversos cartões sinalizadores. Dentro desse quadro, cada cartão está dividido com suas tarefas, além de estarem em uma listas específicas, onde indicam a finalidade desses. Por exemplo, temos os cartões que podem estar no backlog do produto ou então no backlog da issue, quando algum membro começa a realizar essa tarefa, além de no cartão conter a informação de qual membro está realizando-a, movemos o cartão para a lista "In Progress", e quando totalmente finalizado, ele será movido a lista de "Done". Assim, tanto quanto os membros da equipe, quanto os PO 's, poderão a qualquer momento verificar como está o andamento do projeto como um todo.

## PMBOK
O PMBOK (Project Management Body of Knowledge) é um guia de boas práticas em gerenciamento de projetos, desenvolvido pelo PMI (Project Management Institute). Ele oferece um conjunto abrangente de diretrizes e terminologias para o gerenciamento efetivo de projetos em diferentes setores e indústrias.
A metodologia do PMBOK se baseia em cinco grupos de processos e dez áreas de conhecimento. Os cinco grupos de processos são:

1. Iniciação: Envolve a definição e autorização do projeto ou fase.
2. Planejamento: Desenvolve o plano do projeto e define os objetivos e as atividades necessárias.
3. Execução: Concentra-se na coordenação de pessoas e recursos para executar o plano do projeto.
4. Monitoramento e Controle: Acompanha, revisa e regula o progresso e o desempenho do projeto.
5. Encerramento: Formaliza a aceitação do projeto e garante a conclusão adequada de todas as atividades.

As dez áreas de conhecimento do PMBOK incluem integração, escopo, tempo, custo, qualidade, recursos humanos, comunicação, riscos, aquisições e partes interessadas.
Loading
Loading