Гаразд, як ведучий, ваша робота - виводити проекти з дверей. Таким чином, ви повинні бути тим, хто застосовує стандарти, перевіряє код, запитує звіти про прогрес та всі ті речі, коли розробники бажають, щоб ви залишили їх у спокої. Ці речі - лише вимоги управління, за винятком оглядів коду, насправді не підвищують навичок працівників.
Однак ви хочете допомогти їм рости, що є чудовим атрибутом лідера.
Огляди коду, безумовно, перший крок, вони допоможуть вам побачити, хто має менше, ніж зоряні скіли та потребує вдосконалення, щоб мати навіть задоволення. Вони допоможуть розробникам побачити інші способи робити речі та розуміти різні частини бази коду, ніж ті, над якими вони особисто працювали. На мою думку, огляди коду найкраще проводити особисто в конференц-залі з розробником та рецензентом (хто повинен бути іншим розробником, коли це можливо, не завжди ведучий, перегляд коду інших людей - це також навичка, яку потрібно розвивати), і ви як модератор. Вам слід вести примітки про те, що потрібно змінити, щоб визначити тенденції. Те, що ви насправді шукаєте, - це не помилки чи зміни (код кожного можна вдосконалити), а послідовне неспроможність вчитися на помилках. Не кажіть керівництву, що ви зберігаєте ці примітки, або ви змусите себе використовувати їх як вимірювання в процесі огляду ефективності, що відверто перемагає мету. Якщо кілька розробників роблять однакові помилки, навчальний сеанс або вікі про те, як зробити X, може бути в порядку.
Тепер про зростаючу пороку виходу на мінімальний рівень. По-перше, ви повинні знати, які навички розробники мають та які навички може бути корисним, що вони мали, і чим вони можуть бути зацікавлені в отриманні знань. Вам потрібно поговорити з ними та переглянути їх резюме та зрозуміти, що їм подобається та не люблю робити.
Не давайте всі цікаві завдання лише найкваліфікованішим. Це не допомагає іншим швидко прискорити нові проблеми та технології. Ви не можете перейти від наймолодшого хлопця, отримуючи лише найменші та найважливіші завдання для старшого хлопця, якщо хтось не ризикне і не призначить на вас складнішу роботу. Зважаючи на це, менш досвідченим, можливо, потрібно буде призначити перше, щоб поєднати програму зі старшим, щоб отримати більш високі навички. Включення юніорів до оглядів коду також піддасть їх більш досконалим прийомам.
Спершу дайте їм шанс розібратися в проблемі самі. Але іноді люди застрягають і не знають, з чого почати (навичка, яку також потрібно розвивати особливо у нових програмістів) або що робити, щоб вирішити проблему.
Якщо ви дасте їм пару днів на те, щоб щось вивчити, і вони все ще не мають вказівки щодо того, як вони будуть щось робити, то, можливо, вам знадобиться втрутитися в деякі пропозиції. Якщо ви самі технічні, можете дати їм кілька ідей щодо вирішення проблеми. Якщо ні, то зустріч з кількома людьми, де ви задумуєте ідеї, може допомогти, якщо людина застрягла. Або попросити досвідченішу людину дати якісь пропозиції. Що ви не хочете робити, це відібрати проблему від них і вирішити її самостійно. Але вам потрібно збалансувати виконання проекту з егоїзмом програміста, і часом вам потрібно направити їх у певному напрямку. Якщо у нього погане рішення, і це потрібно виправити, найгірше, що ви можете зробити, - це дати комусь іншому, якщо ви не маєте наміру звільнити програміста.
Я бачив, як погані програмісти чіпляються, де хтось інший має виправити майже все, що вони роблять. Інші програмісти обурюються цим і просто хочуть людину зі свого життя. Напруження поганого програміста призводить до відходу хороших програмістів. Ви повинні знайти межу між навичками кодингу та девлопінгу. Якщо ви даєте комусь кілька шансів, і він ніколи не покращиться, тоді відріжте його або її вільно.
Для людей похилого віку, які вже є компетентними у своїх нинішніх наборах навичок, все простіше. Зазвичай потрібно просто дати їм можливість зробити щось нове, і вони заскочать і навчаться цьому. Просто переконайтеся, що цікаві можливості поширюються навколо, і не всі звертаються до програміста Джо Чудо, який може все виправити. Ви хочете закінчити десять Joes не один.
Ще один спосіб розвитку навичок - це щотижневе 1-годинне тренування. Зробіть кожного розробника відповідальним за певну тему. Це допоможе їм покращити спілкування, змусить їх дослідити щось глибше і дасть всім користь у своїх дослідженнях. Деякі теми слід призначати людям, які не знайомі з цією темою, щоб змусити їх здобути певні знання з цього питання, а деякі слід призначити людям, яких ви знаєте, місцевим експертам з цієї теми. Теми повинні бути комбінацією речей, з якими вам потрібно, щоб люди були хорошими в найближчому майбутньому чи прямо зараз, а також деяке висвітлення нових майбутніх технологій, які ви зараз не використовуєте, але люди знову зацікавились, щоб дізнатися, чи можуть вони бути корисними. Але всім, включаючи наймолодших, слід призначити тему.
Залежно від того, як розраховується час ваших розробників (це складніше в ситуації з оплатою клієнтів), розробникам зазвичай варто мати 4-8 годин на тиждень для роботи над особистими проектами. Вони будуть раді цього зробити. Найкращі люди захочуть працювати там, і вони навчаться багато, що стане корисним у майбутньому. Лічильникам квасолі важко зрозуміти необхідність цього, але цей час буде окуплено багато разів за задоволення співробітників, нові функції або програмне забезпечення, яке нікому не потрібно (або яке допоможе автоматизувати частину вихованості) та швидший розвиток завдяки засвоєні нові методики. Деякі розробники використовуватимуть цей час строго для особистих проектів, не пов’язаних із тим, що ви робите (і це добре, вони все одно набуватимуть навичок та будуть раді за можливість), але багато інших будуть використовувати його для вирішення стійких проблем, які, в силу характеру управління проектами, ndbody встигли заздалегідь виправити. Таким чином, ви можете отримати рефактори, які приносять користь усім; деякі люди можуть написати тести, щоб поліпшити охоплення тесту, щоб зробити його простіше; деякі інші можуть вивчити деякі нові функції, які можуть зробити ваше програмне забезпечення кориснішим для своїх клієнтів. Взагалі, якщо ви зможете переконати лічильники бобів, втратити немає можливості, дозволивши їм цю свободу.
Ви повинні навчитися балансувати, щоб люди могли трохи розтягувати свої навички та підтримувати проект на шляху. Чим менше досвідчений розробник, тим більше кому потрібно перевіряти прогрес, особливо на ранніх етапах, коли змінювати напрямок простіше. Недосвідчений може боротися і боятися говорити. Ці люди, як правило, виїжджають безпосередньо перед запуском, і ви виявите, що їх частина проекту не десь близька до виконання. Будьте особливо уважні, щоб перевірити прогрес у всіх, хто у вас часто міняв роботу (якщо вони не були підрядником, оскільки це характер договорів).
Досвідченішим людям, як правило, можна довіритись, коли вони матимуть проблеми, коли вони знайдуть рішення та потребують допомоги у когось, хто має більше знань у цій галузі, або вони шукатимуть цю людину та отримають передачу знань. Таким чином, за ними не потрібно уважно стежити за початковими фазами вивчення нового набору навичок для проекту. Вони знайдуть спосіб здійснити проект. Тим, хто має досвід роботи, зазвичай можна залишити в спокої, за винятком мінімальних звітів про хід роботи (зазвичай потрібно також звітувати перед керівництвом, і тому потрібна певна інформація).