Artigo original: https://www.freecodecamp.org/news/what-the-heck-is-a-developer-advocate-87ab4faccfc4/

Versão resumida: é o melhor amigo do desenvolvedor!

Escrito por: Wassim Chegham

Nos últimos três anos, eu tenho dedicado meu tempo profissional e uma grande parte do meu tempo pessoal para ajudar outros desenvolvedores a serem bem-sucedidos e produtivos com as ferramentas que eles amam e usam. Essas ferramentas incluem plataformas da web, tais como JavaScript, PWA e Angular, Google Cloud Platform, Actions no Google e chatbots em geral. É isso que eu faço como um Developer Advocate.

Este artigo é baseado na minha experiência pessoal como Developer Advocate. Fala de coisas que aprendi pessoalmente, mas também do que aprendi com outros Developer Advocates e nas empresas com as quais eu trabalhei.

Minha história

Há treze anos, quando eu estava estudando eletrônica e depois ciência da computação na universidade, nos ensinaram toda a teoria de paradigmas da computação e programação, estruturas de dados, padrões de projetos, compiladores, linguagens e assim por diante. Basicamente, nos ensinaram tudo o que engenheiros de software júnior precisam saber para começar suas carreiras.

Entretanto, eu estava provavelmente muito interessado no curso, porque eu sempre fazia mais do que era pedido nos trabalhos de classe. O que quero dizer é que aprender Java na universidade era interessante, mas eu estava ficando entediado. Eu passava a maior parte do meu tempo livre aprendendo novos paradigmas de programação de linguagens como Python, PHP, Assembly 8086, oCaml e JavaScript. Foi quando eu descobri e me apaixonei por JavaScript e decidi, desde então, sempre apostar em JavaScript. Nunca me arrependi de ter feito isso.

Eu tive que aprender novas linguagens construindo ferramentas, scripts, aplicações, qualquer coisa que me ajudasse a entender o funcionamento interno da linguagem – indo muito além da sintaxe. Claro, eu ainda era um estudante nessa época e estava tentando entender como as coisas funcionavam e como solucionar todos os bugs que eu estava criando.

Então, apareceu a comunidade de desenvolvedores. Graças a web, eu pude pedir e receber ajuda de outros seres humanos – uma comunidade de desenvolvedores professionais e experientes. Eu estava admirado! Eu estava aprendendo muito com os outros desenvolvedores, lendo seus insights nas postagens em blogs, assistindo aos tutoriais no YouTube e discutindo diferentes tópicos em diferentes fóruns de tecnologia e IRC (sim, ele ainda existe!)

Aprendi muito com o que outros desenvolvedores compartilhavam gratuitamente, apenas para ajudar os outros. Por isso, decidi unir-me a comunidade e fazer o meu melhor para compartilhar o que eu estava aprendendo. Para mim, essa era a coisa certa a se fazer: outras pessoas ajudaram a me tornar um bom desenvolvedor. Agora, era minha vez de retribuir e ajudar outros desenvolvedores. Foi então que eu comecei a me preocupar com a produtividade dos outros desenvolvedores e com a minha também, claro. Estamos todos no mesmo barco, certo?

À medida que eu estava crescendo profissionalmente, comecei a pensar em novas maneiras de ajudar meus colegas desenvolvedores. Escrever artigos (no Medium e em revistas impressas) foi um grande começo, mas eu não conseguia medir o impacto que minhas publicações estavam tendo no público-alvo. Decidi, então, sair e conhecer esses desenvolvedores. Eu esperava não só compartilhar com eles, mas também apreender com eles na vida real. Como já era de se esperar, encontros, conferências e eventos para desenvolvedores são onde você pode encontrar todos esses desenvolvedores apaixonados.

Além disso: ser apaixonado por ajudar outros desenvolvedores pode (com sorte) também fazer com que você seja nomeado para o programa Google Developer Experts (ou para outros programas similares). Tive muita sorte em ingressar no programa do GDE há três anos e poder ajudar e influenciar ainda mais colegas desenvolvedores! Obrigado, Google!

Resumindo

Eu continuo aqui, ainda gostando de ajudar meus colegas desenvolvedores. Acreditem ou não, esse se tornou meu trabalho em tempo integral na SFEIR como Developer Advocate sênior.

Então, o que é um Developer Advocate? O que é necessário para ser um bom Developer Advocate? Por que contratar Developer Advocates dedicados/apaixonados é a decisão certa a ser tomada como empresa? Vou tentar responder a essas perguntas.

O que é um Developer Advocate?

Em primeiro lugar, vamos deixar claro para todos: Developer Advocates também são engenheiros. Eles têm um forte histórico técnico em seus campos, criaram e enviaram aplicações para a produção. Alguns deles, inclusive, causaram crashes na produção ou excluíram acidentalmente banco de dados de clientes (isso aconteceu, de verdade)!

De acordo com esse requisito, Developer Advocates não deveriam ser pessoas da área de marketing ou vendas – há funções mais adequadas para essas pessoas. Porém, Developer Advocates deveriam ser capazes de dar feedback para as áreas de marketing ou vendas. Mais importante — pelo menos, para mim — é dar feedback ao gerenciamento de produto, influenciar no roteiro de criação do produtos com base, é claro, nas necessidades dos desenvolvedores.

Historicamente, muitas empresas em tecnologia contrataram Developer Advocates para defender suas plataformas, ajudando desenvolvedores a usar seus produtos – e eles ainda o fazem. Portanto, a função de um Developer Advocate é ajudar os desenvolvedores a terem sucesso com uma plataforma ou tecnologia. O papel de um Developer Advocate também é atuar como uma ponte entre o time de engenharia e a comunidade de desenvolvedores. A função deles é dar feedback a ambas as partes, igualmente, em ambos os sentidos.

Um Developer Advocate é alguém que realmente defende os desenvolvedores, não somente uma plataforma. Os desenvolvedores deveriam ser a prioridade dos Developer Advocates.

O que é necessário para ser um bom Developer Advocate?

Acredito que engenheiros não se tornam Developer Advocates porque seus gerentes pedem. Também acredito que Developer Advocates são pessoas inerentemente apaixonadas e altruístas. Essas características não podem ser simplesmente ensinadas ou aprendidas.

Pessoalmente, tentei convencer alguns desenvolvedores a começar a compartilhar o conhecimento deles, mas eu estava errado! Descobri que alguns engenheiros se sentem mais confortavéis programando (quem não se sentiria?) e dedicando-se totalmente a resolver problemas ou desenvolver produtos. Compartilhar conhecimento com outros desenvolvedores nã0 é a principal prioridade de todos os engenheiros. Isso é totalmente normal e deve ser respeitado. Se você é um gerente, não obrigue seus engenheiros a fingir ser o que eles não são e não os coloque em situações desconfortáveis. Ninguém quer estar nessa situação.

Então o que é necessário para ser um bom Developer Advocate? Aprendi que muitos, se não todos os Developer Advocates, têm as seguintes características.

Aprender continuamente

Como engenheiros, nunca paramos de aprender, mesmo depois de terminar a universidade. Sem dúvida, o verdadeiro conhecimento está por aí para ser descoberto. Developer Advocates, como qualquer outro engenheiro, são pessoas que gostam de aprender. Eles procuram conhecimento em todos os lugares. Usam todos os meios que conhecem para se manterem atualizados. Os Developer Advocates que eu conheço defendem uma plataforma ou produto, mas também experimentam e usam outros produtos – até mesmo os feitos pelos seus competidores. Por quê? Porque os desenvolvedores geralmente necessitam usar diferentes produtos e ferramentas para construir suas aplicações. Um Developer Advocate sabe disso!

Pensar fora da caixa

Aprender coisas novas não vale a pena se você não as questiona. Eu nunca considero algo que acabei de aprender como certo. Eu sempre me faço as mesmas perguntas: "Por que …?", "E se …?", "Como esse recurso pode ser melhorado?", "Qual é a aparência disso internamente?" Claro que qualquer engenheiro curioso naturalmente faria essas perguntas.

Developer Advocates não são exceções. Eles devem ser capazes de dar uma explicação de alto nível sobre como um recurso funciona internamente ou simplesmente fornecer algumas informações técnicas sobre o produto ou plataforma que eles defendem. Muitos desenvolvedores perguntarão sobre isso mais cedo ou mais tarde e você precisa estar preparado.

Criar aplicações para o mundo real

Aprender novas coisas e saber a teoria por detrás delas não vale a pena se você não criar aplicações que as utilizem. Se você vai defender desenvolvedores, o mínimo que você pode fazer é colocar-se no lugar do desenvolvedor tentando dominar o produto e a plataforma que você está defendendo. Esse é o momento no qual suas habilidades de engenharia serão úteis.

Criar aplicações reais com as ferramentas que você defende ajudará você a entender melhor quais são suas limitações e, com sorte, a sugerir algumas melhorias ao time de engenharia. A função de um Developer Advocate é também garantir que a plataforma e as ferramentas que você defende forneçam a melhor experiência para o desenvolvedor.

Compartilhar e preocupar-se

A habilidade de "compartilhar" informações com a comunidade de desenvolvedores é uma parte essencial na função desempenhada pelo Developer Advocate. Você não pode desenvolver essa função se não gosta de compartilhar ou ajudar a outras pessoas. Tudo bem: nem todos somos altruístas! Porém, fingir que está defendendo desenvolvedores será muito — e não me canso de dizer — muito desafiador!

Além disso, a maioria das empresas exige, nos seus anúncios de emprego, para a função de Developer Advocate, uma boa habilidade de comunicação oral e escrita. Embora eu concorde com esse requisito, também acredito que "habilidades de comunicação" não deveriam substituir nem serem confundidas com as habilidades de "compartilhar e se preocupar". Reformulando, contratar um Developer Advocate que realmente ama compartilhar e ajudar a outras pessoas é mais importante do que contratar alguém com uma boa habilidade de comunicação. Na verdade, o primeiro é mais difícil de desenvolver!

Então, resumindo: você quer contratar um bom Developer Advocate? Contrate um aprendiz curioso e ávido, que tenha a mente aberta, com boas habilidades de engenharia e habilidades genuínas de "compartilhamento e empatia".

Você pode mandar uma mensagem para o autor pelo Twitter caso tenha gostado do artigo e segui-lo caso queira ler mais sobre conteúdos semelhantes. Obrigado pela leitura!