Existe vida, e muita, além dos seus for / if e else!

Nos meus últimos dois anos profissionais, vivenciei uma experiência, no mínimo, muito interessante: saí do desenvolvimento para atuar na área comercial. Fui desempenhar o papel de pré-venda tentando fazer o meio de campo entre demandas dos clientes, nosso time de novos negócios e nosso time de desenvolvimento.

“Bacana, Lulão… e por que você tá nos contando isso?”

Porque uma das coisas mais fantásticas que aconteceu, nesse período, foi eu conseguir enxergar, e principalmente, vivenciar que existe muita coisa no desenvolvimento de um software além da programação. E isso é incrível!

Durante esses dois anos, eu me envolvi em atividades comerciais, preocupações administrativas e financeiras, assuntos do marketing, assuntos do RH e por aí vai. Assuntos geralmente colocados como menos importante ou, então, como assuntos de áreas de apoio. Eu prefiro chamar de assuntos, ou áreas, de sustentação. Apesar de serem sinônimos, a palavra sustentação me traz uma imagem muito mais forte, indispensável para algo se manter.

Essa vivência, alimentada por leituras como um post do Elemar e um pedaço de um post do Akita, começaram a me fazer questionar sobre como costumamos definir a senioridade de uma pessoa. Ah, e também como as pessoas costumam enxergar a sua senioridade. Pelas minhas observações, o mercado anda extremamente inflacionado com relação à senioridade. E quando eu falo senioridade, eu não estou falando somente de sênior: estou falando também de júnior e pleno.

Minha impressão é de que hoje existe um misto de um tempo de experiência, curtíssimo por sinal, que determina a senioridade de uma pessoa bem como se sua atuação, em um único projeto, foi boa isso, automaticamente, aumenta sua senioridade. Esquisito, não é?! Pois é. Talvez seja uma questão de geração… Talvez, e eu acredito mais nisso, seja em função de uma visão míope da realidade!

Nós, desenvolvedores de software, somos criados dentro de um cenário egocêntrico onde o único critério importante é o saber programar. E, muitas vezes, uma única linguagem. Em um único contexto. Isso, talvez, faça de você um bom programador. Mas não um bom desenvolvedor. Talvez você seja um programador java sênior. Isso, porém, não faz de você, automaticamente, um desenvolvedor sênior.

“Uai, Lulão… se é assim, o que é um desenvolvedor sênior para você?”

Não existe um critério único e objetivo com o qual eu possa me explicar para você. Mas uma série de características e habilidades que colaboram para que você melhore sua senioridade. O tempo influencia? Sim! O conhecimento de programação ou de uma linguagem? Também. Talvez muito menos do que você imagina. Mas influencia sim…

Da mesma forma, eu acho que influencia sim como você lida com seus clientes, seja no relacionamento propriamente dito, seja na gestão de suas expectativas. Influencia em como você entende as demandas do seu cliente e em como você entende do negócio do seu cliente. E como você cobra seu cliente? Também! E como você, e sua empresa ou a empresa que você trabalha, se expõe no mercado? Também! E como funciona o processo seletivo? Também! E como se testa uma solução? Também! E como você contrata novos integrantes para o time? Também! E como você apresenta seus resultados para seus clientes, para o mercado? Também? E como eu conquisto um novo cliente? Também!

Do surgimento de uma demanda, seu entendimento e apresentação de uma proposta para viabilização até a entrega efetiva da implementação da solução, e principalmente sua manutenção / evolução e sustentação em produção, a programação é apenas uma parte de todo esse ciclo de vida.

“Lulão, você tá escrevendo isso pra dizer que você é mais sênior que eu por ter vivenciado toda essa realidade extra-programação?”

Não! Eu estou dizendo que, após essa vivência, eu descobri que desenvolvimento de software vai além, e muito além, de fors / ifs / elses. E que se eu quiser ser um desenvolvedor com uma boa senioridade, de verdade, eu tenho que entender, ou no mínimo saber o que se passa ao redor, de tudo aquilo que extrapola minha atuação, o mundo de bits e bytes.

Que fique claro que essa é a minha interpretação da vida e que você não precisa se ofender com ela. Aliás, você está mais do que convidado a comentar e expôr seu ponto de vista. Se você quiser continuar apenas programando e, achando que todo “o resto” é um mero apoio, você pode continuar assim. Só vai fazer mais sentido você se sentir um bom programador. Ou até mesmo um programador foda. Mas estará longe de ser um desenvolvedor com uma alta senioridade!

PS: Edição feita após a publicação original. Minha análise é feita com base em minha vivência (resumida ao mercado brasileiro, mais especificamente no estado de São Paulo principalmente no eixo Campinas – São Paulo) e está longe de ser considerada a verdade absoluta e incontestável de uma situação.

Anúncios

6 ideias sobre “Existe vida, e muita, além dos seus for / if e else!

  1. André Valenti

    Olá, Lulão!

    Eu achei muito legal o que você escreveu. Mas fiquei muito curioso… Pareceu que estava chegando a parte em que você iria contar um pouco dessa sua experiência, mas aí acabou o texto!

    Dificilmente terei contato com a área comercial de uma empresa, agora que estou dando aulas, ou seja, estando mais longe do ambiente empresarial. É uma experiência que eu gostaria de ter. Também acredito que mudaria muito minha visão sobre a coisa toda (assim como a de professor também tem mudado). Então, que tal compartilhar conosco como foram algumas das suas experiências? Senti falta de ler algumas conclusões a que você chegou… Ou, pelo menos, algumas vivências que você teve.

    []s!

    Resposta
  2. felipevolpone

    Achei animal o post cara! Compartilho da tua opinião e concordo com tudo. Ser um bom desenvolvedor vai além de conhecer e implementar bons algorítmos, é necessário conhecer outras tecnologias e outros meios de trabalhar.
    Ao meu ver faz pouco sentido, tomando o exemplo que você deu, um dev Sênior Java. Quero dizer, como pode alguém ser Sênior tendo domínio de apenas uma tecnologia? Acredito que um bom profissional deva conhecer back-end, front-end, saber discutir tecnologias e plataformas diferentes, entender do negócio do cliente e saber se comunicar com ele, mas sem necessáriamente ser mega-foda em todos os pontos. Esperar que o dev substitua o webdesigner é locura, mas seria interessante que os dois, juntos, consigam complementar sua funções e realizar um bom trabalho.
    Participar de demais áreas deveria fazer parte da carreira de todos os profissionais, uma vez que costumamos ter menos atenção à áreas que colaboram com o nosso trabalho diário; criando uma visão limitada e pobre.

    Resposta
  3. Ricardo S.

    Concordo muito com o que você disse… Durante muitos anos, desenvolvi um software para uma multinacional e enquanto desenvolvia este software, aprendi como funcionava o negócio do cliente. Algum tempo depois, este cliente precisou de contratar um profissional para trabalhar em uma destas áreas de apoio e mesmo tendo formação apenas em TI, fui convidado para assumir este desafio. Atuei durante cerca de dois anos em áreas de controle, gestão de projetos, contabilidade e economia. Hoje, meu conhecimento técnico é menor do que era há alguns anos, porém, a visão de processos e de negócio que eu obtive através desta experiência contribuiu muito para minhas atividades como analista de sistemas. Um analista de sistemas / desenvolvedor não deve se limitar a transformar as instruções de um cliente em código. O cliente, quase sempre, não sabe exatamente o que quer, muitas vezes não consegue ver como uma simples mudança no processo pode agregar valor ao seu produto/serviço e nem como a TI pode andar em conjunto com a estratégia da organização. Hoje, possuo menos conhecimento técnico (pois não consegui me atualizar enquanto tinha que estudar economia, contabilidade e outros), porém, me considero mais sênior, pois possuo mais visão de negócio e processos…. Essa é minha visão, que também está longe de ser uma verdade absoluta.

    Resposta
  4. leguimas Autor do post

    Olá, André Valenti, Felipe Volpone e Ricardo S.! Muito obrigado pelos comentários e contribuições de vocês.

    André Valenti, em especial, responderei com mais calma seu comentário em breve, ok? 🙂

    Resposta
  5. jerkolino

    Bacana, Lulão… mas é isso aí. Concordo que senioridade é muito mais que escovar bits em determinada linguagem, ou saber uns comandinhos ninja…

    Resposta
  6. vanessa

    Adorei o texto, Leandro!
    Compartilho da sua visão. Diferente dos colegas que comentaram já, eu sempre tive uma carreira bem diversificada. Como programação propriamente dita nunca me chamou muito a atenção, foquei em entender a lógica por trás da linguagem e entender melhor como o negócio deveria funcionar. Trabalhei já em várias áreas de apoio (RH, Administrativo, Gestão de TI, Suporte, etc) e posso dizer que isso me ajuda muito a entender melhor o problema do cliente e também a enxergar no problema atual similaridades com problemas anteriores.
    Isso, pra mim, complementa a senioridade do profissional. Ter essa visão mais ampla, conseguir aprender com as suas experiências, e enxergar a semelhança dos problemas atuais com os anteriores para sugerir soluções ao cliente. E não só isso! Essa habilidade de conectar as informações passadas com a atual pode ajudar o analista a fazer as perguntas certas e ajudar o projeto a fluir melhor.
    Uma coisa que eu vejo com cada vez mais frequência nos programadores é a falta de criticidade. Parece que estamos voltando para o caminho do “digitador de luxo” que só pega o “texto” do requisito e transforma em “código”.
    E nesse gancho, surge um tema para uma futura discussão que é o fato do mercado fazer forte associação entre a senioridade e o salário – o que acaba levando as pessoas a terem no cargo títulos como “junior”, “pleno” e “senior”….

    Resposta

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s