🚀 Processo no desenvolvimento de produtos digitais
⏱️ Apontamento de Horas para tarefas: Estimado e Realizado
🎯 Objetivo
Garantir o controle e a rastreabilidade do tempo investido nas atividades, comparando o planejado com o executado.
📋 Processo
Estimativa: Deve ser registrada no início de cada sprint (no rito de planning) ou do desenvolvimento da tarefa, com base em planning poker, histórico ou benchmark.
- Uma task não pode ser estimada com mais de 8 horas;
- Tasks devem ser criadas para tratar de uma única responsabilidade;
Apontamento Realizado: Deve ser feito diariamente pelos colaboradores, utilizando a ferramenta oficial (Board do produto no Azure DevOps).
Horas restantes: Devem ser atualizadas junto ao realizado, e devem estar sempre zeradas ao mover o card para ‘Done’.
Revisão: O time de gestão revisa diariamente o dashboard do produto, para identificar os desvios entre estimado e realizado.
Responsáveis: Desenvolvedores, Tech Lead, PDO.
🔄 Envio de PRs (Pull Requests) e MRs (Merge Requests)
🎯 Objetivo: Garantir qualidade e rastreabilidade nas alterações de código.
📋 Processo
Todo código deve ser submetido via PR/MR.
O PR/MR deve conter:
- Descrição clara da alteração.
- Referência ao item de backlog.
- Checklist de revisão (testes, documentação, etc.).
- Revisão de código obrigatória por pelo menos 1 membro do time, preferencialmente o Tech Lead.
- Aprovação e merge somente após validação dos testes automatizados.
Ferramentas: GitLab GAB
📊 Uso do Azure DevOps
🎯 Objetivo: Centralizar a gestão de projetos, versionamento de código, CI/CD e acompanhamento de métricas.
Processo
Boards: Utilizados para planejamento e acompanhamento de sprints. Saiba mais sobre o uso do board neste link
Dashboards: Visualização das métricas da sprint e progresso.
Boas práticas: Atualizar tarefas diariamente.
Os cards devem ser movidos em tempo, pois há contabilização automática das horas executadas;
- Ao final da sprint, todas as tasks devem estar marcadas com status
DONE, e as histórias de usuário (que tenham todas as tasks com statusDONE) devem ser marcadas com statusCLOSED
- Idealmente, uma história de usuário deve ser entregue dentro do tempo de uma SPRINT.
- Caso não seja possível, a entrega deve ser registrada como uma FEATURE.
Regras de preenchimento e manutenção dos cards
- Descrição clara e objetiva: Toda task deve conter uma descrição compreensível por qualquer membro do time.
- Checklist de subtarefas: Utilize checklists para dividir entregas maiores em etapas menores.
- Responsável atribuído: Toda task deve ter um responsável definido.
- Labels e tags: Use etiquetas padronizadas para facilitar a categorização (ex:
bug,ajuste,refatoração,design,backend). - Comentários e atualizações: Registre decisões, dúvidas ou atualizações relevantes nos comentários do card.
📌 Task de GMUD por Sprint
🎯 Objetivo: Garantir que cada sprint tenha visibilidade e planejamento adequado para a subida de itens em produção.
Orientação
-
Deve ser adicionada uma task com o nome padrão:
"Para a GMUD - Sprint [Nº da sprint]" -
Essa task deve conter:
- Checklist dos itens que serão incluídos na GMUD.
- Referência aos PRs/MRs relacionados.
- Plano de rollback (se aplicável).
- Responsáveis pela execução.
- Data e horário previstos para a execução.
-
A task deve ser criada no início da sprint e atualizada conforme os itens forem concluídos.
Essa task não substitui o processo formal de solicitação de GMUD, mas serve como apoio para organização e rastreabilidade dentro do board da squad.
🚧 Gestão de Riscos e Impedimentos
🎯 Objetivo: Antecipar e mitigar riscos que possam comprometer entregas.
Processo:
- Impedimentos devem ser registrados no board. As tasks afetadas devem ser marcadas com status
pauseaté que o impedimento seja resolvido. - O Tech Lead ou PDO deve ser acionado imediatamente.
- Riscos identificados devem ser discutidos em ritos de planning ou retrospectiva.
Revisão e QA
Antes de marcar uma task como DONE, verifique:
- Os critérios de aceite foram atendidos;
- O código foi revisado (quando aplicável);
- A funcionalidade foi testada;
- A documentação (se necessária) foi atualizada.
📈 Indicadores de Saúde da Sprint
🎯 Objetivo: Medir a eficiência, qualidade e previsibilidade do time.
Indicadores adotados:
- Velocidade da Sprint.
- Assertividade em Produção
- Taxa de Retrabalho.
- Cobertura de Testes Automatizados.
- Satisfação do Cliente (NPS interno).
- Frequência de análise: Por sprint, em reuniões de retrospectiva e análise crítica.
🤝 Estimado e Realizado: Co-responsabilidade
🎯 Objetivo: Promover a responsabilidade compartilhada entre time técnico e gestão sobre prazos e entregas.
Princípios:
- Estimativas devem ser sempre feitas em conjunto (devs +Tech Lead).
- O cada desenvolvedor será responsável por documentar quando houver desvios do planejado, relatando ao PDO.
- Ferramentas de apoio: Azure DevOps, planilhas de controle, reuniões de checkpoint.
🔨 Processos de GMUD (Gestão de Mudanças em Ambiente de Produção)
🎯 Objetivo: Garantir que mudanças em produção sejam seguras, rastreáveis e aprovadas.
Processo
Solicitação de GMUD: Criada com antecedência mínima de 24h e até o horário máximo de 17h;
Conteúdo obrigatório: Lista de itens para PR, scripts, plano de rollback, responsáveis.
Aprovação: E-mail de com evidências de validação enviado pelo P.O. (cliente).
Execução: Em janela definida, com acompanhamento. Deverá ser alinhado com o Tech Lead responsável.
Pós-implementação: Verificação de sucesso pelo time de sucesso do cliente.
Ferramentas: Documento padrão, Board do Azure DevOps
Boas práticas
Tratativa de erros em requisições realizar no frontend
Contexto Casos onde a API retorna erro, mas o frontend não exibe nada ao usuário, geram a percepção de “aplicação quebrada”. Isso é um falso negativo de UX por falta de comunicação. Para evitar que tal caso aconteça, devemos tratar e, se possível, padronizar a tratativa para que todo erro relevante seja mostrado em um local visível (ex.: toast), sem depender de cada chamada manualmente.
Diretrizes rápidas
- Sempre informe o usuário com uma mensagem clara e, quando possível, ação sugerida.
- Mensagens curtas e orientadas à ação (ex.: “Preencha o campo E‑mail”).
- Centralize a tratativa de erros (interceptor do Axios + utilitário de normalização).
No exemplo mínimo abaixo, o toast é exibido apenas quando a resposta HTTP for 400, comportamento que deve ser obrigatório garantindo a exibição de informação para o cliente devido à natureza do erro.
import axios from "axios";
import { toast } from "react-toastify";
export const api = axios.create({
baseURL: import.meta.env.VITE_API_URL,
});
api.interceptors.response.use(
(res) => res,
(error) => {
const status = error?.response?.status;
if (status === 400) {
const msg = error?.response?.data?.message ?? error?.message ?? "Erro desconhecido.";
toast.error(`Ocorreu um erro na operação: ${msg}`);
}
return Promise.reject(error);
}
);
O template angular18-templates, disponível no GitLab, trata as respostas 400 automaticamente, exibindo um toast com as informações retornadas pela API:
protected handleError(error: any): Observable<never> {
let errorMessage = '';
if (error.error instanceof ErrorEvent) {
// Get client-side error
errorMessage = error.error.message;
} else if (error instanceof HttpErrorResponse && error.error.Message) {
// Get server-side error
errorMessage = error.error.Message;
if (error.status === 400)
{
this.openSnackBar(errorMessage);
}
} else {
errorMessage = `Error Code: ${error.status}\nMessage: ${error.message}`;
}
return throwError(errorMessage);
}
protected openSnackBar(message: string) {
this.snackBar.open(message, 'Fechar');
}
Utilização de data e hora
Contexto Por padrão, o template interno trabalha com informações e registros salvos em UTC no backend. Isso garante consistência nas datas porque padroniza o armazenamento e evita disparidades de fuso em comparações, ordenações e auditorias.
Diante disso, toda informação enviada do frontend para o backend que envolva data e/ou hora deve ser convertida para UTC antes (ou no momento) do envio. O fuso local é exclusivamente para a exibição ao usuário e não deve ser transportado junto com o registro.
Essa prática simples assegura que os dados permaneçam consistentes no contexto da aplicação. Ao frontend cabe apenas converter de UTC para o fuso do usuário durante a exibição e a interação na tela.
Por fim, adote a ISO-8601 como padrão de serialização de data e hora, incluindo o offset; prefira o sufixo Z para indicar UTC. Isso elimina ambiguidades e mantém a compatibilidade entre sistemas.