6 lições para você quebrar o círculo vicioso do mercado de TI e recuperar o prazer de programar

0

Você ainda se lembra da sensação boa que tinha quando começou a programar? Você se recorda daquela expectativa de que seu trabalho ia ajudar várias pessoas e te dar mais autonomia e liberdade? Onde isso tudo foi parar?

Infelizmente, vejo que o mercado de TI está perdendo a conexão com o valor que deveria gerar. O mindset de resolver problemas foi substituído por um modelo que só foca na escala. O objetivo é entregar o máximo de features.

Com isso, nós, programadores, nos transformamos em meros executores de demandas. Toda a criatividade e raciocínio analítico que deveria ser parte essencial da criação de softwares fica em segundo plano – ou é totalmente ignorado.

O resultado é que, a cada dia que passa, acumulamos horas extras para entregar códigos que não fazem nem um sentido para os usuários. É um círculo vicioso de insatisfação, perda de qualidade de vida e desperdício de dinheiro. Parece que chegamos a uma estrada sem saída.

Eu já passei por tudo isso e sei como é frustrante, mas – felizmente – encontrei a luz no fim do túnel e consegui reprogramar minha carreira. Recuperei o entusiasmo e a alegria de programar, ao mesmo tempo em que me conectei com uma comunidade incrível.

Neste artigo, quero compartilhar com você o caminho que eu percorri e cinco grandes lições que me ajudaram a ampliar minha autonomia e a desenhar minha vida da forma como eu desejo. No final, também quero te fazer um convite especial.

Eficácia vs Eficiência

O mindset predominante no desenvolvimento de software é o da produção em escala que importamos da indústria e da engenharia. O foco está em produzir muita coisa com muita velocidade. É o mindset da eficiência.

Todas as dores e frustrações que ocorrem no mercado de software se devem à incompatibilidade com este modelo.

Eu compreendi na minha jornada que tempo e eficácia são mais importantes do que volume e eficiência.

Se você está no caminho errado, andar mais rápido só vai te deixar mais longe ainda do seu objetivo. De nada adianta entregar um caminhão de funcionalidades, se o cliente não for usar nem 5% delas. Esse modelo é um verdadeiro ralo de dinheiro e saúde mental.

O fundamental não é fazer muitas coisas, mas sim fazer a coisa certa no menor tempo possível. Para isso, a melhor estratégia são os baby steps. Aqui vale o velho ditado popular de que um boi se come em bifes.

À medida que você faz entregas constantes para o seu cliente, você consegue gerenciar e adequar as expectativas. Em vez de levar meses para entregar uma nova versão cheia de coisas, a gente passa e entregar melhorias no software todos os dias.

Quanto mais curto for o seu ciclo de feedback, mais forte será sua conexão com o valor. Já quanto mais longo for o ciclo, maior é o risco do seu projeto falhar.

Lembre-se: seu código só tem valor quando é utilizado por alguém.

Seu software vive

Eu enxergo o software como um organismo vivo em execução, servindo aos usuários e a sociedade. Ele não é um produto estático. Ele está em constante transformação.

Por isso, é preciso ter cuidado para matá-lo na hora de fazer uma atualização. Eu chamo este conceito de “Live Software”.

Pense em um organismo vivo. Assim que ele nasce, ele começa a crescer. Enquanto ele se desenvolve, é fundamental que todas as funções existentes permaneçam saudáveis.

Software é a mesma coisa. Enquanto ele evolui é preciso garantir que ele esteja íntegro, consistente e sustentável.

Pense nele como um filho.

Se você não cuidar e não der os recursos que ele precisa para se desenvolver de forma saudável, ele irá sofrer no futuro. Quando percebi isso, adotei três estratégias para me ajudar. Isso nos leva aos próximos tópicos.

Desenvolvedor de cozinha

Quando vemos o trabalho dos chefs de cozinha, não enxergamos uma parte essencial. Quando vão preparar uma receita, eles já estão com todos os ingredientes e ferramentas em mãos.

As facas estão amoladas, panelas separadas, os ingredientes descascados, cortados e organizados em potes já nas quantidades certas. Tudo feito para que eles possam dedicar sua atenção exclusivamente ao preparo do prato.

É uma etapa sem muito glamour, mas é fundamental! É esse setup que vai definir se eles vão conseguir se dedicar integralmente ao preparo do prato.

O mesmo modelo vale para programadores. O setup é fundamental. Tudo precisa estar ao alcance de apenas um comando. Não faz sentido ter que parar tudo sempre que uma pessoa nova entra no time, por exemplo.

Programando como um chef de cozinha, você reduz os delays no seu trabalho. Com isso, pode se dedicar integralmente em gerar valor para o seu cliente.

Você nunca vai ser melhor que o computador nisso

Você sempre será mais eficaz que um computador na hora de pensar em soluções criativas para problemas, mas nunca conseguirá ser mais rápido que máquina na execução de tarefas repetitivas.

Por isso, entendi que – em vez de ficar dando murro em ponta de faca – o melhor a se fazer é usar o poder da automação para ganhar velocidade e pode focar no que realmente importa.

A automação liberta o trabalhador da necessidade de continuamente julgar se máquina está funcionando corretamente. Assim, você só esquenta a cabeça, quando a máquina alerta para um problema.

Este é o processo que integra a máquina ao ciclo de feedback, tornando todo o trabalho mais fluido e produtivo.

A navegação manual no sistema é importante para a criação do design de interação e a experiência do usuário. Mas uma vez definido o fluxo de uso, o teste precisa ser executado pelo computador sistematicamente.

Se não tá no ar, não tá pronto

Uma das maiores lições que aprendi na minha caminhada para um modelo de desenvolvimento eficaz é que se o cliente não pode usar o software, ele não está pronto. E não adianta espernear.

Para sairmos de um modelo viciado de programação, temos que acabar com a síndrome do “funciona na minha máquina”.

É fundamental que você conclua cada tarefa entregando o que foi desenvolvido para o cliente. Concluir uma tarefa também envolve o deploy da aplicação para que o cliente possa usá-la.

O importante não é o código que você criou, mas sim o que acontece depois que ele roda. E o cliente só vai saber se o seu software resolve o problema dele quando puder de fato utilizá-lo.

Além da programação

Se o que eu falei neste artigo fez sentido para você, tenho um convite especial para te fazer. No dia 23/04 eu vou liberar a primeira aula da série de vídeos: Desenvolva Softwares de Qualidade e no Prazo, nela eu vou aprofundar cada um dos pontos que tratei neste artigo.

Para acessá-lo, basta deixar seu e-mail aqui embaixo que te envio o vídeo no dia da publicação:

Lá eu falo mais sobre estratégias que vão te ajudar a recuperar o prazer de programar e a desenvolver sua autonomia para que você possa construir sua vida e sua carreira da forma que sempre sonhou.

Tenho certeza que você vai se amarrar. Te espero por lá!

 

você pode gostar também