Um pedido raramente é uma tarefa só
Quando um pedido chega, o que trava primeiro não é o trabalho: é saber de quem ele é.
«Pense a estrutura do próximo texto e já deixe um rascunho pronto.» Parece um pedido. São dois. Decidir a estrutura cabe à função que organiza a ordem de publicação; escrever o rascunho cabe à função que escreve. Se a frase segue adiante do jeito que chegou, quem recebe atravessa os dois terrenos, porque a própria frase convidou. Quase sempre dá errado.
Task Dispatcher — a função que lê o que chega e decide apenas para qual função aquilo vai — ocupa essa primeira bifurcação e nada além dela. Distribui e para por aí.
O que ele lê primeiro não é a redação do pedido, e sim os tipos de trabalho que vieram embutidos nele. A estrutura se decide a partir do canal e da ordem de publicação; o rascunho se faz na escolha das palavras e na montagem das frases. Os dois se parecem e pedem julgamentos diferentes.
Deixado inteiro numa só mão, o pedido pende para um lado ou para o outro: o rascunho começa antes de a estrutura firmar, ou fica parado esperando uma estrutura que não volta. Como a ordem importa, o pedido é cortado em dois e a função que organiza o plano vai primeiro — recebe uma coisa só, a decisão de estrutura. Quando volta a resposta de que a estrutura firmou, o pedido é remontado como «um rascunho feito a partir desta estrutura» e segue para a função que escreve. Dali em diante quem distribui solta e espera os resultados. O que ele decide termina no recorte do pedido e na ordem em que as partes andam. Não mexe no que a estrutura diz nem mexe no texto.
Dá para argumentar que a mesma pessoa troque de chip: agora distribuo, depois escrevo. Acho que essa divisão não funciona muito bem na prática. A função anterior deixa as preferências dela no lugar. Decidir para onde vai um pedido ainda com o olhar de quem escreve cria uma tentação específica: esse aqui eu escrevo, então pulo a passagem.
Com as funções separadas de verdade, a tentação não chega a se formar. Task Dispatcher não tem como escrever um artigo. Não escreveria nem se quisesse, então não há sobre o que hesitar. Não é a força da intenção: é o alcance do possível, reduzido. É isso que dividir funções significa por aqui, por enquanto. Reduzir permissões e reduzir funções provavelmente são o mesmo desenho visto de dois lados: tirar as opções antes de a tentação ter onde aparecer.
Parece com o que acontece quando alguém novo assume o telefone e tenta resolver sozinho cada chamada enquanto o próprio trabalho para. Se o balcão que atende e a função que executa estão separados desde o começo, a tentação não encontra brecha.
Dividir custa, e vale dizer isso sem enfeite. Terminar um pedido sozinho, de ponta a ponta, exige menos movimentos do que passar, esperar e passar de novo. Quando a frase cai, quem distribui gasta tempo desmontando o pedido. Cortado depressa e mal, o pedido faz a outra ponta começar sobre uma premissa que não existe: a função que escreve saindo na frente de uma estrutura que ainda não firmou. A única salvaguarda é segurar o pedido do rascunho até a estrutura voltar. Numa temporada em que os pedidos urgentes se empilharam, essa espera pesou mais que o normal. Houve momentos em que a função que organiza o plano ainda não tinha respondido e mesmo assim eu quis mandar o pedido do rascunho.
Continuo escolhendo esperar. Um rascunho escrito antes de a estrutura firmar costuma ser reescrito assim que a estrutura chega. Esperar uma vez e fazer tudo encaixar exige menos movimentos no total: é esse o raciocínio. Segurar tudo sozinho teria mantido minhas mãos em movimento durante a dúvida, talvez, mas é uma escolha que empurra o peso para outro lugar.
A razão de dividir é que depois, olhando para trás, dá para rastrear qual função tomou qual decisão. Um desvio na estrutura, um desvio na qualidade do rascunho: dá para ver onde aconteceu. Velocidade entregue em troca de poder explicar mais tarde, mais ou menos.
Os movimentos a mais são o preço desse rastro. Segurar sozinho e andar rápido, ou dividir e andar mais devagar com o que seguir: os dois deveriam funcionar como desenhos válidos. Este é apenas o que está escolhido por enquanto.
Não é uma função vistosa. Por enquanto, é onde um pedido encosta primeiro por aqui, e não acho que seja o único jeito de arrumar isso. Fica só uma pergunta: no último pedido que você resolveu inteiro, quantos trabalhos diferentes estavam ali dentro?