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
Branches
Ambientes
- master: Conterá sempre a versão de PRODUÇÃO (a versão mais estável possível). Não é permitido fazer commits diretamente na branch master, sendo a única forma de adicionar código nessa branch através de um merge request.
- development: Conterá sempre a versão de DESENVOLVIMENTO (a próxima versão de lançamento). Não é permitido fazer commits diretamente na branch master, sendo a única forma de adicionar código nessa branch através de um merge request.
- feature: Conterá sempre a versão de desenvolvimento. É utilizada para desenvolvimento das tarefas descritas nas user stories. É permitido fazer commits livremente nas branches do tipo feature.
- bugfix: Conterá sempre a versão de desenvolvimento. É utilizada para aplicação de correções de eventuais bugs que tenham passado pela branch feature. É permitido fazer commits livremente nas branches do tipo bugfix.
Nomes
Como padrão para nomes de branches, foi decidido o seguinte:
<númeroDaIssue>-<nomeDaTarefa>
Portanto, um exemplo de nome para branch:
01-tela-login
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 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.
Planning Poker
Para nos auxiliar na atribuição das tarefas entre as Squads, utilizamos uma prática ágil chamada "Planning Poker".
O "Planning Poker" é uma técnica utilizada durante o planejamento da Sprint que tem o objetivo de estimar a quantidade de esforço sobre cada US do backlog. Para realizar a pontuação de cada US, todos os integrantes tem em posse um baralho com os seguinte símbolos: 1, 2, 3, 5, 8,13 e ?. Em cada rodada, os integrantes devem votar uma US definida com as cartas do baralho. Caso exista uma grande discordância entre os integrantes, deve ser feito uma discussão sobre a pontuação e uma nova rodada até que se chegue em um consenso. Também temos uma carta especial, a Interrogação (?), o qual será usado quando o time julgar que não consegue pontuar, devido a falta de conhecimento técnico.
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 |
- I: Deve ser informado
- C: Deve ser consultado
- R: Responsável
- A: Aprova
Plano de Comunicação
Tipo | Objetivo | Meio | Frequência | Audiência | Responsável | Entrega | Duração |
---|---|---|---|---|---|---|---|
Kick-Off do projeto | Compreender melhor o projeto e seu escopo | Pessoalmente | Primeiro encontro | Cliente, Equipe e Professor | Equipe | N/A | 1:00 hora |
Daily | Analisar andamento da Sprint e eventuais problemas dos membros da equipe | Pessoalmente | Início de cada encontro | Equipe e Professor | Equipe | N/A | 15 minutos |
Planning | Planejar as atividades das próximas Sprints | Pessoalmente | Início da Sprint/A cada duas semanas | Equipe e Professor | Equipe | Definição das U.S.'s da próxima Sprint | 1:00 hora |
Review | Realizar entrega de Sprint e verificar se os itens comprometidos foram entregues | Pessoalmente | Final da Sprint | Cliente, Equipe e Professor | Equipe | US's planejadas | 1:00 hora |
Retrospectiva | Analisar a sprint entregue, identificar pontos fracos e ações para mitigá-los | Pessoalmente Digital | Final da Sprint | Equipe e Professor | Equipe | Feedback para o time | 1:00 hora |
Plano de Riscos
Risco | Prevenção | Contingência | Estratégia |
---|---|---|---|
Falha de compreensão dos requisitos | Esclarecer dúvidas com P.O. | U.S.s planejadas incorretamentes | Mitigar |
Time não tem atividade planejada | Planejamento de atividades suficiente para os encontros e para extraclasse | Menor produtividade | Mitigar |
Falta de documentação | Revisar Wiki frequentemente, e cobrar equipe quando necessário | Projeto incompleto | Mitigar |
Falta de teste da aplicação | Validação do sistema antes da entrega | Projeto incompleto e não-validado | Eliminar |
Membro do time não consegue avança nas atividades | Integração de membro com outras pessoas que possuem experiência | Atraso na entrega | Eliminar |
Sprint entregue incompleta | Revisar as U.S.'s completas e | ||
incompletas, cobrar time quando necessário | Atraso na entrega | Eliminar |