Англійська для внутрішніх розробників інструментів

Освоєння словникового запасу для обговорення внутрішніх платформ, досвіду розробника і інструментів самообслуговування як внутрішнього розробника інструментів.

Внутрішні інструменти розробники будують програмне забезпечення, користувачі якого є їхніми колегами, що створює відмінну динаміку спілкування - ваші «клиєнти» сидять в тому ж робочому просторі Slack і можуть підійти до вашого столу. Словниковий запас у цьому просторі поєднує розуміння продукту з інженерними термінами платформи, і його точне використання допомагає вам підтримувати внутрішні інвестиції в інструменти, які, як відомо, легко недофінансувати для організацій.

Ключовий словник

** Досвід розробника (DX) ** Загальна якість щоденного досвіду розробника з використанням внутрішніх інструментів, процесів і платформ - включаючи легкість використання, якість документації і тертя в спільних робочих потоках. *Приклад: “Ми зараз розглядаємо DX як першокласну метрику - ми щоквартально опитуємо інженерів про те, скільки тертя вони встигли в процесі розгортання.” *

Самообслуживание Інструмент або платформа, розроблена так, щоб користувачі могли виконувати завдання самостійно, без необхідності відкривати квиток або чекати на іншу команду.

  • Приклад: « Для створення нового середовища тестування раніше потрібно було звертатися до команди з розробки платформи; тепер це повністю самообслуговування за допомогою внутрішнього порталу. »*

Золотий шлях Добре підтримуваний, офіційно рекомендований спосіб виконання звичайного завдання, розроблений як найпростіший і найбезпечніший варіант, навіть якщо інші підходи технічно можливі. Приклад: «Існує золотий шлях для створення нової служби, яка автоматично здійснює ведення журналів, вимірювання і CI — відходячи від цього шляху, ви самі встановлюєте всі параметри.»

** Внутрішня платформа розробника (IDP) ** Централізована платформа, часто створена і підтримується спеціальною командою платформи, яка надає стандартизовані інструменти, абстракції інфраструктури і потоки робіт для інших інженерних команд. *Приклад: “IDP обробляє служби, управління секретами і конвеєри розгортання, тому команди продукту не вигадують цю інфраструктуру знову.” *

** Когнітивне навантаження (в контексті платформи) ** Ментальне зусилля, яке розробник має витратити, щоб зрозуміти і використовувати систему - ключова метрика платформи, яку команди намагаються зменшити за допомогою хороших абстракцій і документації. Приклад: “Цей новий CLI значно зменшує навантаження на когнітивні процеси — інженерам більше не потрібно запам’ятовувати шість окремих прапорців, щоб розгорнути базову службу.”

** Прийняття (внутрішнього інструменту) ** Ступінь, в якій інженерні команди фактично вибирають використовувати внутрішній інструмент, на відміну від просто доступу до нього - критичний і часто недооцінений метрик для успіху внутрішнього інструменту. Приклад: “Ми побудували функцію, але її прийняття є низьким — лише дві з дванадцяти команд перейшли, тому нам потрібно зрозуміти, що блокує решту.”

  • Собачої їжі Використання вашого власного внутрішнього інструменту як регулярної частини потоку роботи вашої команди, як для перевірки його корисності, так і для виявлення проблем, перш ніж інші команди зіткнуться з ними.
  • Приклад: « Ми самі перевіряємо інструмент розгортання для кожного з наших власних випусків, завдяки чому ми виявили цю ваду відновлення, перш ніж будь-яка інша команда встигла її виявити. » *

Блокова дорога Подібно до «золотого шляху» — офіційно підтримуваний, добре підтримуваний набір інструментів і практик, які роблять легкий шлях також правильним шляхом, зменшуючи спокусу будувати одноразові рішення.

  • Приклад: « Якщо ви залишитеся на асфальтованій дорозі, то отримаєте автоматичні латки безпеки; команди, які обходять її, самі беруть на себе цю роботу з обслуговування ». *

Звичайні фрази

** В обзорах коду: **

  • «Ця команда CLI має сім необхідних прапорців без зрозумілих типових значень — це багато когнітивного навантаження для чогось, що має бути самообслуговуванням»
  • «Повідомлення про помилку тут просто каже «розгортання не вдалося» — для внутрішнього інструмента, ми повинні вказувати безпосередньо на ймовірну причину і виправлення, оскільки ми не можемо припустити глибоких знань про платформу»
  • «Ми повинні додати це як шаблон золотого шляху, а не очікувати, що кожна команда буде копіювати і вставляти ту ж саму схему»

В стоячих позах:

  • «Вчора я запустив DX-опитування з трьома командами, які повідомили про тертя в CI-конвейері; сьогодні я визначаю пріоритети виправлень на основі цього відгуку»
  • «Я заблокований на прийнятті — новий інструмент управління секретами працює, але ніхто ще не перейшов зі старого підходу, тому я планую офісні години, щоб допомогти командам переключитися»
  • «Я закінчив dogfooding новий CLI розгортання на нашій власній службі; знайшов дві грубі краї в повідомленнях про помилки, перш ніж він вийде більш широко.»

В беседах с заинтересованными сторонами или лидерами:

  • «Низький рівень прийняття не обов’язково означає, що інструмент поганий — це часто означає, що вартість міграції відчувається вище, ніж користь з точки зору команди, тому ми повинні зменшити це тертя спочатку»
  • «Інвестування в цей золотий шлях виплачується в кожній команді, яка його приймає, а не тільки в дорозі команди платформи — саме тому ROI складається з часом»
  • «Ми вимірюємо успіх тут за зменшенням когнітивного навантаження і часу до першого розгортання для нових інженерів, а не тільки сирого обліку функцій»

Фрази, яких слід уникати

**Сказати “просто використовуйте інструмент”, коли прийняття є низьким. ** Это отклоняет реальный сигнал. Замість цього скажіть: «прийняття нижче, ніж очікувалося — давайте дізнаємося, яке тертя зупиняє команди від перемикання» і розглядати низьке прийняття як корисні дані, а не помилку користувача.

**Сказати “це зроблено”, коли інструмент відправлено, але ще не прийнятий або не розданий. ** Внутрішнє інструментування не “зроблено” в часі корабля, як це може бути у випадку з одноразовим сценарієм. Замість цього скажіть: «перша версія була відправлена; ми зараз її перевіряємо і відстежуємо прийняття, перш ніж назвати її повною»

Слово “наши пользователи” неоднозначно, когда вы имеете в виду внутренних инженеров. У змішаній розмові з командами продукту, поясніть: “наші внутрішні користувачі - інженерні команди, які споживають цю платформу” - щоб уникнути плутанини з кінцевими клієнтами.

Краткий справочник

TermHow to use it
DX”We’re tracking DX with a quarterly friction survey.”
self-service”Environment provisioning is now fully self-service.”
golden path / paved road”The golden path wires up logging and CI automatically.”
IDP”The IDP standardizes deployment pipelines across teams.”
adoption”Adoption is the metric that tells us if the tool actually helped.”
dogfooding”We dogfood every release of our own tooling internally first.”

Ключеві моменти

  • Розглядати досвід розробників (DX) і прийняття як вимірювані, першокласні результати, а не нечіткі післядумки - це оформлення допомагає обґрунтувати внутрішні інвестиції в інструменти для лідерства.
  • Використовуйте « золотий шлях » або « асфальтова дорога », щоб описати офіційно підтримуваний, низькотертячий спосіб робити щось, відмінний від того, що просто технічно можливо.
  • Низьке прийняття є сигналом для дослідження, а не невдачею для відкидання - оформити його таким чином в ретроспективах і оновленнях зацікавлених сторін.
  • Випробування власних інструментів перед їх поширенням є як практикою, так і сигналом надійності — згадайте про це, коли описуєте процес вашої команди.
  • Будь точним щодо «наших користувачів» у змішаних розмовах — пояснюй, коли ти маєш на увазі внутрішні інженерні команди проти зовнішніх клієнтів.

Науковий напрямок: «Спостереження та аналіз»

Як внутрішній розробник інструментів, ви не просто створюєте код; ви сприяєте спілкуванню і керуєте співпрацею в межах своєї команди. Велика частина цього полягає в розумінні нюансів англійської мови, використовуваної у зворотному зв’язку - чи це короткий коментар до запитів на витягування, чи детальна дискусія в Slack. Часто, не-рідні носії знаходять ці взаємодії викликом, тому що вони сильно покладаються на неявне значення і тонке фразування. Це не просто про буквальний переклад; це про розуміння намірів за словами.

Розглянемо таку ситуацію: рецензент може залишити коментар на зразок « Цій гілці потрібні додаткові перевірки ». На перший погляд, це виглядає просто, але його можна розглядати як критику всієї бази коду. Більш конструктивним формулюванням було б: «Чи можемо ми додати деякі тести модулів, щоб конкретно покрити нову функціональність в calculate_interest()? Це допоможе забезпечити його надійність і запобігти регресії. ” Різниця полягає в додаванні контексту – пропонуючи * як * поліпшити код, а не просто зазначаючи недолік. Аналогічно, повідомлення Slack з запитом на зміни може звучати грубо: « Виправте цю помилку ». Краще було б сказати: « Привіт @john, я бачу проблему з перевіркою даних у формі профілю користувача. Чи не могли б ви подивитись і впровадити деякі додаткові перевірки?” Ввічливий тон і пряме звернення до відповідної особи роблять співпрацю набагато гладшою.

Іншою поширеною областю неправильного тлумачення є технічні описи в описах запитів на завантаження. Розробники часто використовують такі фрази, як « переробка », « оптимізація » або « поліпшення продуктивності ». Ці терміни містять припущення щодо того, як слід робити зміни. Важливо уникати припущень і натомість зосередитися на описі проблеми, яку ви намагаєтеся вирішити, і рішень, які ви реалізували. Замість того, щоб сказати: « Перебудувати цю функцію для кращої продуктивності », скажіть щось на зразок: « Ця функція мала повільний час виконання під час пікового навантаження. Я переписав його, використовуючи більш ефективний алгоритм і зменшив його слід в пам’яті. ”

Ось приклад, який показує, як використовувати gdb (зневадник GNU) у командному рядку — звичайний інструмент для діагностики проблем з продуктивністю, які часто обговорюються у командах:

gdb ./my_application -p 12345  # Attach gdb to process ID 12345
break calculate_interest    # Set a breakpoint in the function
run                         # Start execution
next                       # Step over the next line of code
print $result               # Print the value of the variable 'result'
continue                   # Continue execution until the breakpoint is hit.

Зрозумівши ці тонкі відмінності і зосередившись на ясній, дійовій мові, ви значно поліпшитимете своє спілкування, зменшите кількість непорозумінь і, врешті-решт, станете ефективнішим розробником внутрішніх інструментів.

Поширені запитання

Про що ця стаття "Англійська для внутрішніх розробників інструментів"?

Освоєння словникового запасу для обговорення внутрішніх платформ, досвіду розробника і інструментів самообслуговування як внутрішнього розробника інструментів.

Чи безкоштовна ця стаття?

Так. Усі статті на CoderSlingo, включно з цією, доступні безкоштовно без реєстрації.

Скільки часу займає читання "Англійська для внутрішніх розробників інструментів"?

Приблизно 7 min.