П'ять нових молодших розробників і безліч складних завдань. Що зараз?


10

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

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

Отже, що зараз? Що мені робити, щоб ефективно використовувати їх і свій час?


1
Всі 5 молодших людей потрапили на ваш проект? Ви єдиний сень-розвід, який наглядає за ними?
Тіанна

@Tyanna: Так, я єдиний старший у цьому проекті. Інші люди похилого віку були перенесені на інші проекти раніше.
mxe

2
перше, що потрібно зробити - це пояснити керівництву, що ви будете трохи менш продуктивними, коли ви нарощуєте новачків
jk.

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

+1. Єдине жаль, що я не можу підтримати вас більше.
Shivan Dragon

Відповіді:


2

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

Наставництво - це найефективніше використання вашого часу прямо зараз, а не кодування.

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

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

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

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

У вас є п’ять нових людей, що справді важко. Потрібно бути справедливим до всіх і обертатись з тим, з ким паришся або давати вказівки. Не грай у вибране. Але ви також повинні бути людиною, яка забезпечує "жорстке кохання", якщо хтось не домагається успіху та прогресує. Вам, можливо, доведеться зателефонувати одному або декільком з них і сказати їм, що їм потрібно покращитись і чому ви вважаєте, що вони не вдається. SOme peopel дозволить вам виконувати всю роботу, якщо ви з’єднаєтесь і зможете; не дозвольте це просто так, як це легше. Якщо людина не може виконати свою роботу, вона є доброзичливішою до них і набагато краще для вашої команди, якщо ви не будете їх виконувати, коли очевидно, що вони не можуть чи не навчаться бути більш самостійними.

Пам'ятайте, ви отримуєте те, що очікуєте. Якщо ви не чекаєте багато, ви не отримаєте багато. Очікуйте, що вони блищать, і більшість з них підійдуть до вашого стандарту.


20

Парне програмування звучить як велика можливість тут.

  • Дайте чотирьом з них дві простіші помилки, нехай вони спаряться і кожна пара вирішить одну з них.
    • Сформулюйте цей запит так: "Чи можете ви зрозуміти, що викликає це?". Не змушуйте їх починати думати про те, як це все виправити.
    • Як тільки вони мають певний рівень пояснення, тоді запитайте їх, як це можна виправити. Таким чином вони не будуть переповнені величезною задачею відразу. Дозвольте їм піти і експериментувати з кодом, якщо вони ще не зробили, і коли у них є план - навіть розпливчастий - ви можете направити їх на гарне рішення.
  • Інший, з яким ви можете з’єднатись і почати працювати над одним із найскладніших з ним. Це може бути складніше зважаючи на його недосвідченість у коді, але він також матиме користь того, хто з ним переживає досвід.
    • Я думаю, що нова функція може бути хорошим способом зробити це, враховуючи ваш досвід. Ви можете показати йому існуючий API, коли нова функція розвивається.

Для анекдоту / прикладу цієї пропозиції, що працює: Ось так я познайомився з найсильнішою частиною кодової бази, над якою працюю - з іншим відносно новим розробником, з яким я працював у парі, ми закінчили щось подібне:

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

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


+1. Єдиною проблемою може бути поділ 5 людей на пари по 2 ;-)
Док Браун

@DocBrown Ну, 5 недосвідчених розробників + 1 досвідчений розробник означає, що ви можете скласти 3 групи з 2 (див. Другий головний пункт кулі). Це може стати більш підручником щодо того, який тип коду (інтерфейс користувача, бізнес-логіка тощо) куди йде, але він дізнається інші речі, ніж інші 4. Потім на наступному наборі завдань поверніть поворот.
Ізката

7

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

Простіше кажучи, проблема полягає в тому, що зазначена робоча сила недостатньо кваліфікована, щоб бути дуже продуктивним у виконанні завдань, які вони мають. Таким чином, ви можете або 1) полегшити завдання 2) спробувати підвищити майстерність робочої сили.

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

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


3

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

Редагувати: Може бути доречним згадати Закон Брука в цій ситуації.


2

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

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

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


Це здається марною витратою часу, якщо середовище пісочниці ще не існує.
Рамхаунд
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.