5 segundos de carregamento não são aceitáveis. Mas são a norma.

Quando inicias um programa, abres uma aplicação ou carregas um site, é provável que estejas à espera durante pelo menos vários segundos. É normal.

Não devia ser.

Assim que os teus clientes provarem tempos de carregamento e respostas rápidas, nunca te vão trocar por um concorrente — quando sentirem a diferença entre a tua aplicação rápida e a aplicação lenta do concorrente, a lenta vai irritá-los profundamente.

Como conseguir esta vantagem, alguns factos do mundo real e o que perguntar ao teu programador? Está tudo neste artigo.

5 segundos de carregamento não são aceitáveis. Mas são a norma.

Quão rápidas podem as coisas ser, na realidade?

Este não é um artigo técnico, por isso vamos apenas passar por cima de alguns números fundamentais e compreensíveis e compará-los com o mundo real.

Um CPU barato num telemóvel de baixo custo consegue processar milhares de milhões de instruções por segundo x pelo menos 2 núcleos (essencialmente 2 unidades de processamento).

A leitura de dados a partir de discos modernos faz-se a milhares de megabytes por segundo — mais uma vez, mesmo num telemóvel de baixo custo.

A transferência através da internet é, no mínimo, de centenas de megabytes por segundo.

A comparação

Comecemos pelo produto mais lento. Uma página web de alta qualidade, logo após o carregamento, pode ter, no limite superior, 15 a 25 megabytes.

O que significa que, no total, deverias introduzir o link num navegador aberto e ver o site em cerca de 1 a 2 segundos — totalmente carregado.

Se considerarmos uma aplicação no teu telemóvel, trata-se de ficheiros guardados no teu dispositivo, pelo que não se aplica aqui qualquer ligação à internet (a velocidade mais lenta). Com velocidades de gigabytes por segundo, deverias ver uma aplicação típica abrir e funcionar em 0,15 a 0,25 segundos.

Numa aplicação, programa ou site já aberto, uma interação passa apenas pelas velocidades mais rápidas do CPU e, por vezes, do GPU. Quando carregas num botão, o resultado deveria ser visível no teu ecrã de forma literalmente imediata.

A realidade atual

Na realidade atual, nem sempre é possível atingir essas velocidades. Mas, como podes imaginar, passar de 1 a 2 segundos para 5 segundos de carregamento também não é necessário, e o teu site ainda pode abrir em 2 a 3 segundos. E isto para uma página realmente grande que carece de uma boa otimização.

O que perguntar ao teu programador?

Não precisas de perceber tecnologia e programação em detalhe. Isto não serve para fazer uma entrevista técnica.

A stack

Começa com a pergunta «Qual é a tua stack?». Essa pergunta procura saber quais são as ferramentas e tecnologias com que constroem e sobre as quais constroem. Se o programador começar a falar-te de todas as tecnologias fantásticas que usa, isso é um sinal de alerta. O mesmo se disser coisas como «webview».

Porquê? Porque a maior parte do software lento de hoje é construída sobre algo que já foi construído antes, e esse algo é construído sobre outra coisa construída ainda antes. É uma corrente. O que significa que todas as velocidades mencionadas acima, que continuam válidas, têm de processar não o teu projeto, mas muitas camadas.

O WordPress é lento porque faz tudo, mesmo que não precises.

Medição

A segunda pergunta é como medem a velocidade. E quais são os seus objetivos de velocidade.

Surpreendentemente, muitos programadores dizem que o objetivo são 5 segundos. Isso é outro sinal de alerta. O mesmo se não tiverem uma resposta adequada sobre como medem — ou se a resposta for «abrimos e vemos».

Ver com os próprios olhos e sentir é uma parte necessária dos testes. Mas é também a origem de muitos problemas do tipo «no meu computador funciona».

Deverias começar a exigir métricas de velocidade

Dá mais trabalho fazer o teu projeto como deve ser. Mas não tanto quanto possas pensar.

Os projetos pequenos (como sites de uma só página) não têm diferença de trabalho mensurável entre começar do zero e usar ferramentas já existentes. Os projetos grandes exigem um planeamento cuidadoso, ponderar os prós e os contras e saber porquê usar as chamadas frameworks.

Parte da especificação do teu produto não deve ser apenas como o produto deve funcionar, mas também quão rápido deve ser. É uma discussão muito importante a ter.

Pela nossa experiência, percebemos que, para uma pessoa não técnica, esta é uma conversa desconfortável. É por isso que nós, na LINK-V, acompanhamos os nossos clientes ao longo do processo numa linguagem que compreendem. Afinal, o software é a camada entre o ser humano e o computador e, se fazemos o software, agimos da mesma forma.

Tom J. · LINK-V