DEV Community

Sheets and SQL BR
Sheets and SQL BR

Posted on Edited on

Como organizar o amigo secreto do time sem planilha (checklist de 15 minutos)

Todo fim de ano alguém do time vira "a pessoa do amigo secreto". Normalmente isso começa com uma planilha compartilhada, passa por um grupo de WhatsApp com 40 mensagens sobre o valor e termina com alguém tirando o próprio nome no papelzinho.

Dá para fazer isso com bem menos atrito. Este é o checklist que eu uso, na ordem.

1. Feche três números antes de falar em sorteio

  • Teto do presente. Um valor só, por exemplo até R$ 50. Combine se o frete entra no teto.
  • Data da troca. Escolha primeiro a data e conte para trás: o sorteio sai pelo menos duas semanas antes.
  • Prazo para entrar. Quem não confirmou até o prazo fica de fora. Sem isso o sorteio nunca acontece.

Mande isso numa mensagem só, fixada no canal do time:

Amigo secreto do time
Teto: até R$ 50 (frete conta)
Sorteio: 20/11
Troca: na confra, 12/12
Entra quem responder até 18/11
Enter fullscreen mode Exit fullscreen mode

2. Lista de participantes com uma fonte só

O problema da planilha é que ela vira três versões. Tenha uma lista, com nome e um contato. Se tiver casal ou dupla que não pode se tirar, anote já nesse passo.

3. Sorteio sem ninguém ver os pares

O ponto fraco de quem organiza é saber quem tirou quem. Papelzinho também falha: alguém tira o próprio nome e o sorteio recomeça na frente de todo mundo.

O que você quer de qualquer método:

  • ninguém tira a si mesmo;
  • restrições respeitadas (casais, chefe e liderado, se o time preferir);
  • cada pessoa recebe só o próprio par, em link ou mensagem individual;
  • quem organiza também participa sem saber os pares.

Se for fazer na mão, um jeito simples é a "roda": embaralhe a lista e cada pessoa dá presente para a próxima, e a última para a primeira. Ninguém tira a si mesmo, mas alguém ainda precisa avisar cada um, e esse alguém fica sabendo de tudo.

4. Lista de desejos curta

Peça três ideias por pessoa, pelo menos uma abaixo do teto. Isso acaba com o "não sabia o que te dar" e com a caneca número sete.

5. Lembrete na semana da troca

Uma mensagem no canal, dois dias antes: data, horário, teto. Só isso.

6. No dia: revelação rápida

Fila de entrega é constrangedora. Faça uma rodada de "adivinhe quem te tirou": cada um dá uma pista sobre quem tirou, e o grupo chuta. Em 15 minutos acabou e virou brincadeira.

Resumo para copiar

  • [ ] Teto, data da troca e prazo definidos
  • [ ] Mensagem fixada no canal
  • [ ] Lista única com restrições anotadas
  • [ ] Sorteio que manda só o par de cada um
  • [ ] Três ideias de presente por pessoa
  • [ ] Lembrete dois dias antes
  • [ ] Rodada de pistas na troca

Se o time também vai ter confraternização com convite e lista de presença, eu tenho usado o TeConvidei, que junta convite, confirmação, check-in por QR e o amigo secreto da equipe no mesmo lugar: https://www.teconvidei.com/empresas?utm_source=devto&utm_medium=social&utm_campaign=confra2026

(Aviso: é uma ferramenta que eu divulgo.)

P.S.: se o time preferir fazer no papel, eu também fiz um Kit Amigo Secreto Imprimível: https://pay.kiwify.com.br/bBXLBnM?src=devto (Aviso: produto meu.)

Top comments (1)

Collapse
 
sinarezaei profile image
Sina Rezaei •

Tem um detalhe técnico que faz bastante diferença quando o sorteio envolve equipes maiores: as restrições podem tornar uma distribuição aparentemente simples impossível.

Pensa em uma empresa com 40 pessoas, onde ninguém pode tirar a si mesmo, casais não podem se sortear, gestores não podem tirar seus subordinados diretos e os pares do ano anterior precisam ser evitados.

Nesse cenário, eu não usaria apenas um shuffle() com várias tentativas. Modelaria o problema como um matching em grafo bipartido. Cada participante seria um nó de origem, cada possível destinatário seria um nó de destino e as combinações proibidas seriam removidas das arestas.

Por exemplo, se o participante employee_17 já tirou employee_08 no ano passado e employee_08 é seu subordinado direto, essa combinação nem deveria entrar na lista de candidatos.

Uma implementação poderia manter as restrições em uma estrutura como Map<EmployeeId, Set<EmployeeId>> e usar um algoritmo de matching, como Hopcroft-Karp, para encontrar uma distribuição completa. Antes de confirmar o resultado, também validaria se todos os 40 participantes receberam exatamente um destinatário e se nenhum destinatário apareceu mais de uma vez.

Outro detalhe importante é tratar a geração como uma operação transacional: primeiro validar e gerar os pares, depois persistir o resultado e só então disparar as notificações. Se o processo falhar no meio, você não quer enviar metade dos resultados e deixar o restante inconsistente.

No fim, o problema não é simplesmente sortear nomes. É garantir que todas as restrições sejam respeitadas sem comprometer a integridade da distribuição.