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
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 DEV).
Branches
Cada branch relacionada à features será criada a partir da branch dev, seguindo o seguinte padrão de nomenclatura: o nome da branch será em inglês e deve seguir o padrão feature/nome-da-feature, onde os nomes das feature podem ser encontrados no Trello. Quando for necessário fazer alguma correção, o prefixo utilizado deverá ser fix/nome-da-feature.
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 dev antes de criar uma branch nova:
git pull origin dev
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 push
para 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 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); - Em
Milestone
selecione a Sprint em que a tarefa foi realizada; - Em
Labels
selecione 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
Tendo em vista que na primeira sprint do projeto temos atividades diferentes que nas demais, foi feita uma matriz de responsabilidade exclusiva para esta. Segue abaixo o significado de cada uma das letras utilizadas nos quadros:
- I: Deve ser informado
- C: Deve ser consultado
- R: Responsável
- A: Aprova
Sprint 0
Atividades | AGES I | AGES II | AGES III | AGES IV |
---|---|---|---|---|
Alimentar a wiki | R | R | R | R |
Definir organização do time | I | I | I | R/A |
Realizar estudos dirigidos | R | R | R | R |
Definir tecnologias (front/back) | C | C | R/A | C |
Desenvolver mockups | R | R/A | I | I |
Criar User Stories | I | I | I | R/A |
Criar projeto inicial (front/back) | I | I | R/A | I |
Modelar o BD (conceitual/lógico) | I | R/A | C | C |
Documentar arquitetura inicial do projeto | I | R | R/A | I |
Sprint 1,2,3 E 4
Atividades | AGES I | AGES II | AGES III | AGES IV |
---|---|---|---|---|
Alimentar a wiki | R | R | R | R/A |
Definir squads | C | C | C | R |
Definir marcos da sprint | I | I | C | R |
Quebra de tasks | C | C | C | R |
Desenvolvimento | R | R | R/A | C/I |
Code review | R | R | R/A | R |
Executar testes funcionais | R | R | R | C/I |
Deploy da aplicação | I | I | R/A | I |
Apresentação da review | I | I | I | R |
Plano de Comunicação
Evento | Descrição | Responsável | Envolvidos | Frequência | Duração |
---|---|---|---|---|---|
Kickoff | A reunião de Kickoff é a primeira reunião entre o time e os Stakeholders. Nela é apresentada a ideia geral do projeto e são respondidas dúvidas e questionamentos sobre o mesmo, possibilitando um levantamento inicial dos requisitos do projeto por parte da equipe, com o auxílio do cliente, que detém o conhecimento sobre o produto a ser desenvolvido. | AGES IV e Cliente | AGES I, II, III, IV e Cliente | Uma vez no início do semestre | 1 hora e 30 minutos |
Daily | Cada integrante do time atualiza os demais sobre o que fez desde o último encontro síncrono, o que pretende fazer em seguida e se tem impedimentos para que possam ser solucionados. As dailies são registradas pelos AGES IV | AGES IV | AGES I, II, III, IV | Terças-feiras via Discord e Sextas-feiras às 19:15 | Máximo 20 minutos |
Sprint Review | Momento de apresentar para o Cliente o que foi desenvolvido durante a Sprint coletando validações e feedback dos Stakeholders para cada atividade acordada. | AGES IV | AGES I, II, III, IV e Cliente | No final de cada sprint | 1 hora |
Sprint Planning | Decisão, junto ao cliente, das tarefas que serão realizadas durante a sprint seguinte. | AGES IV | AGES I, II, III, IV e Cliente | No final de cada sprint | 30 minutos |
Retrospectiva da Sprint | Momento onde o time reflete sobre a sprint anterior, levantando os pontos bons, ruin e melhorias a serem feitas. | AGES IV | AGES I, II, III, IV | Após a Sprint Planning | 30 minutos |
Planning Poker | Momento em que o time atribui um nível de complexidade para cada tarefa da Sprint e comenta como pode ser feita. | AGES IV | AGES I, II, III, IV | Após retrospectiva | 30 minutos |
Plano de Riscos
Risco | Probabilidade | Impacto | Severidade | Estratégia | Ações |
---|---|---|---|---|---|
Alterações no escopo do projeto | 6 | 5 | 30 | Mitigar | Evitar grandes mudanças no escopo asó a definição inicial, aceitando somente mudanças que não necessitem de muito retrabalho. |
Falta de engajamento dos membros do time | 7 | 8 | 56 | Mitigar | Acompanhar o desenvolvimento das tarefas no Trello. Fazer reuniões periodicas (dailies) para saber sobre o progresso do desenvolvimento. Caso haja impacto no time, conversar com os membros do time e replanejar as tarefas caso necessário. |
Não entregar as tarefas da Sprint | 5 | 6 | 30 | Mitigar | Acompanhar o desenvolvimento das atividades no Trello e realizar reuniões periódicas com o time para saber sobre o progresso do desenvolvimento, ressaltando o tempo limite da sprint. |
Problemas inesperados na entrega | 3 | 8 | 24 | Eliminar | Testar a aplicação na homologação para todas funcionalidades antes da entrega. Homologar o projeto com pelo menos 1 dia de antecedência da entrega da sprint. |
Ausência do cliente no sprint delivery | 1 | 8 | 8 | Transferir | Relembrar o cliente da entrega da sprint. |
Falta de créditos da AGES para homologação na AWS | 2 | 4 | 16 | Transferir | Realizar a homologação em uma plataforma alterativa, como MS Azure. Caso não seja possível, fazer a apresentação da entrega de sprint executando a aplicação localmente. |
Falta de conhecimento nas tecnologias utilizadas | 6 | 6 | 36 | Mitigar | Recomendar documentações e tutoriais sobre as tecnologias utilizadas para os membros do time. Desenvolver utilizando pair programming para compartilhamento de conhecimento. |