Documentação do negócio
Documentação técnica
\mathbb{PROCESSO \space DE \space DESENVOLVIMENTO}
Esta seção é dedicada a apresentar o processo de desenvolvimento do time, junto dela serão apresentados documentos referentes a maneira como o time se organizou e trabalha.
Sumário
Definition of Ready
Para que uma tarefa seja considerada pronta para desenvolvimento, ela deve seguir as seguintes condições:
- Qualquer tarefa da qual ela tenha dependência.
- O ambiente de desenvolvimento local deve estar devidamente setado.
Padrões utilizados
Branches
Para criar uma branch e começar a trabalhar nela, 3 comandos git serão essenciais, vejamos abaixo quais são eles:
git checkout develop # Vai para a branch ‘develop’.
git pull # Puxa as modificações remotas.
git checkout -b <NOME_DA_SUA_BRANCH_AQUI> # Cria uma nova branch.
Utilizando os comandos acima, você estará indo para a branch ‘develop’, puxando todas as modificações remotas e criando uma nova branch a partir de ‘develop’. Você então passará a trabalhar na nova branch criada.
Os nomes das branches devem seguir o formato <tipo>/<código>
, onde os <tipo>
são os mesmos tipos usados nas tarefas cadastradas no Trello, e o <código>
é o card number, que pode ser encontrado logo abaixo do título do card, seguido de um "#".
Exemplos:
task/15
chore/12
spike/11
Commits
Para tornar mais consistentes as mensagens de commit, usamos o padrão Conventional Commits. Para seguir esse padrão, as mensagens, em geral, devem escritas seguindo no formato `<tipo>[escopo]: <descrição>`, em que:
- o `<tipo>`, obrigatório, é um dos tipos possíveis de commit;
- o `[escopo]`, opcional, sempre escrito entre parênteses, contextualiza o commit dentro do projeto, e pode ser tanto uma funcionalidade do produto, quanto uma questão técnica do projeto;
- a `<descrição>`, obrigatória, é uma mensagem escrita conforme a vontade do desenvolvedor, e descreve resumidamente o trabalho feito.
Exemplos do uso:
- `feat: Implementa envio dos votos de cada participante.`
- `fix(api): Corrige envio das informações de cadastro de ao banco.`
- `docs: Descreve padrões de commit.`
- `build: Atualiza dependências.`
A descrição é escrita de acordo com a vontade do desenvolvedor. O escopo não é pré-definido, mas o grupo deve procurar usar o mesmo nome quando falando da mesma coisa; o escopo deve sempre ser um substantivo.
Os tipos são limitados; o Conventional Commits especifica dois -- "`fix`", que identifica uma correção em algo já existente, e "`feat`", que indica a adição de uma funcionalidade nova --, mas o time pode especificar outros, desde que use-os de forma consistente.
Tipos usados no time:
- "`fix`", para descrever soluções de problemas;
- "`feat`", para descrever funcionalidades adicionadas;
- "`docs`", para identificar trabalho na documentação do projeto;
- "`build`", para identificar trabalho na configuração do projeto.
Mais informações estão disponíveis no [link](https://www.conventionalcommits.org/pt-br/v1.0.0/).
Definition of Done
Para que uma tarefa seja considerada concluída ela deve seguir as seguintes condições:
- O merge request da branch em que a tarefa foi desenvolvida para a develop deve ter sido concluída.
- O código deve ter sido revisado e aprovado.
- O código deve ter testes unitários e ter sido testado manualmente.
- Qualquer documentação necessária deve ter sido escrita (payloads, endpoints, ...).