Um dia na pele de
A engenharia do app de supermercado
Você lidera a engenharia de uma empresa que faz o app de compras de uma rede de supermercados. São 12 pessoas no time e um lançamento marcado para daqui a oito dias úteis. Nesta quinta-feira, quatro coisas pedem você ao mesmo tempo, e você decide a ordem.
Quase nada do seu trabalho se resolve escrevendo código na sua mesa: está na sala de reunião, na mesa do produto, numa conversa a sós. Andar até lá leva tempo, e esse tempo entra no relógio do seu dia.
Entregar no prazo sem deixar para o time um sistema que ninguém consegue mexer.
Profissões com um dia assim: Software Engineer · Staff Engineer · Solutions Architect · Engineering Manager
Ler o dia inteiro (contém os desfechos)
A engenharia do app de supermercado: o dia por escrito
Você lidera a engenharia de uma empresa que faz o app de compras de uma rede de supermercados. São 12 pessoas no time e um lançamento marcado para daqui a oito dias úteis. Nesta quinta-feira, quatro coisas pedem você ao mesmo tempo, e você decide a ordem.
Quase nada do seu trabalho se resolve escrevendo código na sua mesa: está na sala de reunião, na mesa do produto, numa conversa a sós. Andar até lá leva tempo, e esse tempo entra no relógio do seu dia.
Sua mesa: O plano que fecha no papel
O lançamento da versão nova é daqui a oito dias úteis, e a diretoria da rede vai perguntar hoje se ele sai. O quadro do time diz que sim: cada tarefa tem um dono e uma estimativa em dias.
O quadro não mostra quem vai estar fora: férias, folga, curso. Isso está numa planilha do RH que ninguém cruzou com o quadro.
Ache as tarefas que não cabem nos oito dias, somando a estimativa aos dias em que o dono vai estar fora. São essas três. O carrinho compartilhado precisa de 6 dias e o Bruno tem 3 de férias: 9. A entrega agendada, 7 mais 2 de curso da Elisa: 9. A troca de produto em falta, 8 mais 1 de folga da Iara: 9. A lista recorrente e o histórico somam 8 cravados: cabem, sem folga nenhuma. Cada tentativa errada custa 5 minutos.
O que acontece conforme a hora em que você chega
- Antes das 11h: Você achou antes das 11h. Deu tempo de remanejar duas tarefas para quem estava com folga e de levar à diretoria da rede um plano que fecha, antes de ela perguntar.
- Entre 11h e 15h: Você achou depois das 11h. O produto já tinha confirmado o lançamento completo para a rede, por e-mail. O plano certo chegou depois da promessa.
- Depois das 15h: O plano ficou para depois das 15h. A diretoria da rede saiu da semana com a data e as três funções confirmadas. O time vai descobrir na próxima quarta que elas não cabem, e o cliente, na véspera.
Sala de reunião: Uma planilha por dia
O gerente de TI da rede está na sala de reunião. O sistema de estoque deles tem 20 anos e não tem API: ele propõe mandar uma planilha por dia, à meia-noite, com o estoque das 40 lojas.
Com a planilha, o app mostra o estoque de ontem. Num sábado de promoção, o cliente compra o que já acabou.
- Aceitar a planilha e avisar do atraso. Você aceita a planilha e escreve na ata que o estoque do app vai estar um dia atrasado. O gerente de TI agradece: é o que ele consegue entregar. No primeiro sábado de promoção, o app vai vender produto que a loja já não tem, e a ata diz por quê.
- Propor uma API mínima e um prazo maior. Você desenha no quadro uma API pequena, só de estoque, que o time da rede precisaria construir. O gerente de TI diz que dá, mas não antes de janeiro. O app lança sem estoque integrado, e a rede vai perguntar por que o concorrente já tem.
O que acontece conforme a hora em que você chega
- Antes das 10h30: Você entrou antes das 10h30. O gerente de TI ainda estava montando a proposta. Deu para desenhar a solução com ele, não em cima do que ele já tinha decidido.
- Entre 10h30 e 14h: Você entrou depois das 10h30. O gerente de TI esperou uma hora e já tinha mandado a proposta da planilha para o diretor dele, como fechada.
- Depois das 14h: A reunião ficou para depois das 14h. O gerente de TI foi embora sem falar com a engenharia, e o produto aceitou a planilha por e-mail. O que quer que se decida agora, é para desfazer um acordo.
Mesa do produto: O preço calculado duas vezes
O checkout novo está pronto para entrar, e o produto quer que entre hoje. Você abre o código: quem escreveu calculou o preço com desconto dentro da tela de pagamento, em vez de chamar o serviço que já calcula preço para o app inteiro.
Funciona. Mas agora existem dois lugares que decidem quanto custa um produto.
- Aprovar e registrar a dívida técnica. Você aprova e abre uma tarefa: "unificar o cálculo de preço". O checkout entra hoje e o produto agradece. Na próxima mudança de regra de desconto, alguém vai ter de lembrar que são dois lugares.
- Pedir para usar o serviço de preço antes de entrar. Você explica, no próprio código, por que o preço tem de vir de um lugar só, e pede a mudança. Quem escreveu entende e refaz. O checkout entra na segunda, e o produto tira um dia do teste final para caber no prazo.
O que acontece conforme a hora em que você chega
- Antes das 11h: Você foi ao produto antes das 11h. O código ainda estava esperando revisão. A decisão entrou antes de alguém apertar o botão de juntar.
- Entre 11h e 16h: Você foi ao produto depois das 11h. O produto já tinha pedido a outra pessoa para revisar "rapidinho". Você chegou a uma revisão pela metade, com o aprovado quase dado.
- Depois das 16h: O checkout ficou para depois das 16h. O código entrou sem você olhar, aprovado por quem estava livre. O cálculo duplicado está em produção, e ninguém anotou que ele existe.
Ilha do time: A proposta do Rafael
O Rafael é quem mais conhece o sistema de pagamento. Ele pede cinco minutos e conta, sem rodeio: recebeu uma proposta de um banco, 40 mil a mais por ano, e tem até amanhã para responder.
O lançamento depende dele. Outros dois do time ganham menos do que ele e fazem trabalho parecido.
- Pedir ao RH uma contraproposta hoje. Você liga para o RH e consegue cobrir a metade da diferença. O Rafael fica, por enquanto. Em algumas semanas, os outros dois vão saber, porque essas coisas se sabem, e a próxima conversa a sós vai ser com eles.
- Agradecer a franqueza e planejar a saída. Você diz que entende e pede que ele passe as duas últimas semanas documentando o pagamento com a Carla. Ele aceita, aliviado. O lançamento perde a pessoa que resolvia os problemas de pagamento em minutos.
O que acontece conforme a hora em que você chega
- Antes das 10h: Você conversou antes das 10h. O Rafael ainda não tinha decidido. A conversa foi antes da resposta, não para mudá-la.
- Entre 10h e 15h: Você conversou depois das 10h. O Rafael passou a manhã esperando e já tinha contado a dois colegas. A conversa a sós começou com o time sabendo.
- Depois das 15h: O Rafael ficou para depois das 15h. Ele não esperou e mandou o aceite ao banco no começo da tarde. O que quer que tenha sido dito depois, foi sobre uma decisão já tomada.
Copa: Café, e a engenharia vista de fora
Duas pessoas do comercial estão na bancada, esperando o micro-ondas.
“…engenharia sempre diz que não dá. Aí dá.”
O último "dá" custou três fins de semana do time e um engenheiro que saiu em seguida. Elas não sabem disso. Quinze minutos depois, você volta para a sua mesa com essa frase na cabeça.
O que se ouve de passagem
Atravessar a empresa não é só deslocamento. No corredor as pessoas continuam falando, e o que elas dizem depende da hora e do que você ainda não resolveu. Nada disso custa tempo nem muda o dia.
- …o produto já disse pra rede que sai tudo dia 24.
- …o Rafael tá estranho hoje. Disse que precisa falar com você.
- …o cara de TI da rede tá na sala desde cedo, com uma planilha impressa.
- …o checkout tá pronto, só falta alguém aprovar rapidinho.
O que vem depois das escolhas
- Se você escolheu “Aprovar e registrar a dívida técnica” e “Agradecer a franqueza e planejar a saída”: Você aprovou o preço calculado em dois lugares e planejou a saída do Rafael. Ele era um dos três que sabiam onde fica cada regra de preço. A tarefa de unificar continua aberta, com um a menos para fazê-la.
- Se você escolheu “Pedir para usar o serviço de preço antes de entrar” e “Aceitar a planilha e avisar do atraso”: Você segurou o checkout três dias e aceitou a planilha da rede. As duas coisas caem na mesma semana: o time que refaz o preço é o mesmo que precisa ler a primeira planilha à meia-noite.
- Se você escolheu “Pedir ao RH uma contraproposta hoje” e “Propor uma API mínima e um prazo maior”: Você segurou o Rafael com uma contraproposta e empurrou a integração para janeiro. Ele é quem vai construir a API do estoque com o time da rede, e agora ganha mais que os dois que vão ajudá-lo.
- Se você escolheu “Aceitar a planilha e avisar do atraso” e “Agradecer a franqueza e planejar a saída”: Você aceitou a planilha e liberou o Rafael. A rotina que lê a planilha à meia-noite ficou com a Carla, que estava aprendendo o pagamento com ele na mesma semana.
Como o dia termina
Você foi para o plano primeiro.
Havia um cliente na sala, um código esperando revisão e um engenheiro com outra proposta, e você abriu o plano do lançamento. Passou 1h00 cruzando estimativa com férias.
Isso não é bom nem ruim. É informação: você foi atrás do prazo antes de ele virar promessa. Gestão de engenharia é muito isso, saber o que cabe antes que alguém prometa o que não cabe.
Você foi para o cliente primeiro.
Você começou pela sala de reunião, com um sistema de 20 anos e uma planilha. Passou 50 min decidindo entre o que sai logo e o que fica certo.
Arquitetura de soluções é isso: desenhar a ponte entre o que o cliente tem e o que o produto precisa, sabendo que cada atalho vira um problema com data marcada.
Você foi para o código primeiro.
Você começou pelo checkout, onde o preço era calculado em dois lugares. Passou 45 min decidindo se o prazo valia uma regra duplicada.
Quem cuida da qualidade técnica de um time vive essa conta todo dia: cada atalho aprovado é um lugar a mais para lembrar quando a regra mudar.
Você foi para o Rafael primeiro.
Você começou pela conversa a sós, com uma proposta e um prazo até amanhã. Passou 40 min pesando uma pessoa contra a régua do time inteiro.
Gestão de engenharia também é isso: o sistema depende de gente, e cada decisão sobre uma pessoa o resto do time acaba sabendo.
As três portas de Engenharia de Software
Engenharia de software não é uma profissão só, são três, e elas se separam pelo tipo de problema, não pelo assunto.
- Engenharia de software. Escrever e revisar o código de modo que outra pessoa consiga mexer nele daqui a um ano.
- Arquitetura de soluções. Desenhar como sistemas diferentes conversam, entre o que o cliente tem e o que o produto precisa.
- Gestão de engenharia. Cuidar do time e do prazo: quem faz o quê, até quando, e quem continua no time.