Voltar ao blog
Carreira

Eu gosto de software sem frescura

v
Vinícius Silveira
23 de agosto de 20264 min
Capa do post Eu gosto de software sem frescura

Outro dia me perguntaram por que eu costumo defender soluções mais simples.

A pergunta fazia sentido.

Quem trabalha com tecnologia convive o tempo todo com ferramentas novas, arquiteturas diferentes e ideias que prometem resolver praticamente todos os problemas que existem. É difícil não ficar curioso. E eu fico. Gosto de aprender coisas novas, de experimentar ferramentas diferentes e acho que isso faz parte da profissão.

Mas, curiosamente, quanto mais tempo passo desenvolvendo software, menos vontade tenho de complicar as coisas.

Não porque software simples seja mais fácil. Na verdade, muitas vezes acontece justamente o contrário.

O motivo é outro.

Software simples costuma durar mais.

Nem toda complexidade é um problema

Existe uma diferença que demorei para entender.

Todo sistema cresce. Todo produto acumula regras. Todo negócio fica mais complexo com o tempo. Essa complexidade é inevitável.

O que nem sempre é inevitável é a complexidade que nós mesmos colocamos no caminho.

Às vezes ela aparece em uma abstração criada cedo demais. Outras vezes, em uma arquitetura preparada para um problema que talvez nunca exista. Ou em uma dependência adotada porque estava em alta, não porque fazia sentido para aquele contexto.

No papel, tudo parece uma boa ideia. Na prática, quase sempre alguém vai precisar manter aquilo depois.

Foi aí que percebi que boa parte da complexidade que enfrentamos não vem do negócio. Ela nasce das decisões que nós mesmos tomamos tentando antecipar um futuro que talvez nunca chegue.

A pergunta que mais faço hoje

Percebi que minha forma de tomar decisões também mudou.

Antes eu perguntava qual era a melhor solução.

Hoje, quase sempre me pego fazendo outra pergunta: qual é a solução mais fácil de entender daqui a um ano?

Ela talvez seja menos empolgante, mas costuma produzir sistemas melhores.

Porque software não é escrito apenas para funcionar. Ele também precisa continuar fazendo sentido quando outra pessoa abrir aquele projeto meses depois, sem conhecer o contexto em que aquelas decisões foram tomadas.

Sem frescura

Quando digo que gosto de software sem frescura, não estou falando de fazer tudo do jeito mais simples possível.

Existem problemas difíceis. Existem arquiteturas complexas. Existem decisões que realmente exigem bastante engenharia.

O que tento evitar é a complexidade que existe apenas para parecer sofisticada.

Gosto de projetos em que um desenvolvedor novo consegue entender a estrutura sem precisar de um mapa. Gosto de nomes que dizem exatamente o que fazem. Gosto de documentação que responde perguntas em vez de criar outras. Gosto de deploys previsíveis. Gosto de ferramentas que resolvem um problema sem criar três novos.

Talvez isso não seja a definição mais bonita de engenharia.

Mas, para mim, é uma das mais úteis.

O tempo muda a régua

Já ouvi essa frase algumas vezes. E cada vez ela me diz mais.

"Nossa, esse projeto é muito organizado."

Confesso que ela me deixa mais feliz do que qualquer elogio sobre uma arquitetura sofisticada.

Organização raramente acontece por acaso. Ela é consequência de pequenas decisões tomadas ao longo do caminho. Decisões que quase nunca aparecem em apresentações, mas que fazem diferença todos os dias para quem trabalha no projeto.

Talvez seja por isso que hoje eu admiro muito mais um projeto fácil de entender do que um projeto difícil de explicar.

Hoje continuo gostando de tecnologia. Continuo estudando. Continuo curioso.

Mas não preciso usar uma ferramenta nova só porque ela acabou de aparecer.

Prefiro gastar minha energia construindo software que outras pessoas consigam entender. Que seja previsível. Que sobreviva ao tempo.

Acho que software bom não é aquele que faz outro desenvolvedor dizer "que arquitetura incrível".

É aquele que faz alguém abrir o projeto pela primeira vez, navegar por alguns minutos e pensar apenas: "Entendi."

Para mim, isso nunca foi falta de sofisticação.

Sempre foi sinal de cuidado.

Gostou do artigo? Compartilhe!

v

Vinícius Silveira

Tech Lead que acredita que software bom começa com gente bem cuidada. Eu não construo só software.