Тонкое искусство быть девелопер адвокатом +11



От переводчика: профессия девелопер адвоката появилась не так давно и почти у каждого крупного продукта или технологии есть свой адвокат, технологические компании понимают важность этого канала общения с миром. Есть такая должность и в 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.




К сожалению, не доступен сервер mySQL