Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • I Idoso Mais Wiki
  • Project information
    • Project information
    • Activity
    • Labels
    • Planning hierarchy
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Infrastructure Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • IDOSO Mais
  • Idoso Mais Wiki
  • Wiki
  • processo

processo · Changes

Page history
Update processo authored Aug 27, 2022 by Felipe Grosze Nipper De Oliveira's avatar Felipe Grosze Nipper De Oliveira
Hide whitespace changes
Inline Side-by-side
processo.md
View page @ 47b13bed
| [Home](home) | [Escopo e Cronograma](escopo) | [**Processo**](processo) | [Design/Mockups](design_mockups) | [Configuração](configuracao) | [Arquitetura](arquitetura) | [Código](codigo) | [BD](banco_dados) | [Qualidade](qualidade) | [Utilização](utilizacao) |
| :----------: | :---------------------------: | :----------------------: | :--------------: | :--------------------------: | :------------------------: | :--------------: | :---------------: | :--------------------: | :----------------------: |
<table>
<tr>
<th>
[Home](home)
</th>
<th>
[Escopo e Cronograma](escopo)
</th>
<th>
[**Processo**](processo)
</th>
<th>
[Design/Mockups](design_mockups)
</th>
<th>
[Configuração](configuracao)
</th>
<th>
[Arquitetura](arquitetura)
</th>
<th>
[Código](codigo)
</th>
<th>
[BD](banco_dados)
</th>
<th>
[Qualidade](qualidade)
</th>
<th>
[Utilização](utilizacao)
</th>
</tr>
</table>
# Processo de Desenvolvimento
......@@ -9,88 +51,118 @@ Esta seção é dedicada a apresentar o processo de desenvolvimento do time, jun
## Sumário
- [Git Workflow](#git-workflow)
- [GitFlow](#git-workflow)
- [Matriz de Responsabilidade](#matriz-de-responsabilidade)
- [Plano de Comunicação](#plano-de-comunicação)
- [Plano de Comunicação](#plano-de-comunica%C3%A7%C3%A3o)
- [Plano de Riscos](#plano-de-riscos)
## Git Workflow
## GitFlow
### Branches
### **O que é?**
#### Nomes
GitFlow é o processo de contribuição para os projetos utilizando a ferramenta do Git. As definições presentes neste doc se aplicam tanto para os repositórios de frontend quando para o repositório de backend.
Como padrão para nomes de branches, foi decidido o seguinte:
### ![gitflow](uploads/1974c401a2e51ff26f885acad48fd181/gitflow.drawio.png)Branches
```
<tipoDeItem>-<nomeDoItem>
```
#### Branches protegidas:
Exemplo de Componentes:
As seguintes branches nunca devem ser apagadas e possuem regras específicas:
```
component-navBar
component-slider
```
#### main
Exemplo de Páginas:
Branch principal do projeto. Esta branch deve sempre representar o código rodando no ambiente de produção. A branch é protegida e só pode ser alterada a partir de Merge Requests vindo diretamente da branch **develop** OU de branches de **hotfix**. Apenas AGES III e IV podem fazer merge dos MRs e realizar alterações nessa branch.
```
page-recipes
page-creations
```
Quando é feito merge de um MR para essa branch, a Pipeline de CI é disparada para checagem.
#### dev
Branch default para desenvolvimento. Esta deve ser a branch de partida de todas as outras branches do projeto, exceto **hotfix**. Essa branch é protegida para modificação que não seja através de Merge Requests. Qualquer AGES pode criar um MR pra ela e fazer merge desse MR.
Quando é feito merge de um MR para essa branch, a Pipeline de CI é disparada para checagem e em caso de sucesso o deploy é feito automaticamente para o ambiente de DEV.
#### Branches não protegidas (feature/fix/chore):
**Feature:** branches para implementação de funcionalidades novas. O padrão de nomenclatura é _feature/<contexto>_ onde _<contexto>_ representa uma breve descrição do que está sendo implementado nesta branch. Exemplo: _feature/tela-cadastro_.
**Fix:** branches para correção de bugs. O padrão de nomenclatura é _fix/<contexto>_ onde _<contexto>_ representa uma breve descrição do que está sendo corrigido nessa branch. Exemplo: _fix/cor-errada-no-login_.
#### Criação
**Chore:** branches para configuração. O padrão de nomenclatura é _chore/<contexto>_ onde _<contexto>_ representa uma breve descrição do que está sendo configurado nessa branch. Exemplo: chore\*/pipeline-ci\*.
MRs dessas branches devem sempre ser abertos _para_ **develop**.
**Como posso criar uma branch?**
Para garantir que o processo de desenvolvimento esteja sempre atualizado, lembre-se de executar o seguinte comando na branch dev antes de criar uma branch nova:
<div>
```
git pull origin dev
```
Depois da execução desse comando é necessário oficialmente criar a Branch, para isso, execute o seguinte comando:
</div>Depois da execução desse comando é necessário oficialmente criar a Branch, para isso, execute o seguinte comando:
<div>
```
git checkout -b <nomeDaBranch>
```
Assim que criar a branch, é necessário fazer um `push`para garantir que a mesma estará remota:
</div>Assim que criar a branch, é necessário fazer um `push`para garantir que a mesma estará remota:
<div>
```
git push --set-upstream origin <nomeDaBranch>
```
Pronto! Agora você já pode começar a programar na sua Branch.
</div>Pronto! Agora você já pode começar a programar na sua Branch.
### Commits
### hotfix
Para que o código desenvolvido seja salvo em sua branch de maneira remota, é necessário realizar os comandos de `commit` e `push`
Hotfix é um padrão específico para "furar" o fluxo de desenvolvimento e aplicar uma correção diretamente em um ambiente mais alto (no caso do projeto, produção). Uma branch hotfix segue o padrão _hotfix/<contexto>_ onde _<contexto>_ representa uma breve descrição do que está sendo corrigido nessa branch.
Devem ser abertos 2 MRs: um para **main** e um para **develop**.
### Commits
#### Salvando Localmente
Para garantir que apenas o código necessário para funcionamento da tarefa lembre-se de realizar o comando `add` apenas nos arquivos **essenciais** para a tarefa:
<div>
```
git add <nomeDoArquivo>
```
Depois de adicionar todos os arquivos que deseja salvar, execute o commando de commit com uma mensagem curta que represente o que foi trabalhado nesses arquivos adicionados:
</div>Depois de adicionar todos os arquivos que deseja salvar, execute o commando de commit com uma mensagem curta que represente o que foi trabalhado nesses arquivos adicionados:
<div>
```
git commit -m 'descrição da tarefa em português'
```
</div>O padrão de commits é que as mensagens devem ser em Português.
Caso tenha interesse, há um padrão de commits similar a nomenclatura de branches escolhida chamado [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/#:\~:text=spelling%20of%20CHANGELOG-,Commit%20message%20with%20scope,-feat(lang)%3A%20add) mas isso é apenas uma _sugestão_ pra quem tiver interesse em conhecer.
Não hesite em realizar vários commits, assim podemos ter docuemntado e salvo vários estados do desenvolvimento
#### Salvando Remotamente
Depois de finalizar o desenvolvimento, envie todos os commits da sua máquina para o servidor remoto. Para isso depois de realizar as etapas de salvamento local, salve remotamente com o comando `push`:
<div>
```
git push
```
### Merge Requests
</div>
### Merge Request
Depois de uma task ter sido desenvolvida e estiver pronta de acordo com os critérios de aceitação, é necessário que a mesma seja enviada para a branch de desenvolvimento. Para isso é necessário abrir um Merge Request pela platafora GitLab:
......@@ -98,59 +170,75 @@ Depois de uma task ter sido desenvolvida e estiver pronta de acordo com os crit
A criação pode ser realizada na seção Merge Requests do repositório em que a branch foi criada. Clicando no botão `New Merge Request` siga os seguintes passos:
1. Selecionar a branch de origem (sua branch de desenvolvimento);
2. Selecionar a branch de destino (branch dev);
3. Selecione `Compare branches and continue`
4. Em `Title`, escreva um título que descreva a funcionalidade adicionada ou bug corrigido;
5. Em `Description`, escreva uma descrição com uma breve justificativa nos arquivos que foram alterados;
6. Caso a tarefa seja visual (criação de componente/tela, correção de bug) adicione um gif exemplificando o uso (se considerar necessário);
7. Na seção `Assignee`, selecione `Assign to me` para que fique registrado quem foi o responsável pelo desenvolvimento daquela tarefa (a pessoa selecionada será chamada caso o revisor tenha dúvidas sobre a tarefa);
8. Em `Milestone` selecione a Sprint em que a tarefa foi realizada;
9. Em `Labels`selecione qual é o tipo de tarefa que foi realizada;
1. Selecionar a branch de origem (sua branch de desenvolvimento);
2. Selecionar a branch de destino (branch dev);
3. Selecione `Compare branches and continue`
4. Em `Title`, escreva um título que descreva a funcionalidade adicionada ou bug corrigido;
5. Em `Description`, utilize o padrão abaixo:
```
### Issue number:
Adicione aqui uma referência ao número do issue relacionado a esse MR (exemplo: [#11](https://www.linkDaIsue.com))
### Descrição:
Uma lista das mudanças relacionadas a esse MR
- Mudanca 1
- Mudanca 2
### Checklist:
* [ ] Não deixou string literais no código
* [ ] Utilizou as variáveis padronizadas do design system (cor, títulos/fontes, imagens e etc)
* [ ] Não deixou nenhum código comentado
### Foto da pipeline com status verde
```
6. Caso a tarefa seja visual (criação de componente/tela, correção de bug) adicione um gif exemplificando o uso (se considerar necessário);
7. Na seção `Assignee`, selecione `Assign to me` para que fique registrado quem foi o responsável pelo desenvolvimento daquela tarefa (a pessoa selecionada será chamada caso o revisor tenha dúvidas sobre a tarefa);
8. Em `Milestone` selecione a Sprint em que a tarefa foi realizada;
9. Em `Labels`selecione qual é o tipo de tarefa que foi realizada;
10. Por último, revise se os arquivos que estão sendo enviados estão corretos e clique em `Submit Merge Request`.
#### Revisando o Merge Request
A revisão de merge request pode ser realizada por qualquer desenvolvedor, mas é preciso da aprovação de pelo menos um AGES III ou AGES IV para que a mesma seja incorporada na dev.
Na hora de revisar o Merge Request, entre na branch em sua máquina e teste a funcionalidade/bug/componente/tela de acordo com os critérios de aceitação apresentados no [Airtable](https://airtable.com/tblV0c8w2YX9PZAAC/viw4mJkZmd28WlplE?blocks=hide).
Todo MR deve ter pelo menos duas aprovações, sendo uma delas obrigatoriamente de um AGES III. Ao criar o MR, adicione como revisor o AGES III da sua Squad (ou um outro AGES III com contexto caso o PR esteja sendo aberto por um AGES III).
Caso haja pendências, relacionadas a documentação do código, padronização ou arquivos enviados, não exite em realizar um novo commit na branch com as mudanças necessárias antes de realizar a integração.
O merge deve ser feito com a estratégia <span dir="">_squash-commits_</span> e as branches devem ser excluídas após o merge para a branch de destino.
## Matriz de Responsabilidade
Essa matriz foi desenvolvida para ajudar os membros do time a saberem seus papéis na dentro do processo de desenvolvimento.
| **Atividades** | **AGES I** | **AGES II** | **AGES III** | **AGES IV** |
| -------------------------- | :--------: | :---------: | :----------: | :---------: |
| Alimentar a wiki | | | | |
| Definir squads | | | | |
| Definir marcos da sprint | | | | |
| Quebra de tasks | | | | |
| Desenvolvimento | | | | |
| Code review | | | | |
| Executar testes funcionais | | | | |
| Deploy da aplicação | | | | |
| Apresentação da review | | | | |
| **Atividades** | **AGES I** | **AGES II** | **AGES III** | **AGES IV** |
|----------------|------------|-------------|--------------|-------------|
| Alimentar a wiki | | | | |
| Definir squads | | | | |
| Definir marcos da sprint | | | | |
| Quebra de tasks | | | | |
| Desenvolvimento | | | | |
| Code review | | | | |
| Executar testes funcionais | | | | |
| Deploy da aplicação | | | | |
| Apresentação da review | | | | |
- I: Deve ser informado
- C: Deve ser consultado
- R: Responsável
- A: Aprova
## Plano de Comunicação
| **Evento** | **Descrição** | **Responsável** | **Envolvidos** | **Frequência** | **Duração** |
| :----------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------: | :------------------------------: | :---------------------------------------------------------------------------------: | :-------------------------------------: |
| Kick Off (Exemplo) | Primeiro encontro entre o time e os stakeholders do projeto. Nesse encontro são apresentados os principais itens do projeto e a ideia geral. Também são realizados questionamentos sobre o que foi apresentado, com a finalidade de ajudar nas definições dos requisitos do projeto em conjunto com o cliente. (Exemplo) | Cliente(s) (Exemplo) | AGES I, II, III, IV e Cliente(s) (Exemplo) | Uma vez (início do projeto) (Exemplo) | 1 hora - 1 hora e 30 minutos (Exemplo) |
| **Evento** | **Descrição** | **Responsável** | **Envolvidos** | **Frequência** | **Duração** |
|------------|---------------|-----------------|----------------|----------------|-------------|
| Kick Off (Exemplo) | Primeiro encontro entre o time e os stakeholders do projeto. Nesse encontro são apresentados os principais itens do projeto e a ideia geral. Também são realizados questionamentos sobre o que foi apresentado, com a finalidade de ajudar nas definições dos requisitos do projeto em conjunto com o cliente. (Exemplo) | Cliente(s) (Exemplo) | AGES I, II, III, IV e Cliente(s) (Exemplo) | Uma vez (início do projeto) (Exemplo) | 1 hora - 1 hora e 30 minutos (Exemplo) |
| TBD... | TBD... | TBD... | TBD... | TBD... | TBD... |
---
## Plano de Riscos
| Risco | Prevenção | Contingência | Estratégia |
| ----------------------------------------------------- | ------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------- | ---------- |
| Risco | Prevenção | Contingência | Estratégia |
|-------|-----------|--------------|------------|
| Atingir limite de uso gratuito da AWS (Exemplo) | Utilizar servidores apenas para validação, desligando-os quando não utilizados (Exemplo) | Alterar ambiente para outra conta de usuário (Exemplo) | Transferir (Exemplo) |
| TBD... | TBD... | TBD... | TBD... |
\ No newline at end of file
| TBD... | TBD... | TBD... | TBD... |
Clone repository
  • Banco_de_Dados
  • Gerência
  • Horários disponíveis
  • Instalação
  • Retro
  • Utilizando a wiki
    • adicionando imagens
    • escrevendo em markdown
    • wiki no editor de texto
  • arquitetura
  • codigo
  • configuracao
  • design_mockups
  • escopo
  • estudos
  • gerencia
View All Pages