07.08.2022

Сергій Немчинський: Поради, як працювати з джунами досвідченішим програмістам

Сергій Немчинський
10 хвилин перегляду
Сергій Немчинський: Поради, як працювати з джунами досвідченішим програмістам

Коли ви досвідчений програміст і вам вручили джуна на навчання (або навіть може бути кілька джунів), перше, що вам спаде на думку: я не хочу, у мене купа своєї роботи… І так далі і тому подібне. Я вас чудово в цьому розумію. Вовтузитися з розробниками-початківцями важка робота і, найчастіше, не вдячна. Але ви повинні розуміти, що це найперше вигідно для вас.

Підвищення ваших hard skills

Людина найкраще запам’ятовує інформацію, коли вона комусь її пояснює. Коли ви пояснюєте суть своєї роботи іншій людині, ви нарощуєте свої hard skills. Важко вигадати, чим ще можна так ефективно підвищити свій рівень.

І чим краще ви можете пояснити щось, тим краще ви це все розумієте. Це як у приказці: якщо ти щось не можеш пояснити шестирічній дитині, ти сам цього не розумієш. Із навчанням програмістів аналогічно. Щоб пояснити щось складне простими словами, потрібно самому розуміти це досконально. Тільки в цьому випадку ви можете виділити найважливіше та сформулювати суть простими словами.

Тож, коли ви навчаєте інших програмістів, ви зростаєте як програміст.

Підвищення soft skills

Тут усе очевидно. Ви вчитеся спілкуватися з іншою людиною, вчитеся сприймати інформацію та отримувати фідбек. Ви вчитеся доступно формулювати свої думки. У вас може бути прекрасне розуміння предметної області, але якщо ви жодного разу все це не промовляли, навчання джуна буде відмінним способом навчитися доносити інформацію. Ви навчитеся легко та красиво пояснювати складні теми і потім вам буде легко доносити свою думку на мітингах. Це допоможе, якщо далі ви вирішите йти у бік менеджменту.

Тож, навчаючи джунів, ви прокачуєте свої навички легко викладати інформацію та доносити свою думку.

Навички роботи з командою

Якщо ви ще не є тім лідом, а джунів зазвичай доручають комусь молодшому, то навчання джуна є першою сходинкою управління командою. Ви вчитеся, як використовувати сильні сторони вашої команди і як зробити так, щоб слабкі сторони не били по результатам роботи (а в даному випадку ваша команда — джун під вашою опікою).

Після досвіду роботи з джунами ви можете йти до керівника і просити підвищити вас до тім ліда. Я вас запевняю, що людина, яка добре себе зарекомендувала як ментор, буде однією з перших кандидатур на підвищення до тім ліда. Або до проджект менеджера, якщо ви вирішили рости в цей бік.

Крім того, таким чином ви отримаєте авторитет у своїх колег. Не тільки у джунів, а тих, хто сидітиме поруч і чутиме, як ви розповідаєте про різні нюанси.

Тож, якщо ви хочете зростати у бік управління командою або проектами, то навчання джунів є чудовим першим щаблем до вашої мети.

Як будується робота з джуном

Найчастіше джуни, які до вас прийшли, зовсім не дурні. Вони освоїли базові знання з вашої спеціальності, вони пройшли всі етапи співбесіди, а отже, з ними можна працювати. Ви можете покластися на них у багатьох відношеннях. З іншого боку, повністю покластися ви на них не можете. Тут потрібна ваша мудрість, яка вам підкаже, що можна доручити джуну, з чим він упорається сам, де потрібно підставити плече, а що краще зробити самостійно, просто показавши, як це робиться.

Ще один важливий аспект під час навчання джунів — це дидактика. Це побудова послідовності того, що ви повинні пояснити людині. Я раджу будувати пояснення в такий спосіб.

Етап 1. Як тільки вам доручили Джуна, проведіть йому коротеньку (до години) лекцію. Скажіть йому назву вашого проекту, розкажіть про предметну область проекту, про що він, яку роль у компанії виконує і для чого він потрібен. Розкажіть, з якими системами ви інтегруєтеся. Ознайомте з основними термінами та абревіатурами, які ви використовуєте у вашій системі. Тому що, якщо ви цього не зробите, у людини буде повний хаос у голові. Ви говоритимете якісь абревіатури або терміни, які людині не зрозумілі. Ви також повинні чітко дати зрозуміти новачкові, де він знаходиться, яка його роль у цьому та яка мета проекту.

Етап 2. Після того як ви розповіли про проектну область, можете сідати за IDE та показувати, з яких модулів складається проект та всі їх особливості. Також розповідаєте про прийняту в команді інженерну практику. Тут у нас Dev Server, тут staging, тут Continuous Integration, комітімся в такі гілки, вони створюються під те, і так далі. Усі ці аспекти слід проговорити.

Я радив би весь цей інструктаж помістити в один день. Так, цей день повністю випаде із вашого робочого графіка. Або ж можна його розділити на два дні, паралельно даючи Джуну читати документацію за проектом. Коли ви доповідатимете на статус-мітингу, так і скажіть, що ви проводили початковий інструктаж із джуном. Закон Брукса ніхто не скасовував.

* Закон Брукса: додавання людини до проекту, який перебуває у критичній стадії, не прискорює роботу над проектом, а уповільнює.

Якщо керівництво ухвалило рішення про розширення штату, воно має розуміти, що коли в команду додають нову людину, команда починає працювати повільніше. Тому що людину треба ввести в курс, треба навчити, потрібно за нею стежити, відповідно, не працювати самому.

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

Ще кілька міркувань

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

Будьте відповідальними. Якщо ви сказали, що у вас сьогодні лекція о третій, то значить о третій ви берете свій ноут і йдете в переговорку розповідати те, що обіцяли. Багато досвідчених розробників вважають, що коли перед ними джун, можна сильно не морочитися, ну запізнилися, нехай зачекає. Так ось, важливо бути відповідальним з усіма колегами, незалежно від їхньої посади.

Вводьте людину в роботу поступово. У новачка немає стільки досвіду, скільки у вас плюс він не працював на вашому проекті. Звичайно, він дуже багато не знає і не розуміє. Нехай він зробить перше завдання при вас, щоб він не застряг — ви підказували що робити. Але не потрібно виривати у нього клавіатуру та робити все самостійно. Дайте зрозуміти своєму джуну, що якщо він щось не розуміє, він може і повинен ставити запитання.

Пам’ятайте, якщо людина щось не розуміє — це не її вина, а ваша. Значить, ви погано пояснюєте. Подумайте, як пояснити інакше. Подумайте, що ви могли пропустити з пояснень, тому що вам здалося це природним (а для людини це може бути неприродно).

Найкращий спосіб підтримувати свій авторитет серед команди — не боятися визнати свою помилку. Якщо ви припустилися помилки і не можете її визнати, намагаєтеся її замісти під килим, виправдатися — ваш авторитет впаде на дно. А от якщо ви відкрито визнали помилку, це викликає у людей повагу.

Завжди ваш Сергій Немчинський.