Що відбувається з програмістами, яким не вистачає командної роботи?
Тоді стає важко працювати над надто великими проектами для одного програміста. Складний для сольного програміста і складний для решти команди.
З чого починаються проблеми?
Всілякі місця. Наразі у нас є єдиний програміст, який погано працює у складі команди. Він прагне робити короткі скорочення, які негативно впливають на решту програми, оскільки він занадто вузько зосереджений на виправлення помилки перед собою. Або записати нову функцію таким чином, щоб вона не була сумісною з рештою програми. Ми повинні переставити речі так, щоб кожну реєстрацію його коду переглядала решта команди. Але щоб не виділити його, ми також перевіряємо реєстрацію коду всіх інших, тому поряд із ранковою зустріччю зі статусом ми не отримуємо жодної роботи до обіду. Тож у нас в офісі це означає, що 4 людини щодня втрачають 1/2 дня роботи, оскільки один хлопець невдалий у командній роботі. Я не можу сказати, що це поліпшення порівняно з попередніми пригодами, тому що ми могли випадковим чином втратити день на тиждень (як правило, переслідуючи нових помилок) від його реєстрацій, які ламають речі (ми називаємо їх "розбійними крадами"). Деякі виправлення його коду в кінцевому підсумку очистять півдюжини помилок через те, наскільки заплутаною та безладною є програма (моя рекомендаціязапустити його з орбіти і почати заново, оскільки це єдиний спосіб бути впевненим, що його не прийняли).
Коли ми в великому настрої, ми називаємо його "програмістом з голови вниз", чи він схильний дивитися вниз на клавіатуру і вводити реально швидко. Він не звертає уваги на те, що роблять інші.
Чи хороший програміст компенсує хоча б трохи?
Ні. Більшість програмістів, які є поганими гравцями команди, мають дуже високу думку щодо власних навичок, і це називається ефектом Даннінга-Крюгера . PDF паперу.
Можливо: соло програмісту потрібно було б набагато краще, ніж решта команди. Але це просто означає, що ніхто більше не може підтримувати те, що він робить; і коли це трапляється, це, ймовірно, означає, що програміст соло насправді не набагато кращий за решту команди - він (і це майже завжди хлопець) просто краще обдурити всіх.
У розробці програмного забезпечення для бізнесу компанія буде довгий час після того, як ви поїдете. Програми, швидше за все, були написані до початку роботи, і вони підтримуватимуться довго після того, як ви підете. Якщо ви пишете речі, які є настільки особливими та дивовижними, що ніхто більше не може їх зрозуміти, то ви опинитесь у ситуації, в якій Naughty Dog - їхній провідний розробник кинеться, ніхто більше не розуміє власну мову програмування, яку написав хлопець (і написав речі в), тому їм зараз доводиться перемикати все на C ++.
Чи нормально програміст мати бачення своєї роботи, а не просто робити те, що йому кажуть?
Він поширений - як затор або діабет. Я б не називав це нормальним. У корпоративному світі є багато іншого, що слід розглянути; сильне его, як правило, багато розробників змушує розробника думати, що нічого іншого не має. Ця «відсутність пристосованості» та недостатня увага для решти бізнесу є причиною, що так багато типів менеджерів приходять до висновку, що розробникам програмного забезпечення важко працювати.