Read this article in English. / Lee este artículo en Español.
A engenharia é uma das funções mais críticas de uma empresa de tecnologia. Na verdade, como toda empresa acaba se tornando, de alguma forma, uma empresa de tecnologia, essa é uma função fundamental para todas as empresas. Mas especificamente em empresas de tecnologia, a engenharia é responsável por desenvolver o produto principal do negócio: o que é vendido, o que as pessoas usam e compram. Embora possam existir muitos líderes na função técnica do produto — de arquitetos a diretores de tecnologia — a liderança executiva (head ou vice-presidente) de engenharia é a pessoa que desenvolve e gerencia a equipe e que é responsável por avaliar o tempo que levarão para lançar os recursos (ou produtos) e garantir lançamentos de qualidade dentro desse prazo.
Entender esse papel apenas em termos de logística, entretanto, é uma grande simplificação de seu escopo, deixando de lado muitas outras funções críticas e diferenciadas que uma liderança executiva de engenharia altamente competente pode oferecer. Ao se escalonar uma organização, é um desafio (ou até impossível) definir datas de entrega, cumprir todos os prazos e priorizar o desenvolvimento por consenso do grupo. Isso sem falar na importância de se definir a cultura certa, algo fundamental para a retenção de talentos de engenharia que, caso contrário, parariam em outro lugar… Neste mercado, é mais fácil trocar de empresa do que ficar. Uma boa liderança executiva controlaria tudo isso e ainda entregaria produtos de qualidade e proporcionaria ao resto da organização transparência com relação a esse processo.
Por não entenderem esses outros aspectos do trabalho, as startups muitas vezes deixam para contratar uma gerência de engenharia muito tardiamente no ciclo de desenvolvimento do produto. Por isso, elas acabam tendo que lidar com todas as questões internas que surgem quando não se tem uma vice-presidência de engenharia competente gerenciando tudo: processos incompletos, equipe mal montada, equilíbrio fraco entre engenharia e gerenciamento de produto, cultura de engenharia mal elaborada.
Tive a sorte de trabalhar com várias lideranças executivas de engenharia excepcionais. Todas as vezes que trouxemos um desses profissionais para o time, eles trataram de questões internas importantes – e todas as vezes, tive certeza de que deveria ter contratado a pessoa antes! Sendo assim, veremos a seguir alguns dos aspectos críticos do trabalho que você deve ter em mente quando estiver buscando a pessoa certa…
De modo geral, costumamos nos concentrar, com razão, na capacidade de execução da gerência de engenharia, mas o papel que desempenham antes do desenvolvimento também é crucial para a fase de planejamento do produto.
Para a organização de engenharia de uma empresa de tecnologia, o trabalho de desenvolvimento de produtos geralmente requer ampliar a Pesquisa e Desenvolvimento para entregar um determinado produto ou conjunto de recursos em uma escala mais prática e compatível com a produção. Além disso, embora o gerenciamento/marketing de produtos ofereça perspectivas sobre as funcionalidades, o tamanho do mercado e preços, a liderança de engenharia traz informações sobre os recursos (força de trabalho, equipamentos, etc.) necessários para entregar o produto dentro de determinado prazo.
Esse costuma ser um processo iterativo e não tão organizado sequencialmente quanto se imagina. O CEO trabalha com uma série de restrições, orçamentárias e de outra natureza, e precisa encontrar um equilíbrio entre recursos do produto que aumentarão o mercado ou seu valor e força de trabalho e despesa de capital (capex) necessárias para lançar esses recursos. A capacidade de reunir corretamente as estimativas de execução e, em seguida, gerenciar e atualizar essa previsão é crucial para se administrar um negócio de produtos robusto. Sem uma vice-presidência de engenharia forte, esta pode ser uma tarefa arriscada.
Por que não buscar as informações diretamente com o time de engenharia? As pressões sobre a área de engenharia são muito grandes, principalmente nas startups. O discurso costuma posicionar a engenharia como o único fator que pode levar uma empresa ao sucesso. Colocada nessa posição, a equipe geralmente faz o que acha certo para que a empresa cumpra o prazo de um lançamento: assume uma dívida técnica, trabalha dia e noite, inclusive fins de semana, ou restringe a garantia de qualidade. Às vezes, gerentes de produto ou representantes de vendas se aproximam de uma pessoa da equipe na tentativa de obter uma resposta “precisa” sobre o que é realmente necessário para lançar uma funcionalidade específica. Como ninguém quer ser desmancha prazeres, essas estimativas resultam em uma visão de prazo demasiadamente otimista, que não leva em consideração a programação como um todo e prioridades conflitantes da organização. Ou seja, serão usados atalhos, a dívida técnica aumentará e somente os recursos necessários para o ciclo de vendas imediato serão incluídos, em detrimento, de forma desproporcional, de outros desenvolvimentos estratégicos.
Uma boa liderança de engenharia, contudo, trará equilíbrio para esse processo, com uma visão integrada dos objetivos mais amplos. Esses profissionais sabem quando incluir uma função em detrimento de outra e como responder por isso depois.
É claro que não se pode reduzir a importância da liderança de engenharia ao gerenciamento dos recursos dos produtos e de seus lançamentos. A função mais importante dessa pessoa é montar a equipe e definir a cultura de engenharia da startup, especialmente quando a organização cresce tanto que essa camada intermediária de gestão passa a ser necessária. E embora existam marcadores claros do nível de competência de engenheiros, como credibilidade do código aberto, desempenho em testes de codificação, etc., a liderança é um campo mais qualitativo.
Uma vice-presidência de engenharia competente, portanto, deve ser capaz de identificar bons gestores para a equipe, contratá-los e treiná-los nessas habilidades continuamente. Porque construir um ótimo time não é uma tarefa estática: startups crescem rapidamente e a organização de engenharia precisa acompanhar esse crescimento. Da mesma forma, é muito fácil perder de vista a cultura inicial quando a empresa duplica ou quadriplica de tamanho. Uma excelente liderança executiva de engenharia sabe como manter a cultura existente enquanto desenvolve uma nova cultura. E quando a organização de engenharia começa a se dividir entre subprojetos que precisam funcionar em conjunto, mas têm prazos diferentes a cumprir, essa liderança consegue administrar a dinâmica entre os grupos.
Mas como identificar uma boa liderança de engenharia na hora da contratação? A maneira mais fácil de avaliar a pessoa para além das qualificações descritas no currículo é observar as equipes que ela liderou ou lidera: cumpriram os prazos dos lançamentos? Seguiram um processo lógico e não aleatório? Ocorreram muitos conflitos (ou seja, atritos improdutivos e não criativos) entre as equipes? Em minha experiência, é mais fácil avaliar heads de engenharia pelos grupos que lideram. O que observamos em suas equipes é provavelmente o que esses profissionais trarão para sua empresa.
Em última instância, o output de qualquer organização de engenharia é o produto. Uma organização bem azeitada não só criará um produto de alta qualidade, mas também cumprirá os prazos definidos e conseguirá prever com exatidão atualizações no cronograma no caso de alterações. Ou seja, a boa liderança tem total domínio do processo de desenvolvimento de softwares e assegura que o processo correto seja implementado e seguido.
Muito já se escreveu sobre processos e abordagens de engenharia, por isso não vou me alongar nesse ponto. Focarei nas diversas características de uma excelente liderança de engenharia que não são tão óbvias a princípio, mas que ajudam e muito na execução:
Manter o moral (e, consequentemente, o alto rendimento do trabalho). Muitas vezes, moral e produção parecem ser elementos conflitantes. Acredita-se que mais projetos paralelos, folgas e treinamentos elevem o moral. Contudo, startups, em geral, não podem se dar a esse luxo. Uma liderança de engenharia competente costuma dar autonomia suficiente a suas equipes para que elas fiquem felizes e satisfeitas por estarem desenvolvendo o produto.
Construir blocos e não arcos. Programadores e arquitetos costumam dar valor à elegância em seus projetos. Não raro, os projetos são tão gerais que é necessário fazer um investimento considerável na plataforma antes de se produzir algo de valor. Já ouvi compararem esse processo a uma construção que utiliza arcos, em que a estrutura fica de pé por si só até a última peça (a pedra angular) ser encaixada no topo para unir o conjunto. Pode ser um projeto elegante, mas na corrida para se encontrar produtos repetíveis que consigam se encaixar em um mercado, é fundamental mostrar valor e buscar feedback dos clientes. Uma liderança de engenharia competente deve, portanto, ser capaz de direcionar o time para projetos mais práticos e incrementais, que consigam receber feedback externo rapidamente – sem comprometer a generalidade do sistema para o longo prazo. A função da liderança executiva nesse ponto não é produzir a arquitetura, mas garantir que versões incrementais sejam realmente um pré-requisito no processo do projeto.
Lidar com o caos. Existe um ditado popular nas empresas de tecnologia: “Pior que não ter clientes é ter clientes”. Quando um produto lançado dá certo e faz sucesso mundo afora, o feedback do mercado pode ser avassalador. Mesmo com um mínimo de sucesso, a engenharia é inundada de encaminhamentos de chamados de clientes, solicitações de funcionalidades, dúvidas que surgem durante o uso, pressões de parceiros da área técnica querendo integração e reuniões com clientes. É preciso lidar com tudo isso enquanto o produto continua sendo desenvolvido. Quando estão sob pressão, as organizações olham para cima: uma marca registrada de uma vice-presidência de engenharia competente é manter a serenidade enquanto administra esse caos.
Gestão de contas. Embora sua atuação seja, em grande parte, voltada para o público interno, a liderança executiva de engenharia também pode desempenhar um papel importante nas fases de pré e pós-vendas para empresas que enviam produtos. Os clientes muitas vezes querem conversar com a vice-presidência de engenharia para, por exemplo, entender melhor o processo de controle de qualidade. No início do ciclo de vida do desenvolvimento, não existe muita coisa além da visão e da competência do time. Uma excelente vice-presidência de engenharia só dispõe disso para ganhar a tão necessária confiança do cliente. Essa liderança também costuma ser chamada para o pós-vendas quando recursos visíveis do cliente começam a sumir ou quando surgem problemas com o produto. A presença da liderança executiva de engenharia na discussão com o cliente é um dos meios mais eficazes de reconquistar sua confiança, seja descrevendo a causa raiz de um bug e como ele está sendo resolvido ou explicando os motivos que causaram o desaparecimento de uma data crítica do cliente.
Lembro quando, no início da Nicira, lançamos a primeira versão do nosso produto. O mundo começou a cair na mesma hora. Claro que esperávamos descobrir falhas com o uso do produto em campo, mas a pressão enfrentada pela equipe de engenharia ultrapassou em muito o que havíamos previsto. Além dos encaminhamentos de chamados de clientes, a equipe de vendas solicitava melhorias na usabilidade para ajudar a simplificar as provas de conceito – isso para um produto especialmente complicado. Enquanto isso, o suporte demandava mudanças imediatas necessárias para solucionar bugs remotamente. Os clientes logo ultrapassaram os limites de escala que publicamos e estavam usando nosso produto de maneiras que não havíamos imaginado, causando problemas que não tínhamos capacidade de reproduzir internamente.
Como fundador da empresa, todas as manhãs sentia como se estivesse entrando em um navio que vazava água por todos os lados. A primeira pessoa que eu costumava procurar era nosso vice-presidente de engenharia, Rob Enns, que acabara de ingressar na empresa. Eu sempre perguntava quanto faltava para afundarmos: “Vamos sair dessa?”. E ele me tranquilizava e depois dizia para deixá-lo em paz e “ir administrar a empresa”. Era o que eu fazia. Mas agora vejo que as coisas teriam sido muito mais fáceis se nós tivéssemos contratado Rob antes!
Acredito que todas as startups devem contratar uma liderança executiva de engenharia e que devem fazer isso logo no início – antes dos problemas começarem, mesmo que pareça um pouco prematuro demais em relação ao número total de funcionários. Muitas startups novas acreditam que não precisam de liderança de engenharia porque a equipe tem experiência suficiente ou talvez seja muito pequena. Não há como exagerar a importância dessa função. Uma liderança executiva competente é a espinha dorsal da função de engenharia, que resiste às pressões do negócio, enquanto promove o crescimento da organização, sem deixá-la desmoronar sob o peso de um processo improvisado. A definição da cultura e do processo certos deve ser algo endêmico na organização, independentemente de seu tamanho. E é exatamente isso que a contratação da liderança executiva de engenharia certa, no momento certo, proporcionará.