Estimativa de um sistema de notificações
Como fazer uma estimativa para um sistema de notificações: canais, preferências, deduplicação e garantias de entrega. Por que “enviar um e-mail” acaba se transformando, sem que percebamos, em um projeto de seis semanas.
A história que começa com um e-mail termina sendo a única coisa que a equipe desenvolve ao longo de seis semanas.
A primeira notificação é simples: escolha um evento, gere um modelo e envie-o. A segunda também é simples. A décima é quando a equipe percebe que vem desenvolvendo um sistema de notificações há dois meses sem admitir isso. Preferências, resumos, deduplicação, janelas de “não perturbe”, substituições por canal — nada disso constava no ticket original — tudo isso se torna inegociável no momento em que um usuário recebe uma notificação às 3 da manhã.
Avalie o sistema, não o e-mail. A equipe que vota pela opção “enviar uma mensagem no Slack quando X acontecer” está subestimando em uma ordem de magnitude, pois está avaliando uma única linha de uma tabela que, no futuro, terá trinta.
O que se fala na sala
Backend: “O envio do e-mail é uma tarefa que leva um dia.”
PM: “Os usuários podem desativar isso?”
Backend: “Por evento ou globalmente?”
Designer: “Como é a página de preferências?”
SRE: “E se o serviço de e-mail estiver fora do ar? Tentar novamente? Colocar na fila? Desistir?”
Suporte: “Como explicamos a um usuário por que ele não recebeu o e-mail?”
Perguntas que vale a pena fazer antes de votar
- Um canal hoje, ou vamos integrar e-mail + notificações push + Slack desde o início?
- Preferências do usuário — opção global, por evento ou por canal?
- Desduplicação e resumos — são necessários agora ou “mais tarde”?
- Garantias de entrega — pelo menos uma vez, no máximo uma vez, exatamente uma vez?
- Registro de auditoria: o suporte pode explicar a um usuário por que uma notificação não chegou?
- Modelos: quem redige o texto, quem o localiza e onde ele fica armazenado?
O número real se refere à “mesa dos trinta”, e não à “primeira fileira”. Se a plateia só consegue ver a primeira fileira, a história ainda não está pronta — split o único canal de que você precisa agora, vindo do sistema no qual você vai crescer.
Considere o sistema como um todo, não apenas o e-mail. A primeira notificação é de um dia; a trigésima é o projeto.
Assim como estimar uma integração de pagamentos, a parte visível ao público não reflete o trabalho envolvido. Confira os outros exemplos de estimativas já elaboradas, ou participe de uma sessão gratuita de Planning Poker quando a tabela estiver esboçada.