Um orçamento de desempenho é um conjunto de limites explícitos sobre as características que determinam a velocidade de carregamento e resposta de uma página, acordados previamente e aplicados como parte do processo de desenvolvimento. Os orçamentos são normalmente expressos como limites em métricas como Largest Contentful Paint (LCP), em quantidades como o tamanho total do JavaScript ou em regras como o número de requisições de terceiros permitidas.
O problema que aborda é a regressão, e não a otimização. Os sites não ficam lentos por causa de uma única decisão; eles acumulam peso por meio de muitas adições individualmente razoáveis, cada uma pequena demais para causar preocupação. Um novo recurso, um script de rastreamento adicional, uma imagem principal maior, uma nova espessura de fonte e uma atualização da biblioteca de componentes adicionam cada um uma fração de segundo, e depois de dois anos o site fica substancialmente mais lento sem nenhuma causa identificável. Um orçamento faz com que cada adição enfrente um limite.
Os orçamentos funcionam porque convertem uma preferência abstrata por velocidade em uma restrição que deve ser considerada no momento da tomada de decisão. Sem um orçamento, a discussão sobre se um script vale o seu custo ocorre posteriormente, se é que ocorre, e a pessoa que propõe a adição não tem motivo para considerá-la. Com um orçamento, adicionar algo significa ou permanecer dentro do limite ou remover explicitamente outra coisa, que é a compensação que deveria ocorrer de qualquer forma.
Definir as metas exige evidências, e não apenas aspirações. Pontos de referência úteis incluem o desempenho atual, para que o orçamento evite a deterioração; métricas da concorrência, para que a meta reflita o mercado em que o site compete; e os limites associados às métricas importantes para a busca e para a experiência do usuário. Orçamentos definidos em níveis que o site não consegue atingir atualmente são úteis como metas, mas devem ser diferenciados dos limites impostos a novos projetos, caso contrário, todas as versões falham e a verificação é desativada.
A aplicação de mecanismos de controle em ferramentas automatizadas é o que diferencia um orçamento de um documento. Integrar a verificação ao pipeline de desenvolvimento, de forma que uma alteração que exceda o limite falhe ou exija aprovação explícita, é o mecanismo que produz esse comportamento. Orçamentos registrados em uma especificação e verificados periodicamente por um engenheiro interessado são rotineiramente excedidos, porque quando alguém percebe, o trabalho já foi entregue e o custo de reversão supera o custo de aceitação.
A granularidade deve corresponder à forma como o site é construído. Diferentes modelos têm características diferentes, e um orçamento único para todo o site restringe desnecessariamente uma página simples ou permite que uma página interativa se expanda sem controle. Definir orçamentos por modelo, com os limites mais exigentes nos caminhos de maior valor, como páginas de destino e de finalização de compra, direciona a restrição para onde ela é mais importante.
Exceções precisam de um processo definido, em vez de serem proibidas ou informais. Casos legítimos surgem quando uma funcionalidade realmente justifica um peso adicional, e um orçamento sem caminho para exceções é contornado ou impede o desenvolvimento de trabalhos importantes. Exigir que a exceção seja solicitada, aprovada por alguém responsável pelo desempenho e registrada com um prazo de validade mantém a credibilidade do mecanismo, ao mesmo tempo que permite que casos genuínos sejam atendidos.
Como os orçamentos restringem as decisões tomadas nas áreas de engenharia, design e marketing, é necessário consenso além da equipe responsável pela avaliação de desempenho. Na prática, os limites são definidos por meio de desempenho na web trabalho, a aplicação da lei está integrada ao processo por desenvolvimento de produtosE a justificativa comercial para a restrição geralmente é feita conectando o desempenho à conversão usando a análise mantida por meio de análise de dados.