Home | Escopo e Cronograma | Processo | Design/Mockups | Configuração | Arquitetura | Código | Banco de Dados | 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
Nomes
Foi decidido que o nome padrão das branches terá a seguinte estrutura:
<tipo>/<user story>-<apelido>
-
tipo: O tipo da tarefa, sendo uma das opções abaixo:
-
feat
: Desenvolvimento de uma nova funcionalidade -
fix
: Correção de um bug na aplicação
-
- user story: O número da user story. Exemplo: US01
- apelido: Breve descrição do escopo da user story.
Exemplo:
feat/US01-listar-usuarios
Criação
Para garantir que o processo de desenvolvimento esteja sempre atualizado, lembre-se de executar o seguinte comando na branch develop antes de criar uma branch nova:
git pull origin develop
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 develop);
- 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 print (imagem) ou 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 develop.
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 | C | R |
Quebra de tasks | I | I | C | AR |
Desenvolvimento | R | R | AR | ACR |
Code review | C | C | AR | ACR |
Executar testes funcionais | AR | AR | R | R |
Deploy da aplicação | I | I | R | A |
Apresentação da review | C | C | C | R |
- 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 |
---|---|---|---|---|---|
Weekly | Revisar progresso em atividades e tratar impedimentos | AGES IV | Time | Semanal | 15 minutos |
Planning | Planejar atividades da sprint | AGES IV | Time | Início de cada sprint | 1h30min |
Review | Apresentação do que foi desenvolvido na sprint | AGES IV | Time + Stakeholders | Final de cada sprint | 1h |
Retrospectiva | Exposição de pontos positivos e negativos da ultima sprint, e criação de planos de ação | AGES IV | Time | Final de cada sprint | 20 min |
Canais do Discord | Viabilizar comunicação ágil entre subgrupos do time | AGES IV | Time | A qualquer momento | N/A |
Grupo do Whatsapp | Recados importantes | AGES IV | Time | Quando necessário | N/A |
Plano de Riscos
Risco | Prevenção | Contingência | Estratégia |
---|---|---|---|
Desmotivação do time | Comunicação com o pessoal do time | Conversar e entender os motivos | Mitigar |
Complexidade dos requisitos | Tentar selecionar requisitos menos complexos | Aumentar o número de pessoas nesses requisitos | Mitigar |
Falta de domínio de tecnologias | Disponibilizar/indicar material sobre as tecnologias, pair programming | Ajudar os membros do time que estiverem com dificuldade | Mitigar |
Dificuldade do setup do projeto | Disponibilizar tutorial de como fazer o setup do projeto | Ajudar os membros do time que estiverem com dificuldade | Mitigar |
Falta de comunicação do time | Canal no Discord e grupo no WhatsApp | Mitigar | |
Falta de documentação | Criar, revisar e monitorar Wiki | Incentivar time a criar/atualizar documentaçaão | Mitigar |
Alto número de problemas e/ou débitos técnicos | Planejamento detalhado das tarefas | Criação de issues, que são tarefas para solução dos problemas encontrados | Mitigar |