| Home | Escopo e Cronograma | Processo | Design/Mockups | Configuração | Arquitetura | Código | BD | Qualidade | Utilização | 
|---|
Processo de Desenvolvimento
Descrição
Esta seção é dedicada a apresentar o processo de desenvolvimento do time, junto dela serão apresentados documentos referentes a maneira que o time se organizou e trabalha.
Sumário
Git Workflow
Gitflow
O Gitflow é um modelo alternativo de ramificação do Git que consiste no uso de ramificações de recursos (features) e várias ramificações primárias (Master e Development).
Branches
Cada branch relacionada a features será criada a partir da branch development.
Nomes
Como padrão para nomes de branches, foi decidido o seguinte:
<tipoDeItem>-<nomeDoItem>
Exemplo de Componentes:
component-navBar
component-slider
Exemplo de Páginas:
page-recipes
page-creations
Criação
Para garantir que o processo de desenvolvimento esteja sempre atualizado, lembre-se de executar o seguinte comando na branch development antes de criar uma branch nova:
git pull origin development
Depois da execução desse comando é necessário oficialmente criar a Branch, para isso, execute o seguinte comando:
git checkout -b <nomeDaBranch>
Assim que criar a branch, é necessário fazer um pushpara garantir que a mesma estará remota:
git push --set-upstream origin <nomeDaBranch>
Pronto! Agora você já pode começar a programar na sua Branch.
Commits
Para que o código desenvolvido seja salvo em sua branch de maneira remota, é necessário realizar os comandos de commit e push
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:
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:
git commit -m 'descrição da tarefa em português'
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:
git push
Merge Requests
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:
Criando o Merge Request
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:
- Selecionar a branch de origem (sua branch de desenvolvimento);
 - Selecionar a branch de destino (branch dev);
 - Selecione 
Compare branches and continue - Em 
Title, escreva um título que descreva a funcionalidade adicionada ou bug corrigido; - Em 
Description, escreva uma descrição com uma breve justificativa nos arquivos que foram alterados; - Caso a tarefa seja visual (criação de componente/tela, correção de bug) adicione um gif exemplificando o uso (se considerar necessário);
 - Na seção 
Assignee, selecioneAssign to mepara 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); - Em 
Milestoneselecione a Sprint em que a tarefa foi realizada; - Em 
Labelsselecione qual é o tipo de tarefa que foi realizada; - 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.
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.
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 | R | R | R | R | 
| Definir squads | I | I | I | R | 
| Definir marcos da sprint | I | I | I | R | 
| Quebra de tasks | I/A | I/A | I/A | R | 
| Desenvolvimento | R | R | R | I | 
| Code review | R | R | R | I | 
| Executar testes funcionais | R | R | C | I | 
| Deploy da aplicação | I | I | R | I | 
- 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 | 
|---|---|---|---|---|---|
| Status e comunicação principal | É utilizada a ferramenta Discord para comunicação síncrona e assíncrona de forma remota, possibilitando o trabalho em conjunto sem estar físicamente juntos. | Gerencia do projeto | Gerencia do projeto, time de desenvolvimento | Diariamente | NA | 
| Status e comunicação secundária | É utilizado o aplicativo whatsapp para comunicação secundária com o time e o professor orientador, caso não esteja disponível na comunicação principal | Gerencia do projeto | Gerencia do projeto, time de desenvolvimento | Diariamente | NA | 
| Standup Daily | Reunião de inicio de semana para dar um status report do que foi feito desde este último encontro | Gerencia do projeto | Gerencia do projeto, time de desenvolvimento | 1x semana | até 10 minutos | 
Plano de Riscos
| Risco | Prevenção | Contingência | Estratégia | 
|---|---|---|---|
| Hackatona da Engenharia de software pode limitar a produtividade do projeto | NA | Delegar tarefas para membros que não participarão do evento | Levantar tarefas a serem feitas e quem pode se apropriar delas | 
| Desinteresse pelos AGES I com tanto aprendizado | NA | NA | Puxar pela mão e deixar pilotar na programação, dando apoio nas dúvidas | 
