Checklist - Task Planning & Template

This guide below must be used for each task we plan to execute.

Before starting to code

  • Definir de forma muito clara o objetivo da tarefa e por que isso é importante

  • Com a exceção de bugs, fazer o template abaixo (Template para planejamento de novas implementações) e colocar na pasta do Google Drive referente ao mesmo

  • Descrever com o máximo de detalhes como será a implementação

    • SEMPRE fazer o planejamento olhando o código;

    • SEMPRE olhar pelo código se tal mudança é viável ou não, bom como a sua dificuldade;

    • Caso existam detalhes não conhecidos:

      • Por falta de conhecimento técnico:

        • Listar o conhecimento que deve ser aprendido para desempenhar a tarefa.

        • Estipular prazo para o aprendizado e replanejamento da tarefa

      • Por incerteza da viabilidade:

        • Planejar uma implementação MÍNIMA (protótipo, teste) que valide que a tarefa vale a pena o investimento (esse protótipo)

        • Estipular prazo para essa implementação e o replanejamento da tarefa

  • Quebrar a implementação em passos atômicos e estipular prazos

    • Priorizar as tarefas SEMPRE usando PARETO (80/20):

      • Priorizar e iniciar SEMPRE as tarefas que são mais trabalhosas e que contém maior risco de afetar o prazo do projeto

  • Listar todos os componentes do sistema que serão afetados durante a tarefa.

  • Detalhar como cada um dos componentes serão afetados durante a tarefa.

    • Todos os componentes afetados devem possuir testes unitários/integrados para garantir a integridade do sistema

  • Listar todas pessoas que serão afetadas pela tarefa.

    • Comunicar de forma proativa as pessoas que serão influenciadas pela tarefa (por conta de tarefas sendo realizadas paralelamente)

  • Listar todos os testes unitários que devem ser criados e estipular prazo

  • Se for a correção de um bug, entrar em contato com a pessoa que reportou o mesmo afim de entender quais foram os passos feitos para se chegar ao problema.

After the coding phase is complete - Validation Checklist

  • Garantir que o branch está atualizado com o develop/master

  • Garantir que o objetivo da tarefa foi cumprido

  • Verificar que não existem corner cases que não estão sendo testados, usando o guia de corner cases

  • Profilar e garantir que o código modificado/introduzido não trouxe mais nenhum ponto de otimização

  • Garantir que todos os testes unitários antigos estão passando

  • Garantir que todos os testes unitários novos estão passando

  • Garantir que todos os testes integrados antigos estão passando

  • Garantir que todos os testes integrados novos estão passando

  • Garantir que a build do TeamCity está passando

  • Documentar o código e alterar na wiki qualquer mudança sobre a lógica de funcionamento

  • Fazer ciclo de revisão dos Pull Requests

    • Self-review

    • Peer-review

  • Fazer merge dos Pull Requests nos branches principais de cada repositório

  • Por fim, seguir os passos do Pull Request Checklist

Template para planejamento de novas implementações:

Tarefa: [Nome da Tarefa]

  • Problema/Objetivo:

  • Solução:

  • Resumo:

  • Detalhes de implementação:

  • Componentes que serão afetados:

...

  • Plano de trabalho

  • Testes Unitários:

...

  • Testes Integrados

...

  • Implementação

  • Referências (links e artigos, se existirem)

Para o Gestor Técnico que for revisar e liberar o Deploy:

  • Realizar validações de Corner Cases

  • Cumprir o checklist de validação

  • Acrescentar os detalhes do deploy em Deployment History