Seja um desenvolvedor medíocre

image_pdfimage_print

desenvolvedor_mediocre

* Escrito por Leonardo Kenji Shikida

É isto mesmo que você leu.

Seja um desenvolvedor medíocre.

Entenda, eu tenho que chamar sua atenção com uma frase de efeito que te deixe revoltado. Se você chegou aqui, é porque você provavelmente é desenvolvedor, ou talvez esteja pensando em se tornar um. Talvez você seja testador e vê seus colegas desenvolvedores subindo e quer subir também.

Ou talvez você tenha percebido que o mercado de TI, ao contrário de outras áreas, não está em recessão. Pelo contrário. Está sempre contratando, apesar de todas as dificuldades de mercado e etc.

OK. Você já percebeu que era uma armadilha, Bino. Do que se trata? Quero falar para você sobre o que faz um desenvolvedor não ser medíocre e o que faz.

É um longo texto. Prenda a respiração.

Ser um desenvolvedor medíocre é a coisa mais fácil do mundo. Basta se acomodar. Vou te poupar o papo da auto-ajuda e aquele blablabla sobre como imitar os hábitos das pessoas mega-eficientes. Ignore o blablabla. Concentre-se no mundo real.

Primeira coisa: desenvolvimento é uma área técnica. Fora raríssimos casos, desenvolvedores são pessoas que transformam procedimentos em ferramentas digitais. São minions. Operários. Não são como vendedores que são estrategistas e trazem lucros para a empresa. São substituíveis. Quase nenhum sistema é essencial o bastante que permita um desenvolvedor chantagear a própria empresa. Basta parar o sistema e colocar outro desenvolvedor, ou vários outros no lugar. Portanto, sim, você é medíocre porque é substituível. Mas quase todas as outras profissões também são. Médicos, advogados, há mundos de gente competente no mundo. A primeira coisa que o desenvolvedor precisa é colocar-se em seu lugar.

Segunda coisa: a tecnologia está sempre mudando. OK, em linhas gerais, com o tempo, você vai perceber que essas mudanças raramente significam grande diferença de produtividade. Os times de software continuam mais ou menos do mesmo tamanho. Sempre haverão mais ou menos processos. O ofício sempre será mais ou menos o mesmo. Boa parte dos benefícios das novas tecnologias raramente serão empregados. O problema continua sendo manter o código organizado, tomar decisões sábias de arquitetura, ter sorte, ajustar o que precisa ser ajustado rapidamente. Mas jamais você conseguirá absorver todas as mudanças. E elas não são tão relevantes assim. O que é valor pro cliente nem sempre é o que é valor para o desenvolvedor, e compreender o que é valor para seu chefe e o que é valor para você (mesmo que você seja seu chefe, seu cliente é quem manda no fim das contas) é o que vai fazer a maior diferença.

Terceira coisa: livros são importantes, sites, tutoriais, cookbooks, palestras, profiles do twitter, IDEs, processos, certificações, mestrado, doutorado, tudo é importante. Sobretudo, o conhecimento de fora da sua área é importante. O desejo e o prazer de aprender são importantes. Não precisa ser uma tara, um dia você vai ter mulher e filhos e simplesmente vai ter que sair do computador. Mas você precisa estar sempre lendo, conversando, trocando idéia, experimentando. Desenvolvedores não escrevem muito. Desenvolvedores REESCREVEM muito. Refatoram código. Experimentam novos caminhos. Erram e voltam atrás. Aprendem coisas novas. Desaprendem coisas velhas. Olham para o código que começou bonito e fazem facepalm quando percebem que tá tudo uma bagunça. Não existe exatamente um fim. Mas tudo ajuda.

Quarta coisa: não há o caminho certo. Um amigo meu dizia que ele se incomodava porque muita gente dizia o que não fazer mas ninguém dizia como fazer. É verdade, porque não há o jeito certo. Há coisas que funcionam melhor ou pior em algumas situações. Sua habilidade em convencer pessoas e implantar de forma que funcione é o que faz a diferença. Não adote cegamente nada do que tenha se prometido como solução milagrosa. No entanto, dê chances a elas. Experimente. Confronte o que agile, xp, scrum, waterfall, crystal clear, pomodoro, design patterns, micromanagement, sysops, integração contínua, kanban, yoga, karate, anarquia, punk rock, neoliberalismo tem a te oferecer. Só acredite no que você vir funcionando na sua frente. Ignore o papo de vendedor. Ignore que “foi baseado em estudo blablabla”. Nada substitui a experiência e o cérebro.

Quinta coisa: tente se ater aos seus princípios, saiba quando se livrar deles, saiba quando mudá-los. Trabalhe com a cabeça aberta. “O problema do mundo é que todos tem suas razões”. (alguma atriz das antigas disse isso, não sei quem). Fique atento à sua empresa. Entenda o que vale e o que não vale lá dentro. Converse com outras pessoas de confiança, com pessoas inteligentes. Converse especialmente com pessoas que não sejam de TI. Traduza seus problemas para o mundo delas. Biólogos, jornalistas, médicos, advogados, músicos. Todos acrescentam algo da experiência delas que você pode aplicar ao seu trabalho. Todos te convidam a olhar a coisa de outra forma. Um economista amigo do meu irmão, certa vez, ficou surpreso em saber dos design patterns de TI, visto que o curso de economia incentiva os alunos a buscarem a solução eles próprios antes de mostrar a “solução de facto”. Quantos computeiros que você conhece questionam design patterns e quantos aceitam o livro do GoF como tábuas que Moisés trouxe da montanha?

Sexta coisa: conhece a ti mesmo. Entenda o que te motiva. O que você quer fazer. O que você gosta de fazer. Não seja estúpido pensando apenas no “eu quero ser rico como um deputado” (assim fosse, vc deveria ser político e não desenvolvedor). Não tem problema gostar de uma tecnologia ou outra. O único problema é você se isolar do mercado e ficar vulnerável. Proteja-se. Não deixe que peguem você. Sempre olhando coisas novas. Inclusive fora da TI. Sua felicidade muitas vezes está fora da TI.

Estufe o peito.

Eu sou um desenvolvedor medíocre. 

Conheço caras simplesmente brilhantes. Resolvem problemas complexos num estalo, digitam à velocidade da luz. Concluem projetos inteiros num fim de semana. Estão sempre desafiando mentalmente outros desenvolvedores. Escrevem artigos e artigos no stackoverflow. Eu não sou assim. Eu cozinho código. Vou adicionando coisas na água quente, vou mexendo, coloco uma pitada de uma coisa, depois de outra. Jogo tudo fora, começo de novo, experimento. Testo uma coisa aqui e outra ali. Me arrependo. Software para mim é jardinagem. Não termina nunca. Meu código não é brilhante, mas é melhor que de muita gente. Tem melhorado em alguns aspectos e piorado em outros. Mas está tudo bem. Não deixe a ansiedade te vencer. Sempre haverá gente melhor que você, mas não significa que você não possa trilhar um caminho de respeito. As pessoas que você conhece, sua reputação é mais importante que qualquer outra coisa. Todos entendem que alguns projetos dão certo e outros não. Experiência ninguém te tira.

Seja um desenvolvedor medíocre, mas não seja um desenvolvedor ruim.

O desenvolvedor ruim não é o cara que escreve código mal. Código ruim é relativamente fácil de consertar porque você pode ensinar uma coisa ou outra no caminho (e aprender também). O desenvolvedor ruim é uma questão de atitude. É não se importar com os colegas ou o projeto. É ser imaturo. É faltar com o respeito ou criar um clima negativo (que é diferente de ser crítico, ser crítico é bom). O desenvolvedor ruim não tenta resolver problemas para os quais ele não foi chamado. Ele acha que está incomodando ou não se importa. Ele não é curioso. Ele não pensa no outro. Mas se você chegou aqui, certamente você não é o desenvolvedor ruim. Desenvolvedores ruins não tem paciência para ler até aqui.

Eu acho que o ouro está nos desenvolvedores medíocres. Os bons desenvolvedores acabam deixando de desenvolver e vão galgando degraus acima, se afastam do desenvolvimento e se tornam peças responsáveis pelo contato com o cliente. São os arquitetos, os gerentes, os donos de empresas. Eles acabam tendo que delegar. É difícil segurá-los, é difícil pagá-los, é difícil agradá-los.

Os medíocres não. Estes gostam do que fazem. Podem até virar gerentes ou qualquer outra coisa, mas sempre estarão ali nas trincheiras. Estimular estas pessoas e fazê-las trabalharem felizes e de forma produtiva é o ouro da empresa. É onde a coisa acontece. É onde as pessoas crescem. Poucas empresas sabem oferecer isso aos desenvolvedores medíocres.

Mas isso é compreensível. A maior parte das empresas não consegue obter gerentes medíocres, diretores medíocres. Só conseguem pagar pelos ruins mesmo.

Disclaimer – Leonardo Kenji is a Systems Analyst and Java Senior Developer (The postings on this site are my own and don’t necessarily represent IBM’s positions, strategies or opinions)

Fonte: BLOG “CADERNO DO LÉO”