Какво по дяволите е Адвокатът на разработчиците?

TL; DR: Защитникът на разработчиците е най-добрият приятел на разработчика!

През последните три години или малко повече, посвещавам професионалното си време и огромното си количество, за да помогна на колегите разработчици да бъдат успешни и продуктивни с инструментите, които обичат и използват. Тези инструменти включват уеб платформи, като JavaScript, PWA и Angular, Google Cloud Platform, Action on Google и чат ботове като цяло. Правих това като адвокат за програмисти.

Тази публикация в блога се основава на личния ми опит като адвокат за програмисти. Неща, които научих лично, но също и от други Адвокати на разработчици от други компании, с които съм работил.

Моята история…

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

Вероятно обаче бях твърде запален по това, защото винаги правех повече от необходимите задачи в клас. Искам да кажа, накланянето на Java в колежа беше добре, но ми беше скучно. Прекарвах по-голямата част от свободното си време в изучаване на нови парадигми за програмиране от езици като Python, PHP, Assembly 8086, oCaml и JavaScript. Тогава открих и се влюбих в JavaScript и оттогава реших винаги да залагам на JavaScript и никога не съм съжалявал.

Трябваше да науча нови езици чрез изграждане на инструменти, скриптове, приложения, всичко, което би могло да ми помогне да разбера вътрешността на езика - надхвърляйки синтаксиса. Разбира се, тогава все още бях студент и се опитвах да разбера как работят нещата и как да поправя всички грешки, които създавах.

След това дойде общността на разработчиците. Благодарение на мрежата бих могъл да поискам и да получа помощ от други хора - общност от професионални и опитни разработчици. Бях изумен! Учих тона от разработчиците, като четях техните прозрения в техните публикации в блогове, гледах техните уроци в Youtube и обсъждах различни теми в много технически форуми и IRC (да, все още съществува!).

Научих много от това, което другите разработчици споделяха безплатно, само за да помогнат на другите. Ето защо просто реших да се присъединя към общността и да направя всичко възможно да споделя това, което научавах. За мен това беше правилното нещо: други хора ми помогнаха да стана добър разработчик, сега беше мой ред да върна и да помогна на други разработчици. И тогава започнах да се грижа за производителността на други разработчици - и моята, разбира се. Всички сме в една лодка, нали?

Тъй като израствах професионално, започнах да мисля за нови начини да помогна на колегите си разработчици. Искам да кажа, че писането на статии (тук за Medium и за списания на хартия) е чудесно начало, но не успях да измерим въздействието, което моите публикации оказват върху целевата ми аудитория. След това реших да изляза и да се срещна с тези разработчици и се надявах да споделя с тях и да се уча от тях в реалния живот. Не е изненадващо, че срещи, конференции и събития за разработчици са мястото, където можете да намерите всички тези страстни разработчици.

Допълнителна бележка: Увлечението да помагате на други разработчици може (надявам се) също да ви накара да бъдете номинирани за програмата Google Developer Experts (или подобни програми). Имах късмет да се присъединя към програмата GDE преди три години и да мога да помогна и да повлияя на още повече колеги разработчици! Благодаря ти, Google!

Дълга история накратко ...

Ето ме днес, все още се радвам да помагам на колегите си разработчици. И, вярвайте или не, това се превърна в моята работа на пълен работен ден в SFEIR като старши адвокат за разработчици.

И така, какво по дяволите е Адвокатът на разработчиците? Какво прави страхотния защитник на разработчиците? И защо наемането на страстни програмисти се застъпва за правилното решение като организация? Нека се опитам да отговоря на тези въпроси.

Какво е адвокат за програмисти?

Първо, нека да изясним на всички: Адвокатите на разработчиците също са инженери. Те имат силен технически опит в своите области, те са изградили и изпратили приложения за прод. Някои от тях дори са прекъснали производството или случайно са изтрили клиентски бази данни (истинска история)!

Като се има предвид това изискване, Адвокатите на разработчиците не трябва да бъдат хора, занимаващи се с маркетинг или продажби - има роли, по-подходящи за тези служители. Въпреки това, Адвокатите на разработчиците трябва да могат да предоставят обратна връзка на маркетинга или продажбите. По-важното - поне за мен - да се даде обратна връзка на управлението на продуктите, да се повлияе на пътната карта на продуктите, базирана, разбира се, на нуждите на разработчиците.

Исторически погледнато, много технологични компании наемат адвокати на разработчиците, за да се застъпват за техните платформи, като помагат на крайните разработчици да използват техните продукти и все още го правят. Така че истинското значение на Developer Advocate е някой, чиято работа е да помага на разработчиците да имат успех с платформа или технология . Ролята на адвокат за разработчици е също да действа като мост между инженерния екип и общността на разработчиците. Тяхната работа е да дават обратна връзка и на двете страни, по еднакъв начин, и по двата начина.

Адвокатът за разработчици е човек, който наистина се застъпва за разработчици, а не просто платформа. Разработчиците трябва да бъдат основният приоритет на Advocate за разработчици.

Какво прави страхотния защитник на разработчиците?

Вярвам, че инженерите не могат просто да се превърнат в Адвокати на разработчиците, защото са били помолени от техните мениджъри. Също така мисля, че Адвокатите на разработчиците по своята същност са страстни и алтруистични хора. Тези характеристики не могат просто да бъдат преподавани или научавани.

Лично аз се опитах да убедя няколко разработчици да започнат да споделят знанията си, но сгреших! Разбрах, че някои инженери са просто по-удобни за писане на код (кой не би бил?) И изцяло посветени на решаването на проблеми или изграждането на продукти. Споделянето на знания с други разработчици не е основен приоритет на всеки инженер. Това е напълно добре и трябва да се спазва. Ако сте мениджър, не принуждавайте инженерите си да се правят на това, което не са, и да ги карате да се намират в неудобни ситуации. Никой не иска да бъде в тази позиция.

И така, какво прави страхотния защитник на разработчиците? Разбрах, че много, ако не всички, Адвокати на разработчици споделят следните характеристики.

Непрекъснато обучение

Като инженери, ние никога не спираме да учим, дори след като завършим. Несъмнено истинските знания са там. Адвокатите на разработчиците, както всеки друг инженер, са запалени обучаващи се. Те търсят знания навсякъде. Те използват всеки познат носител, за да останат в крак с времето. Защитниците на разработчици, които познавам, се застъпват за платформа или продукт, а също така се опитват и използват други продукти - дори тези, направени от конкуренти. Защо? Тъй като крайните разработчици обикновено трябва да използват различни продукти и инструменти за изграждане на своите приложения. Адвокатът за програмисти знае това!

Мислене извън кутията

Ученето на нови неща не си струва, ако не ги предизвикате. Никога не приемам нещо, което току-що съм научил, за даденост. Винаги си задавам едни и същи въпроси: „Защо ...?“, „Ами ако ...?“, „Как може да се подобри тази функция?“, „Как работи това под капака?“ Разбира се, всеки любопитен инженер естествено би задавал тези въпроси.

Адвокатите на разработчиците не правят изключение. Те трябва да могат да предоставят обяснение на високо ниво за това как дадена функция работи под капака или просто да предоставят някои технически прозрения за продукта или платформата, за която се застъпват. Много крайни разработчици ще попитат за това рано или късно, така че бъдете подготвени.

Изграждане на реални приложения

Изучаването на нови неща и познаването на теорията зад тях не си струва, ако не създавате приложения, използващи ги. Ако ще се застъпвате за разработчици, най-малкото, което можете да направите, е да се поставите на мястото на разработчиците, като се опитате да овладеете продукта и платформата, за която се застъпвате. Това е моментът, в който вашите инженерни умения ще бъдат полезни.

Изграждането на реални приложения с инструментите, за които се застъпвате, също ще ви помогне да разберете по-добре техните ограничения и да се надяваме да предложите някои подобрения на инженерния екип. Работата на Защитник на разработчиците е също така да се увери, че платформата и инструментите, които защитавате, осигуряват най-доброто изживяване за разработчици.

Споделяне и грижа

Възможността за „споделяне“ на информация с общността на разработчиците е съществена част от ролята на Защитник на разработчиците. Не можете да бъдете в тази роля, ако мразите да споделяте или да помагате на другите. И това е ОК, не всички сме алтруисти! Но тогава преструването, че се застъпва за разработчиците, ще бъде наистина - изчакайте - наистина предизвикателно!

Освен това повечето компании изискват в длъжностните си характеристики добри устни и писмени комуникативни умения за ролята на Защитник на разработчиците. Въпреки че съм съгласен с това изискване, аз също вярвам, че „комуникативните умения“ не трябва да заменят или да се бъркат с умението „споделяне и грижа“. За да преформулирам това, наемането на адвокат за програмисти, който наистина обича да споделя и помага на другите, е много по-важно от някой, който е развил добри комуникативни умения. Всъщност първото е по-трудно да се развие!

И така, накратко: искате ли да наемете страхотен адвокат за разработчици? След това наемете любопитен и запален ученик, който може да мисли нестандартно, с добри инженерни умения и истински умения за „споделяне и съпричастност“.

Моля, дайте на тази статия няколко ръкопляскания и ми кажете колко много ви е харесала, в Twitter @manekinekko и не забравяйте да ме следвате за повече съдържание ?