Faz tempo que eu estava pensando em escrever alguma coisa. A última vez que fiz um artigo foi no meu próprio blog (em reforma).
Pois bem, decidi falar sobre performance web, mas dessa vez quero ir um pouco além das técnicas básicas ou avançadas que aplicamos ao projeto quando estamos na fase de desenvolvimento.
Quero dar um passo atrás, quero falar sobre a construção da ideia, do escopo, do design, enfim, quero falar sobre o que podemos fazer antes de começar a codificar qualquer coisa.
Performance Web só é pensada quando sentida
Venho percebendo ao longo do tempo, nos projetos em que eu tenho trabalhado, que o assunto Performance Web é, na maioria das vezes, negligenciado, ou seja, o desempenho de um site ou aplicativo só é pensando por último (quando pensado).
Considera-se prazo, design, ferramentas, valores, metodologias e por aí vai, mas não vejo o quesito desempenho ser considerado, pelo menos não da maneira que deveria. E ao meu ver, isso deveria ser o carro chefe de qualquer projeto.
Não estou dizendo aqui que todos os times/empresas agem desse modo e que ninguém pensa em performance, muito pelo contrário, o que eu percebo é um cenário que também inclui o quesito desempenho, mas, em grande parte das situações, é muito mais pensado pelo pessoal de desenvolvimento do que pelo time todo.
Obviamente, isso varia muito. Em startups, por exemplo, a performance é um quesito chave na hora de desenvolver uma aplicação/funcionalidade, mas no mercado de publicidade, em boa parte das vezes, não.
Seja por conta do prazo curto ou ainda pela necessidade de “inovação” que se faz presente, a questão de desempenho fica para trás e não, isso não significa que não se fale do assunto, o que eu quero dizer é que, boa parte das vezes, fica só no assunto mesmo.
Meu objetivo aqui é levantar alguns pontos que devem ao menos ser discutidos no inicio de um projeto web, ou seja, antes mesmo de pensarmos em codificar qualquer coisa.
Pelo amor de Deus largue o Go Horse
Desenvolvo web na área de publicidade e propaganda e quem trabalha nisso sabe o quanto as coisas são pensadas “pra ontem”. Parece que todo projeto já começa em atraso, todo cronograma é apertado, tudo é dinâmico (urgente).
E tenho certeza que esse tipo de comportamento não é exclusivo da área de propaganda/publicidade, dependendo da forma como time gerencia os projetos, tudo tende a ficar corrido demais, apertado demais e isso com certeza impacta na qualidade do produto.
Performance, acessibilidade, usabilidade, design, manutenibilidade e outros itens são pontos que definem o sucesso ou não de um produto, seja lá qual for, desde o pequeno site da loja do José, até um grande aplicativo web que lava sua roupa através de IoT.
Quanto menor o prazo para desenvolver algo, pior ele tende a ficar, simples assim. Parece obvio? Nem tanto, as vezes sinto que performance web é mais um dos tantos hypes que existem por aí.
Performance é UX e logo, a ultima moda é falar sobre sobre melhores resultados através da implementação de conceitos de UX. Então performance, conceitos de acessibilidade e outros fatores estão presentes.
Tudo é muito bonito em teoria, mas se não houver um prazo sensato para que isso seja desenvolvido, o produto final ficará ruim. Ponto.
#gifAcessivel: Um gif de uma mulher falando em inglês, Oh, isso é ruim. Eu não deveria ter feito isso.
Você quer o seu nome ou o nome da sua empresa atrelado a um produto ruim? Eu acho que não, certo? E é exatamente por isso que devemos lutar por uma mudança de cultura.
Pode parecer obvio e pode parecer até redundante, mas na prática, o que acontece é algo completamente diferente. Os produtos precisam sempre ser inovadores, porém, o prazo para desenvolvimento é sempre apertado, curto, pra ontem. Por que? Porque o cliente precisa, porque sempre foi assim, por isso, por aquilo.
É sempre mais fácil se manter na zona de conforto, não se expor, evitar se passar pelo vilão do que, de fato, implementar uma mudança que seja mais eficiente e saudável pra todo mundo. Ela pode ser mais custosa e demorada no começo, mas a longo prazo se torna mais barata e eficiente.
Se o prazo é sensato o suficiente pra incluir todos os pontos chave para um desenvolvimento saudável e performático, o nível de estresse por conta dos problemas oriundos de um desenvolvimento ruim some ou pelo menos diminui, e muito!
Se o costume é desenvolver um site ou app a la Go Horse, a tendência é de que isso se repita mais e mais vezes. No final, tudo mundo ficará sobrecarregado correndo atrás dos erros e da dificuldade de manter o código por conta de um desenvolvimento ruim.
Sei que muitas vezes o cenário ideal é algo bem distante da realidade, mas é necessário que exista bom senso, se determinada coisa demora X tempo para ser bem desenvolvido, então esse X tempo tem de ser preservado. E se isso não for possível, que o prazo fique o mais próximo possível disso. Boa parte das vezes, a questão de prazo apertado, nem é por uma necessidade estratégica, é só pela “pressa” de ter o produto lançado.
Entendo que existam urgências, elas existem e não temos como fugir delas, porém, nem todo projeto precisa ser assim e se a gente sempre abaixar a cabeça pra esse tipo de coisa, teremos que trabalhar muito mais para entregar algo que não ficará tão bom no final. Precisamos nos opor quando necessário.
Existem metodologias e formas de se trabalhar e organizar um projeto que ajuda a acelerar o desenvolvimento dele. Design sprint é um bom exemplo disso, mas quero enaltecer dois ponto aqui.
Nenhuma metodologia faz milagre, desenvolver um bom software, site, app, seja lá o que for, leva tempo, sim. As vezes mais, as vezes menos, mas nada que é bem feito sai de um dia para o outro.
Essas metodologias que ajudam a encurtar o prazo de desenvolvimento são pensadas para tornar o trabalho mais eficiente e não necessariamente mais rápido.
Então, resumidamente quero dizer que devemos começar a levantar a mão e ter coragem suficiente para se opor a prazos e formas absurdas de se trabalhar. Sei que tudo que eu disse pode parecer óbvio ou redundante de mais, mas isso ainda acontece e acontece em diversas áreas do mercado.
Então é isso, nessa primeira parte decidi dar uma visão geral de alguns aspectos que acho que são importante para um desenvolvimento saudável.
Mas calma, não acabou, não. Farei uma segunda parte para falar de outros aspectos que eu considero tão importante quanto os que estão nesta primeira parte.
Aproveite e comente o que achou, vamos debater juntos esse assunto, que tal?