Як ви обеззброїти кодер-кодер? [зачинено]


37

Я знайшов запитання (код ковбоя в команді), але це було більше пов'язане з "кодером ніндзя", а потім із проблемою, яку я маю.

У мене є член команди, який є чистим живим прикладом " Ковбойського кодера ". Я розумію, що люди не можуть змінити людей, але це спосіб змусити його перестати вести себе як "ковбойський кодер"?

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

Так, він швидко "кодує", але його код - це лише помилка генератора. Інші члени команди та я знаходяться у фазі "виправлення помилок", і 80% помилок походять з його коду. Я не хочу виправляти його помилки. І управління сліпе, або не хоче цього бачити, або, можливо, їм подобається його "швидкість".

Чи є спосіб, що я (як його молодший колега за віком, а не його начальник) можу щось з цим зробити?

Як я можу роззброїти цей кодер-кодер?

Я відчуваю, що я останній, хто насправді переймається проектом.


17
Цьому хлопцеві потрібно виправити власні помилки. Чому не кожному розробнику потрібно пройти огляд коду?
програміст

8
Під чиїми повноваженнями він зупинив перевірку коду?
Otávio Décio

14
Отже ... ви не один керуєте цією справою. Це ваша проблема, а не ковбойський кодер.
Otávio Décio

3
Якщо це так, Scrum - це корисний процес для нічого. Коли всі відповідають, ніхто не несе відповідальності, і продукт страждає від ефекту сторожника.
Otávio Décio

7
Але як ми обеззброюємо ковбоїв з "тісною ниткою" ...
Rig

Відповіді:


22

Я бачу кілька варіантів:

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

6

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

Огляди коду не обов'язково вимагають від кодера надіслати роботу на рецензію.

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

Так, він швидко "кодує", але його код - це лише помилка генератора. Інші члени команди та я знаходяться у фазі "виправлення помилок", і 80% помилок походять з його коду. Я не хочу виправляти його помилки. І управління сліпе, або не хоче цього бачити, або, можливо, їм подобається його "швидкість".

Код випливає з вимог. Вимоги призводять до виконання тестів, які можна виконати, що підтверджують, що вимоги виконані. Ці тести можна додатково розбити, і їх можна скласти до того, як будуть внесені зміни, щоб переконатися, що зміни відповідають вимогам (червоно-зелений-рефактор; суть TDD).

Додайте метрику "покриття коду" на сервер збирання вашої команди (сподіваємось, у вас є такий; якщо ні, це ваша перша проблема). Проста перевірка того, що проходять одиничні тести, не призведе до проблем з його новим кодом без TDDed, зробленим у районах, де немає одиничних тестів. Після виконання всіх тестів на одиниці, сервер збірки повинен був в ідеалі виконати кожен рядок коду, але дійсно є деякі речі, які ви просто не можете одинично перевірити. Реально ви все одно можете очікувати 95% покриття або краще (або виключити певні бібліотеки чи типи файлів із покриття). Рано чи пізно ваш ковбой перевірить щось, що порушує збірку, тому що він знизив рівень покриття нижче порогу, і ви зателефонуєте йому.

Що стосується "швидкості", швидкість - це те, наскільки швидко ви робите речі "зроблені", і це не "зроблено", поки це не буде зроблено правильно. Ви можете поставити це своїм менеджерам таким чином; Подумайте про автомеханіка, який, коли менеджер бере свій BMW, щоб отримати масло, він забуває повернути пробку з маслом, і, як результат, все нове масло виливається, перш ніж він навіть виїжджатиме з гаража. Звичайно, зміна масла зайняла лише п’ять хвилин, але менеджер не піде про це піклуватися, коли двигун його машини заїжджає по дорозі додому. Він піклується про те, щоб механік пропустив крок, що коштуватиме йому багато додаткових часу та грошей, щоб зафіксувати. Зараз він платить одному ковбою, щоб зробити роботу дуже швидко, і тоді він s виплачувати решті команди набагато більшу суму, щоб прийти і виконати роботу правильно. У чому, справді, перевага продовжувати дозволяти ковбою робити свою справу?

Чи є спосіб, що я (як його молодший колега за віком, а не його начальник) можу щось з цим зробити?

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

Я відчуваю, що я останній, хто насправді переймається проектом.

клаксони горять, блимають фари, плачуть сирени - якщо ви справді відчуваєте, що ви єдина людина, яка піклується про якість коду, що виробляється командою, то виникає СЕРЕДНА проблема. Якщо ви відчуваєте, що намагаєтесь перетягнути всю команду, що б'є і кричить, в епоху хорошого кодування, і це просто занадто велика вага, щоб тягнути її, тоді киньте її. Якщо в компанії є інша команда, яка робить це правильно, попросіть перерахувати, інакше вийдіть чорт.


5

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

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


4

Чи є спосіб, що я (як його молодший колега за віком, а не його начальник) можу щось з цим зробити?

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


1
Кодер-кодер може бути захищений від тиску, якщо керівництво не зрозуміє його справжнього впливу, вони можуть бути засліплені його сприйняттям.
mhoran_psprep

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

2
@mhoran_psprep - О, звичайно. Я не очікую, що він буде успішним , але я також вважаю, що намагатися виправити речі в іншому випадку є більш ризикованим щодо того, що матиме негативні наслідки. Робити гігантську метушню з цього приводу - це швидкий і простий спосіб змусити себе відвернутись, особливо якщо сприйняття ОП ковбоя неточне.
Теластин

0

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

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


Звичайно, у нас є тонни процесів та документів. Але мова йде про людей, як вони ними користуються .
Адроніус

Але нічого не повинно надходити на виробництво без отримання відповідних знаків. Ти мені кажеш, що він обходить звичайний контроль змін?
темптар

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