От переводчика: профессия девелопер адвоката появилась не так давно и почти у каждого крупного продукта или технологии есть свой адвокат, технологические компании понимают важность этого канала общения с миром. Есть такая должность и в Haulmont. Когда мы формулировали требования к вакансии, нам самим пришлось отвечать на вопрос "А что же должен делать девелопер адвокат?" И эта статья простым языком и очень исчерпывающе на этот вопрос отвечает.


Несколько лет назад я написал статью “Кто такой вообще этот девелопер адвокат?”, в которой постарался помочь людям в технической индустрии понять, что входит в эту роль. И до сих пор я получаю тонны вопросов про это в Твиттере.


В этой статье я собираюсь пролить свет на роль Developer Advocate и в этот раз приведу конкретные примеры задач и обязанностей, которые я выполняю в своей ежедневной работе в качестве Senior Developer Advocate в Microsoft, а также в качестве человека, который занимается этим с 2015 года.


Предупреждение:
Все мнения, выражаемые в этой статье, являются моими собственными и не представляют моего нанимателя или коллег.


Давайте сначала немного проясним разницу между дев. адвокатством и технологическим евангелизмом. Посмотрим на определение обоих терминов.


Девелопер адвокат и технологический евангелист


Существует некоторая путаница в понимании терминов “Дев. адвокатство” и “Технологический евангелизм”. Давайте взглянем на их определения.


Согласно википедии, понятие “Technology Evangelist” было изобретено Apple в рамках инициативы по убеждению разработчиков создавать приложения для Macintosh. Глагол “убедить” здесь очень важен, потому что евангелист должен был пытаться склонить разработчика к использованию определенной технологии, не обязательно выслушивая его доводы и не беря во внимание его потребности или мнение.


И это прямо противоположно тому, что делает адвокат!


“Advocacy” — это старая концепция, которая берет свое начало от латинского слова “advocare”, что значит “добавить голос”. Термин “advocate” происходит от старофранцузского “avocat”, что означает “законник”. Таким образом, Advocate дословно означает, “кто-то, кто ведет дело в суде”, “кто спорит о том, что что-то должно быть изменено, улучшено”.


Применительно к технологической индустрии эти два термина могут выглядеть довольно похожими, но есть маленькое различие: роль технологического евангелиста состоит в том, чтобы доносить информацию в одну сторону (только выдавать её), а роль адвоката рассматривается в разрезе двунаправленного потока информации — как выдача информации, так и её приём. Адвокат обычно заинтересован в том, чтобы выслушать разработчиков, понять их желания и предоставить наиболее подходящую помощь. Также адвокат собирает обратную связь и доносит её людям внутри компании.


Именно поэтому эти два звания должны применяться осмысленно.


Тем не менее, я хочу сделать шаг назад и обратить ваше внимание на то, что за теоретическим определением на практике всегда есть некоторые исключения из понимания составляющих этой работы. У меня есть друзья на должности “Технологический евангелист”, но то, что они делают, больше похоже, на “Дев. адвокат” (и наоборот). Что действительно имеет значение — это не должность, а то, что делается, чтобы помогать разработчикам достичь успеха.


Девелопер адвокат и маркетолог


Спроси любого адвоката о его роли — всегда получишь разный ответ, и это немного путает. Причем это обычный случай. А вы когда-нибудь задумывались, почему так? Основная причина в том, что множество компаний нанимают дев. адвоката для выполнения разных задач, от продаж и коммуникаций до (в основном) маркетинга. Почему маркетинг? Потому что компании обычно тратят от 5 до 12 процентов своего дохода ��а маркетинг, и, когда нужно достучаться до большего количества разработчиков, они обычно нанимают кого-то в качестве “адвоката” (или чего-то похожего), кто отчитывается отделу маркетинга и должен выполнять KPI по маркетингу и продажам. Ещё важнее в этой ситуации то, что эта роль существует вне команды разработки продукта, что может стать проблемой (поговорим об этом далее).


Не поймите меня неправильно, нет ничего плохого в компаниях, которые используют маркетинг и продажи для привлечения большего количества разработчиков, но делать это, используя зонтичный бренд “дев. адвокат”, — это оказание медвежьей услуги буквально всем. В целом, это обычно оказывается неудачным шагом, потому что не все разработчики хорошо умеют продавать (и заниматься продвижением продукта) и обычно делают это плохо. Разработчики изобретательны и креативны, но немногие обладают базовыми навыками продвижения бизнеса. Почему, вы думаете, большинство стартапов основаны как минимум двумя людьми? Если бы я был хорош в продажах и маркетинге, я бы гораздо лучше продвигал свои собственные open-source проекты, а вы наверняка даже не слышали про xlayers.dev. Так ведь?



Для того, чтобы достучаться до разработчиков, команда маркетинга должна объединять усилия с дев. адвокатами и помогать им лучше сформулировать то, что нужно донести. Почему? Потому что дев. адвокаты прежде всего сами являются разработчиками и говорят с ними на том же языке.


Во многих других случаях компании просто игнорируют настоящий смысл понятия “адвокатство”, и всё заканчивается придумыванием своего собственного определения, основанного на требованиях бизнеса. Ровно поэтому дев. адвокаты не понимают, какова их роль или какова она должна быть. Я надеюсь, что эта статья хоть как-то поможет!


Девелопер адвокат и деврел (Developer Relations)


Говоря простым языком, деврел — это зонтичный термин для команд, включающих дев. адвокатов, менеджеров сообществ разработчиков и любых других команд, в чьи обязанности входит налаживание и укрепление связей с разработчиками. Некоторые большие компании делают так же, как мы в Microsoft, включая туда команды, ответственные за документирование, мероприятия и социальные сети.


Таким образом, дев. адвокатство — крохотное подмножество деврел.



Какая у меня роль в Microsoft?


В качестве дев.адвокатов мы можем не совпадать во мнении о том, что мы делаем или что должны делать, но все согласны с одним определением:


“Наша роль — работать мостиком между внутренней командой разработки и сообществом разработчиков. Мы также защищаем мнение сообщества внутри команды”.


Перед тем, как я начну описывать свою работу в Microsoft, немного контекста: меня наняли из-за моего знания JavaScript и моих крепких отношений с сообществом JavaScript разработчиков. В настоящее время я работаю в составе команды адвокатов JavaScript. Наша команда принадлежит к деврел организации, которая является частью департамента разработки Azure в Microsoft.


Моя ежедневная работа — говорить от имени сообщества JavaScript разработчиков внутри Microsoft, быть их голосом в ходе митингов команды продукта или внутренних исследований. Во “внешнем мире” я поддерживаю и собираю обратную связь от JavaScript разработчиков, чтобы мы могли улучшить наши продукты и услуги. В общем, я помогаю JavaScript разработчикам успешно использовать Microsoft Clouds, сервисы и инструменты разработки с открытым кодом.


Вы, возможно, видите, что Microsoft постоянно поднимает планку качества для своих продуктов, и, чтобы этого достичь, компания инвестирует в разработчиков и открытый код. Поэтому миссия нашей деврел команды — помогать разработчикам достигать большего. Наша большая дев. адвокатская команда (или облачная дев. адвокатская команда, как мы ее внутри называем, поскольку помогаем команде девопс) состоит из нескольких подкоманд, кото��ые сфокусированы на различных сообществах разработчиков, таких как Rust, Java, Python и т.д., а также на таких аудиториях, как студенты, научные работники и стартапы.


Миссия облачной команды адвокатов — завоевать сердца и умы разработчиков через честность, дух сообщества и вовлечение через технологии.



Как выглядит мой типичный день дев адвоката?


Задачи, о которых я расскажу ниже, это дела, которые “я” обычно делаю. Мои коллеги могут делать, а могут и не делать “то же самое”.


Создание контента


Я участвую в написании документации и остального контента в различных форматах, используемых инженерами по всему миру. Это может быть просто обновление существующей документации, а может быть создание полной документации, как, например, документация по Azure Static Web Apps, над которой работала моя команда совместно с командой документации Microsoft.


Другой контент включает создание и размещение уроков для разработчиков, задачек на кодирование, а также вещей “на один зубок”, которые я регулярно публикую в твиттере.


Вот пара примеров из недавнего:



и вот:



Публичные выступления


Возможно, это одна из самых заметных активностей, которые приносят дурную славу дев. адвокатам. Это тоже часть моей работы: чтение техн��ческих докладов или участие в пленарных докладах на международных конференциях и выставках. В основе своей это означает быть там, где разработчики. Это также включает в себя проведение прямых эфиров, участие в подкастах и создание прочего медиаконтента.


Создание инструментария “в открытую”


Кроме работы, которую я делаю для своей компании, я также активный участник сообщества разработчиков софта с открытым кодом, и большая часть проектов, которые я делаю для своего нанимателя — это тоже софт с открытым кодом. Это значит, что моя работа ещё и помогать разработчикам успешно осваивать инструменты, которые помогают им использовать и интегрировать Azure в свои продукты и приложения. Последние инструменты, которые я делал — https://www.hexa.run, библиотеки Nest.JS для Azure CosmosDB, и Azure Storage. Можете посмотреть на все мои проекты с открытым кодом на wassim.dev.


Донесение обратной связи о продукте


Постоянно улучшать продукты и сервисы, которые используют разработчики, — одна из центральных задач нашей команды. Я провожу почти все время общаясь с разработчиками и инженерами через социальные сети, на онлайн и офлайн конференциях. Я получаю тонны запросов от разработчиков, которые задают вопросы, сообщают о проблемах или просят о новой функциональности. В первую очередь, я стараюсь им помочь, если я хорошо знаком с продуктом. Для серьезных проблем или популярных запросов о новой функциональности я завожу задачи на нашей внутренней доске и плотно сотрудничаю с продуктовой командой, чтобы улучшить опыт использования на основе обратной связи от разработчиков.


Это как раз тот случай, когда в качестве дев. адвоката я могу выступать от имени JavaScript разработчиков, быть их голосом внутри команды. Недавний пример — продукт Azure Static Web Apps, где я провел последние полтора года, участвуя в разработке продукта и помогая команде инженеров создать часть сервиса, обеспечивая важную обратную связь, пробуя новую функциональность и разрабатывая CLI инструмент для разработчиков.


Создание и выпуск продукта


Ещё один аспект работы дев. адвоката, который, возможно, игнорируется множеством людей — это то, что некоторые из нас также участвуют в создании продуктов и их выкатке в прод, как внешних, так и внутренних. Последние полгода у меня была возможность поучаствовать в создании, лидировании и доставке пользователям официального приложения Azure Static Web Apps CLI, которое позволяет разработчикам запускать и отлаживать свои приложения локально.


Я думаю, это то, что должен делать каждый дев. адвокат, потому что это крайне необходимо для понимания того, как продукт или сервис спроектирован, реализован, знать его сильные и слабые стороны. Это то знание, которым необходимо обладать, если мы хотим помогать разработчикам.


Быть “нулевым пользователем”


Приличная часть моего времени уходит на улучшение продуктов и сервисов Azure, на работу с командами разработчиков Azure во всей компании для того, чтобы попробовать новую функциональность и дать обратную связь от JavaScript разработчиков об их ожиданиях. Продукты, с которыми я успел поработать за последние два года: Azure Functions, Azure Storage, Azure Cosmos DB, Azure IoT, Azure Static Web Apps, GitHub Codespaces и npm. Быть “нулевым клиентом” — отличный способ кардинально повлиять на продукт до его релиза. Один из примеров здесь — Azure Static Web Apps: моя команда и я тесно сотрудничали с командой разработки, чтобы помочь обеспечить лучший опыт использования сервисов для всех web разработчиков, которые будут им пользоваться.


Постоянное обучение


Поскольку JavaScript широко используется в множестве различных областей, стек технологий, на котором я обычно сосредоточен, это: Node.js, TypeScript, Serverless, архитектура IoT, базы данных и хостинг. Я также буду честным: я был восхищен языком Rust и планирую изучать его в ближайшем будущем! К счастью, мои коллеги из команды дев. адвокатов языка Rust сделали учебник 5 hours free guide about Rust for beginners. Похоже, для меня это отличное начало!


Создание и улучшение официальной документации


Как дев. адвокат я также трачу какое-то время на создание подробных технических наставлений для многих сервисов Microsoft Cloud. Одно из последних, над которой моя команда и я работали четыре месяца, — the Node.js Learn Path. Что хорошо в нашей официальной документации — это то, что она открыта и любой может помочь с улучшением. Мы также регулярно принимаем в этом участие и делаем пулл реквесты на улучшение и обновление документации на http://docs.microsoft.com.


Помогать другим расти


Ещё один аспект моей работы — ну, это не совсем официальный аспект моих должностных обязанностей — но он очень важен для меня: помогать людям вокруг меня расти и быть успешными. Как представитель меньшинства, который добился успеха в индустрии, я очень забочусь об инклюзивности и разнообразии. Таким образом, помогать другим расти профессионально и персонально — это часть меня самого.


Я участвую во внутренних менторских программах через официальную программу менторства в Microsoft. Во внешнем мире я работаю как наставник для людей из сообщества, которые являются новичками в программировании и хотят поменять карьеру, а также для тех, кто хочет принимать участие в проектах с открытым кодом. Я, очевидно, не могу раскрывать все подробности, но, в целом, помогаю и даю советы по программированию, технологиям и карьерному росту моим ученикам.


Бизнес, цели и ключевые результаты


Давайте внесем ясность: цель каждой компании — делать бизнес. Компания не просто платит тебе за то, что ты работаешь над проектами с открытым кодом, путешествуешь и выступаешь. Компания инвестирует в тебя и ожидает ROI (возврата инвестиций). Но мы все знаем, что ROI сообществ и построения отношений не так просто определить и измерить.


Мы постоянно пересматриваем и обновляем наши OKR (цели и ключевые результаты), стратегию и планирование, чтобы соответствовать более широкой стратегии компании, в то же время давая команде свободу общаться с разработчиками естественным образом, вести полезные беседы, помогать им решать их проблемы и быть их адвокатом.


Заключительные идеи


Основные задачи инженеров — дизайн, реализация и выкатка продукта, и те, кто хочет поделиться своим опытом с сообществом, могут это сделать. Дев. адвокаты не отличаются от инженеров, кроме того, что они не работают над продуктом полный рабочий день, а помогают командам разработки достучаться до разработчиков и понять их нужды, чтобы создать наилучший опыт использования для каждого.


Дев. адвокаты — инженеры, которым нравится учиться открыто.


Это моя история. Если вам нравится то, что вы прочитали, и вы согласны с этим, обратите внимание, что наша команда ищет новые кадры. Загляните на нашу страницу https://aka.ms/awesomejobs.


Бонус: айсберг дев. адвокатства



Пишите мне в твиттер @manekinekko, если у вас ещё есть вопросы про дев. адвокатство. Вы также можете наблюдать за моими работами на wassim.dev.