“Adicionar uma barra de pesquisa” acaba significando “escolher um mecanismo de busca, criar um modelo de relevância e controlar o índice para sempre”.

A pesquisa envolve dois aspectos que o ticket nunca menciona. O primeiro é a relevância: o que torna um resultado melhor do que outro, e quem decide isso? O segundo é operacional: onde fica o índice, como ele se mantém sincronizado com a fonte de verdade e o que acontece quando fica desatualizado? “Adicionar pesquisa” implica em um controle da interface do usuário. O trabalho envolve a classificação e o índice.

Uma equipe que já lançou um sistema de busca sabe que a resposta raramente é a mesma duas vezes. A pesquisa de texto completo do Postgres funciona bem até que alguém precise de tolerância a erros de digitação. O Elasticsearch é rápido até você começar a pagar por ele nos fins de semana. O Algolia é fácil de usar até você precisar de uma classificação personalizada. A estimativa depende do compromisso que a equipe está assumindo, e essa decisão geralmente ainda não foi tomada quando o ticket chega à fase de refinamento.

O que se fala na sala

Backend: “O Postgres consegue fazer isso com tsvector.”

PM: “Os erros ortográficos ainda devem ser mantidos? E os plurais?”

Front-end: “Vamos usar o preenchimento automático ou apenas o formato ‘enviar e depois exibir os resultados’?”

SRE: “Como estamos mantendo o índice sincronizado? Por meio de gatilhos? De uma tarefa? De um fluxo?”

Líder: “Quem detém a relevância quando alguém reclama que a resposta certa está na segunda página?”

Perguntas que vale a pena fazer antes de votar

  • Que corpus: quantos documentos, com que frequência eles são atualizados?
  • Postgres FTS, um serviço de busca dedicado ou um serviço hospedado (Algolia, Typesense)?
  • Tolerância a erros ortográficos, stemming, sinônimos, plurais: quais estão incluídos no escopo?
  • Facetação e filtros, ou apenas uma única lista ordenada?
  • Como o índice se mantém sincronizado e qual é o limite de desatualização?
  • Quem detém a relevância a longo prazo e como ela é ajustada?

Se a escolha da infraestrutura ainda estiver em aberto, essa decisão é um pico, não uma tarefa. Determine o tamanho do pico e reavalie a estimativa da construção assim que a relevância tiver um responsável.

A caixa de pesquisa representa um dia. A relevância e o índice são as características; portanto, faça uma estimativa delas.

Veja como estimar uma integração de pagamentos para o mesmo formato — uma pequena superfície visível que esconde um longo processo operacional — e os outros exemplos práticos de estimativa. Ou inicie uma sessão gratuita de Planning Poker quando a questão relevante tiver um responsável.