Lições da vida profissional de um desenvolvedor de software
Neste artigo, vou comentar e fazer uma profunda reflexão sobre várias coisas aleatórias que notei e aprendi ao longo de uma jornada de mais de 20 anos desenvolvendo software. A intenção é compartilhar um pouco de experiência especialmente para desenvolvedores de software.
Tudo muda
Desde que comecei a estudar Ciência da Computação, em 2003, muitas coisas mudaram, sejam em termos de processos, tecnologias, arquiteturas e infraestrutura.
As empresas por onde passei parecem ter percebido os processos envolvendo desenvolvimento de software de formas diferentes, e o manifesto ágil foi ganhando formas cada vez mais palpáveis. É bem provável que empresas de alguns ramos específicos ainda prefiram um processo de desenvolvimento em cascata, menos flexível, mas acredito que, assim como percebi um certo amadurecimento ou pelo menos uma compressão diferente por diferentes empresas, qualquer processo de desenvolvimento deve passar por situações parecidas, ainda que sejam processos escritos em pedra.
Muitas das ferramentas e linguagens de programação mudaram significativamente. O PHP — linguagem com que tive mais contato, por exemplo — teve um salto gigantesco da versão 4 para a 5, além de um boom no surgimento de frameworks; também teve um “escorregão” na versão 6, que acabou nem sendo lançada; teve diversas melhorias incrementais ao longo da versão 7; e hoje está na versão 8, com expressivas mudanças de performance. Porém, muito mais do que a linguagem em si, a infraestrutura para desenvolver sistemas web mudou bastante. Passou de servidores físicos dedicados para um conjunto de máquinas virtualizadas responsáveis por suprir serviços específicos, até chegarmos à atual fazenda de “aaS” (as a Service), como IaaS, PaaS, CaaS, FaaS, etc. Onde decidimos até que nível gostaríamos de quebrar os pedaços de um grande sistema para controlar melhor sua escalabilidade horizontal e facilitar a organização das camadas ou responsabilidades das diferentes partes.
A arquitetura das aplicações também mudou radicalmente. Passou de grandes monolitos a APIs de diferentes sabores (Soap, RPC, REST) até chegarmos a pequenas funções servidas num ambiente serverless. Paradigmas foram repensados e rediscutidos. Utilizar um ORM, por exemplo, passou de uma pergunta com resposta quase óbvia a uma pergunta contundente quando estamos lidando com o desenvolvimento de lambdas ou mesmo microsserviços.
No lado do Front-end, as coisas também se mantiveram em constante mudança: partiram de pequenas páginas estáticas; passaram a ser páginas dinâmicas geradas pelos servidores, num modelo clássico de request/response; foram pra um modelo mais híbrido, envolvendo Ajax para deixar algumas páginas um pouco mais dinâmicas; até chegarmos aos atuais SPA’s, ou ao mix de páginas servidas estaticamente com uma camada de SPA para agregar dinamismo. Não posso esquecer de mencionar a infinidade de frameworks de Front-end que aparecem a toda semana.
Isso tudo que comentei, foi só pra apontar uma das áreas de desenvolvimento de software, que é o desenvolvimento web. Mas, além dele, existem várias outras áreas que também devem ter passado por várias transformações, como a de desenvolvimento para dispositivos embarcados, desenvolvimento de aplicações desktop, desenvolvimento de jogos eletrônicos, desenvolvimento de ferramentas (bancos de dados, sistemas operacionais, drivers, frameworks, etc.).
A conclusão desta seção é a de que não basta ficar expert em algo e se acomodar, pois tudo na área de tecnologia muda e, quando menos se espera, já mudou. Não estou dizendo que você não deva se tornar expert em algo, até porque existem muitos conhecimentos de base que se permeiam ao longo do tempo e têm utilidade quase “infinita”. Quanto mais se acumula conhecimento e se vivencia, de fato, novos paradigmas, mais se ganha bagagem para poder fazer uma avaliação mais “filosófica” sobre as abordagens adotadas para cada problema e uma criticidade maior para avaliar cada linha de um código-fonte. Note que uma tecnologia que você nem usa mais, mas que conheceu bem no passado, é sempre bagagem para questionar abordagens das novas tecnologias.
Dica: aprenda muito bem pelo menos uma linguagem de programação, mas não se apaixone por ela ao ponto de não perceber a beleza e a utilidade das demais; procure se manter atualizado e, para isso, fique atento ao que tem feito dentro da sua empresa e às notícias sobre as tendências no ramo do desenvolvimento em que atua; se sentir que está muito tempo fazendo exatamente a mesma coisa, converse abertamente com seu gestor para entender o motivo da estagnação e, se preciso, procure outra empresa. Existem vários prós e contras de se ficar muito tempo numa mesma empresa, assim como vários prós e contras de se trocar muito frequentemente de empresa, portanto esta percepção você ganhará naturalmente, de acordo com seu perfil.
Quão longe você quer chegar? Em que prazo?
Antes de começar essa seção, vou compartilhar a citação do “Princípio de Peter”, que enuncia:
“Num sistema hierárquico, todo funcionário tende a ser promovido até ao seu nível de incompetência.”
— Laurence J. Peter
Se você nunca se perguntou quão longe deseja chegar profissionalmente e em que prazo espera que isso aconteça, recomendo fortemente que pare um momento e pense a respeito. Você pode até mudar de ideia ao longo da jornada, mas acredito que seja bastante útil ter sempre claro onde quer chegar e em que prazo. Isso ajudará a classificar e avaliar quais iniciativas vão efetivamente aproximá-lo deste objetivo num prazo razoável. Quando digo sobre estabelecer prazos, não quero dizer que você precisa condicionar sua felicidade ao cumprimento desses prazos, mas apenas sirva para nortear suas expectativas.
Para traçar esse plano, existem vários fatores que você pode levar em conta e é preciso ter claro que cada escolha implica em uma renúncia. Por exemplo, se você não tem o perfil de poupar parte do dinheiro que ganha e também não é um multi milionário que pode se dar ao luxo de trabalhar só porque quer, então precisa considerar que provavelmente terá uma longa jornada profissional, até que se aposente pelo INSS, como empregado CLT. Considerando que essa jornada será longa, existem alguns pontos para se pensar:
- Você está aberto a mudar de área em determinado momento de sua vida?
- Quer empreender (abrir um negócio próprio) em algum momento?
- Quer trabalhar fora do país?
- Quer aposentar por conta própria, antecipadamente, juntando um patrimonio bacana?
- Por quais cargos e níveis você pretende passar ao longo dessa jornada? O tempo que ficará em cada cargo está razoável?
- Como você imagina estar sua energia e motivação aos 50, 60,70 anos ou mais? Em que cargo? Será que esse cargo existirá até lá?
- Seu plano profissional está em conformidade com seu plano pessoal?
Ao longo de minha jornada como desenvolvedor web, vi muitas pessoas que subiram de nível muito cedo e isso acabou prejudicando-as, ainda que elas nem tenham percebido. Por isso, a dica desta seção é justamente para que faça uma reflexão profunda sobre estes questionamentos que levantei e avalie todos os cargos e níveis pelos quais gostaria de passar até a idade com que gostaria de se aposentar. Pense se faz sentido você sair de um nível júnior para especialista ou gestor em uns 6 anos. Depois disso, quais cargos estarão disponíveis? Faz sentido você continuar com este cargo por mais vinte e poucos anos?
Enfim, pode ser um pouco difícil traçar um plano macro como este num momento da história em que a evolução tecnológica causa tantas transformações no modo de vida e na sociedade como um todo. Porém, dar a devida atenção a esse questionamento enquanto se é jovem pode ser o fator decisivo para que não se chegue à velhice e sinta que a vida (pessoal e profissional) pudesse ter sido muito melhor ou diferente. Talvez não exista nada melhor na vida do que a sensação de estar totalmente em conformidade com seus valores, consciente de sua posição e escolhas, sem hipocrisias consigo mesmo.
O que é a vida profissional?
A pergunta desta seção é bastante ampla, mas se eu pudesse resumir o que eu acho que seja a vida profissional, eu diria que é uma alternância entre “alinhamento de expectativas” com “realização de atividades que agregam valor”, sendo regados com “pitadas de motivação”.
Realizar as atividades que agregam valor é o fator mais óbvio: os profissionais realizam um trabalho para suprir uma necessidade. As pitadas de motivação são as interações que ocorrem para que os profissionais se sintam motivados a continuar realizando um bom trabalho, e podem partir de si próprios ou de outros profissionais. Já o alinhamento de expectativas é a atividade que considero mais importante na vida profissional. No final das contas, todo grande fracasso só é de fato um fracasso pois existia uma expectativa atrelada, seja ela de qualidade ou de prazo. Portanto, tão importante quanto saber realizar um bom trabalho é saber lidar corretamente com o alinhamento das expectativas de diferentes frentes, que requer uma percepção aprimorada da relevância da comunicação e suas nuances.
Existem situações em que profissionais não deixam explícitas suas expectativas e acabam se frustrando pelo não atingimento dos objetivos. Eventualmente, podem ser situações que sequer fazem sentido serem expostas por se tratarem de algo “óbvio”, porém, é preciso sempre ter muito cuidado com o conceito de óbvio em qualquer âmbito (pessoal ou profissional). Na dúvida, é melhor deixar explícitas suas expectativas, mas também é bom saber elencá-las.
Alinhar expectativas demanda humildade e honestidade. É preciso humildade pra reconhecer as próprias limitações e também honestidade para dizer certas verdades no momento adequado. Quanto maior o esforço para se alcançar algo, maior tende a ser a frustração pelo não atingimento das expectativas e, consequentemente, os impactos desta frustração podem ser mais severas.
Ninguém nasce sabendo tudo, portanto é (ou pelo menos deveria ser) totalmente compreensível que um profissional demande algum tempo para amadurecer certas habilidades para alcançar certas expectativas. E, com relação a prazos (expectativas de tempo), é preciso ter maturidade para reconhecer que cada pessoa possui características próprias e também possui um tempo próprio de amadurecimento profissional.
Também é preciso atenção para entender corretamente o que é esperado de você, especialmente seu gestor direto. Se não está claro, pergunte. Não me parecem existir motivos para considerar esta pergunta abusiva, desnecessária ou desqualificadora.
Além disso, é preciso estar atento à forma como você é visto pelos demais profissionais com quem trabalha.
“A mulher de César não basta ser honesta, deve parecer honesta”.
— provérbio que representa o pensamento de Júlio César
Além de alinhar bem expectativas, é preciso atenção como os demais profissionais estão percebendo a realização do seu trabalho. Sua percepção da “verdade” pode estar um pouco equivocada ou ofuscada por outros fatores que você ainda sequer sabe da existência, portanto é importante sempre pedir e dar feedbacks honestos sobre posturas profissionais e trabalhos realizados. Caso você acredite que as pessoas estão percebendo seu trabalho da forma errada, lembre-se que, por mais que você esteja certo, ainda assim existe algum fator que precisa ser ajustado para que a percepção do seu trabalho se aproxime daquilo que você esperava que fosse percebido. Ou seja, falta um alinhamento de expectativas mais acurado e isso remete à citação de William H. Whyte, que diz:
“O único grande problema da comunicação é a ilusão de que ela aconteceu”
— William H. Whyte
Ou seja, não basta se comunicar, mas é preciso identificar que a mensagem foi corretamente recebida pelo receptor.
A vida profissional é praticamente uma vida paralela que normalmente dura muitos anos e possui vários aprendizados, já que trata da interação de pessoas que normalmente não escolheram trabalhar juntas, mas, por força do destino, o fazem. Portanto, assim como na vida pessoal, pode ser bastante útil fazer um bom planejamento e procurar aprimorar as relações políticas, comunicação e habilidades técnicas para se atingir os melhores resultados.
Por fim, mas não menos importante, a principal dica profissional para qualquer profissão é: seja respeitoso. As pessoas são diferentes umas das outras, aceite isso por bem ou acabará aceitando por mal. Pessoas viveram e vivem histórias surpreendentes, e cada uma sabe os desafios pelos quais precisam passar um dia de cada vez. Ser respeitoso é ter a sabedoria de entender que profissionais também têm vida pessoal e podem estar passando por momentos terríveis, que vão além de suas escolhas, mas ainda assim dependem do emprego para suprir as necessidades familiares ou mesmo pessoais. Ao mesmo passo que se precisa ser respeitoso com os colegas, também seja honesto em explicar o quanto sua vida pessoal pode estar afetando sua vida profissional. Não há necessidade de expor detalhes pessoais para informar que se está passando por um momento delicado. Especialmente no mercado de desenvolvimento de software, em que a demanda por profissionais está tão alta, se você tem medo de debater o equilíbrio entre sua vida pessoal e profissional com seu gestor direto por medo de repreensão, então foque em se desenvolver e procure uma outra empresa para trabalhar, pois, acredite, elas existem.
TL;DR
Ok, este artigo ficou bastante extenso e talvez você não esteja com todo o tempo do mundo, então resolvi deixar um breve resumo do que pensei ser mais importante sobre tudo isso:
- Se você é desenvolvedor de software, aprenda uma linguagem, mas não se apaixone por ela. Esteja, no mínimo, atento às outras.
- Lembre-se que a tecnologia sempre muda e continuará mudando, então esteja constantemente preparado para tais mudanças, pois quem sobrevive não é o mais forte, mas o que consegue se adaptar melhor.
- Todo conhecimento aprendido e exercitado em algum momento da vida profissional ou pessoal poderão ser úteis no futuro. Não há necessidade de se desprezar um conhecimento que já não é mais aplicado em prática.
- Respeite seu próprio tempo de amadurecimento e colha feedbacks honestos e constantes pra ajustar suas expectativas pessoais.
- Planeje sua trajetória profissional considerando planos pessoais, planejamento financeiro e expectativas de aposentadoria. Vivemos num mundo capitalista e, ainda que você seja contrário a este modelo, precisa ser capaz de se adaptar a ele ou de modificá-lo (dica: a primeira opção normalmente é mais fácil).
- A vida profissional requer um delicado jogo de alinhamento de expectativas, que eventualmente podem ser delicadas e políticas, mas preferivelmente precisam ser humildes e honestas.
- Seja respeitoso e honesto. Cada pessoa é única e o esforço do conjunto de pessoas únicas é que dá a cara de uma empresa. Respeite o próximo e também seja honesto ao equilibrar sua vida pessoal e profissional.