Livros

Caindo na Real, um livro que exalta a simplicidade no desenvolvimento web

15 Jul 2022

Acho que muita gente entrou no mundo da programação com aquela vontade de colocar em prática uma ideia para rivalizar com algum grande produto do mercado, porque, sabe como é, a nossa ideia seria "diferente", teria coisas a mais que os outros ainda não tinham pensado ainda.

Esse modo de enxergar o desenvolvimento de software vai se esvaindo quando você percebe o quão complexo é desenvolver, quantas horas você precisa  dedicar para colocar um botãozinho que vai fazer uma simples ação. Então você, meio que de forma resignada, se contenta com a ideia da "simplicidade". Fazer o que, né? Não temos o orçamento das big techs.

Um livro curto e simples, como seus ensinamentos.

Mas o livro Getting Real, da empresa Basecamp, vem para nos dizer que a simplicidade não é apenas a melhor escolha por motivos financeiros, e sim porque é a melhor, mais fácil e mais inteligente forma de desenvolver aplicações web.

E eles têm como exemplo as próprias aplicações da empresa, que atualmente são duas: a Basecamp que é uma ferramenta para gerenciar trabalho remoto, e o Hey, que é... olha só, um serviço de e-mail, o serviço mais clichê do mundo. Então eles tentam competir não oferecendo um Gmail Turbo com Lasers, e sim um e-mail simples, mas que faz o básico melhor do que os concorrentes.

Estes são alguns dos ensinamentos do livro, que está disponível para ser lido gratuitamente online.

1. Não tente vencer seu concorrente fazendo mais do que ele. Isso só vai levar a um escalonamento que é impossível de vencer. Escolha um caminho para fazer pouco de forma eficiente. Será melhor do que aquele que tenta fazer tudo mal feito.

2. Adote a postura de menos! Menos reuniões, menos funcionalidades novas, menos pessoas, menos estrutura, menos promessas. Seja um pão-duro nesse sentido, seja uma pessoa que sabe dizer não, mas não sem motivos. É uma postura quase científica: busque todos os motivos pelos quais essa não é uma boa ideia. Se ela sobreviver a esse bombardeio de ceticismo, aí sim adote.

3. Desenvolva software para você mesmo. Se você está tendo um problema, é capaz que muitas outras pessoas também vão estar passando por esse problema, com o bônus que você vai estar apaixonado pelo software que resolve o mesmo problema que você tem, e estar apaixonado pelo que você faz é o verdadeiro segredo.

4. Você precisa aprender a priorizar o que é importante, deixar as expectativas de acordo com a realidade (nada de criar um novo GTA no primeiro mês que estiver aprendendo Unity) e ser flexível, para que possa mudar quando for necessário (o real motivo do sucesso da seleção natural na biologia).

5. Tenha um inimigo. Essa daqui veio direto dos manuais de guerra. Quando você tem uma imagem clara do que você não quer ser, fica mais fácil definir o que você é. Como diria o Renato Russo: "acho que não sei quem sou, só sei do que não gosto". Foi assim que o DuckDuckGo conseguiu seu espaço ao competir com o gigante Google, ele definiu que seria um buscador que não seria “malvado” como o Google com os seus dados.

6. Essa daqui é uma lição que veio da Física: mantenha-se leve. O grande diferencial para sobreviver ao caos que é a competição no mundo do desenvolvimento é ter a capacidade de mudar de direção. A Bluckbuster, por exemplo, era uma empresa tão grande e massiva que quando viram a realidade do streaming não deu tempo de virar o caminho que estavam seguindo. A Netflix ocupou o lugar e hoje tenta se manter leve para poder fazer viradas bruscas quando for necessário, e talvez estamos vivendo o momento de saber se a filosofia dela realmente se manteve depois de todos esses anos e se vai funcionar na sua maior crise até então.

7. No início do seu aplicativo, comece com três pessoas: um desenvolvedor, um designer e alguém que consegue navegar entre esses dois mundos. Eu trocaria esse conselho para adicionar uma pessoa do marketing, já que hoje em dia metade do trabalho é saber vender o seu peixe.

8. Não tenha medo das limitações. Isso não é uma coisa ruim. Abrace isso como algo que vai te guiar à inovações e a ter um foco bem definido. Uma coisa que acontece com grandes empresas de sucesso é que com tanto dinheiro disponível elas tentam resolver outros problemas além do foco inicial, o que acaba gerando demissões em massa em momentos de crise.

9. Se diferencie das grandes corporações sendo mais pessoal e amigável. Essa daqui todos nós aprendemos com o Nubank, né? Ser menor te permite ficar mais perto dos seus clientes, aproveite isso.

10. Um problema só vai ser um problema quando for um problema. Isso quer dizer que aquela ideia de lançar um monte funcionalidades antes do tempo não deve ser realizada. Se os consumidores sentirem a necessidade de uma nova função, eles vão te dizer. Aí sim você pode colocar a mão na massa. Aqui mesmo neste blog estou sentindo isso: duas pessoas já me pediram um RSS, então é por essa funcionalidade que vou começar a expandir o projeto.

11. Faça softwares com opinião. Essa daqui veio diretamente do Ruby on Rails, que surgiu com a Basecamp e conduz esse blog. O Rails se orgulha de ser um framework de desenvolvimento que privilegia as convenções, que toma decisões por você. Os melhores softwares toma lados, tem visões. A Apple toma isso como uma filosofia. Ao contrário da liberdade das concorrentes, ela coloca uma corrente e diz que esse é o modo correto de usar, o que acaba justamente sendo o seu diferencial.

12. Teste seu aplicativo no mundo real. Claro, tenha sua biblioteca de testes, mas não existe substituto para pessoais reais gerando dados reais e feedback de verdade. Eu acredito muito nisso, por isso sempre tento criar projetos que vão ser usados nem que seja por 5 pessoas reais ao meu redor. Os feedbacks e as lições aprendidas dessa forma são muito valiosas.

13. As pessoas precisam de tempo sozinhas sem interrupção. Essa é uma lição que muitas empresas precisam aprender. O trabalho verdadeiro só vem com tempos de solidão e introspecção, principalmente se for um trabalho criativo. O Basecamp acredita no trabalho remoto e assíncrono, e pelo menos pra mim essa é a melhor forma. Mas para trabalhos tradicionais isso significa menos tempo em reuniões que poderiam ser um email e um ambiente silencioso. Me diz aí se isso é uma realidade em algum lugar?

14. Desenvolva a interface primeiro. Essa daqui me pegou, porque sempre fui fã de desenvolver primeiro toda a lógica interna, para assim partir para o design. Eles defendem que ter uma estrutura visual clara de como tudo vai funcionar no final guia o desenvolvimento para o que realmente importa. Daí lembrei das incontáveis vezes em que tempo foi desperdiçado com tarefas que resultaram em nada porque as pessoas não entenderam o que era  realmente necessário, e passei a gostar dessa filosofia.

Exitem inúmeras outras lições no livro, mas essas foram as que mais me despertaram a atenção. No geral, podemos definir tudo isso com uma palavra: minimalismo. Desenvolva menos, desenvolva melhor e desenvolva com prazer e felicidade. Esse é o segredo.

Receba atualizações por e-mail

Sempre que tiver novidades por aqui vou enviar aos inscritos.

Entre na conversa

Criei uma postagem lá no LinkedIn para receber comentários:

Comente