Як продемонструвати керівництву, що посередні розробники завдають шкоди команді [закрито]


82

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

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

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

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

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

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

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

Які ще ресурси є? Книги, статті, загальні поради будь-що було б корисно.


20
У доводчиках: Давай! Отримати контроль!
Пітер

6
Додавання цього запитання до вибраного недостатньо. Я повинен встановити його як шпалери.
Манос Ділаверакіс,

5
блін, я повинен проголосувати, щоб закрити, але мені подобається питання :(
IAdapter

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

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

Відповіді:


26

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

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

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

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

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

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


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

@Jason: Не впевнений, що трапилось під час перегляду коду, але ця стаття може надати деяку інформацію: it.toolbox.com/blogs/puramu/…
Роберт Харві,

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

32

Забавно ніхто не говорив вам, що, можливо, вам бракує управлінських навичок.

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

Можливо, вам слід пройти навчання.

Можливо, вам слід прочитати звіт про вас .

Я не кажу, щоб нападати на вас. Зовсім не. Я дуже добре розумію проблему, оскільки в минулому мені також не вдалося керувати командами.

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

У такому випадку припиніть скаржитися і приступайте до роботи. Не як кодер, а як менеджер.

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


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

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

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

1
Я знайшов кілька справді хороших порад щодо управління на manager-tools.com. У них є подкасти, розділені на корисні теми. Можливо, ви можете там знайти щось, що допоможе вам.
Paul Hildebrandt

@Paul - дякую за це, я обов'язково перевірю це!

15

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

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

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

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


Ми використовуємо систему відстеження часу та інструмент відстеження помилок, але я не маю доступу для перегляду часу інших людей. Я неодмінно почну старанніше документувати свій досвід.

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

2
Якщо проблема полягає в оцінках, усвідомлюйте, що хороші оцінки потребують часу. Щоб оцінити, скільки часу триватиме проблема з кодуванням, вам доведеться спуститися до рівня з’ясування того, які рядки коду вам потрібно змінити, які класи та методи вам потрібно написати тощо, і звичайно, вам потрібно врахувати фактори вчасно для тестування. Хороша новина полягає в тому, що з’ясувати ці речі - це те, що вам все одно довелося б зробити, тож ви насправді не витрачаєте зайвого часу на оцінку.
Ryan Lundy

6

Я вже був у цій ситуації і, безумовно, можу співчувати. Я зробив, щоб усунути невелике, замкнуте в собі завдання, яке повинно зайняти мене чи іншого старшого розробника не більше ніж через 2 дні. Для цього завдання я б створив збірки документації, що визначають, як слід впроваджувати рішення, будь-які зміни бази даних тощо. Потім я сідаю до розробника, даю їм проходження завдання на високому рівні та призначаю їм з кінцевим терміном 1 тиждень. Наприкінці тижня у вас є щось відчутне, з чим можна порівняти їх роботу: чи вони зустрічались із специфікацією? Як вони зроблені? Скільки помилок виявила система контролю якості? Вони якось порушили процес побудови або перерви?

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

Також переконайтеся, що ви берете участь у співбесіді з новими кандидатами.


5

Моя порада така:

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

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


2

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

До речі, ми використовували BugTracker.Net .


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

Тоді я думаю, що це питання етики працівників, на якому вам слід зосередитися.
Нельсон Міранда

Звучить як чудове місце, де можна проводити 8 годин на день ... НЕ! З якого часу ми, програмісти, стали робітниками заводу! Як потік кадрів у вашій організації та скільки грошей ви витрачаєте, бо не можете прийняти людську натуру! У когось, хто там працює, високий кров'яний тиск! Єдине, що ви можете впоратись - це свитшоп. Ніхто, вартий їх солі, не захотів би працювати в такому середовищі. На жаль, час моєї кава-брейку. ;-)
Сем

2

Цікаво, як ці люди взагалі потрапили в компанію:

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

Прості речі, такі як написання циклів, для них важкі ...

Без сумніву, вашій компанії потрібно вкласти більше часу та зусиль у набір робочої сили, як каже стара приказка: поспіх робить марнотратством.

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


3
Співробітники розробки не були включені в процес найму, ось як вони потрапили.


1

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

Так:

  1. Сідайте зі своєю командою.
  2. Роздайте їм роздруківки цієї сторінки та скажіть, що ви опублікували це про них.
  3. Нехай читають.
  4. Попросіть їх допомогти вам вирішити проблему.
  5. Послухай і запиши.
  6. Віднесіть це до своєї управлінської команди.

1

Peopleware - це ще одна книга, яка має приєднатися до вашого списку.

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


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

0

Здається, ви на правильному шляху.

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

Зберігайте деталі того, скільки часу займає кожен, скільки дефектів створює код.

Покажіть цифри вищому керівництву, вони тепер повинні переконатися.


0

Книга

Code Complete: Практичний довідник з побудови програмного забезпечення Стіва Макконнелла

є хорошим джерелом, яке може допомогти засвоїти найкращі практики.

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

Потім покажіть, як команда кращих розробників може покращити рентабельність інвестицій.


OP вже заявляє, що він використовує Code Complete. Ще якісь хороші книги?
aaaa bbbb

0

Зберігайте звіт стислим. Не робіть це багатослівним. Поставте це з точки зору того, скільки грошей вони втрачають на цьому.


0

Зараз у нас є інструмент, який вимірює складність наших модулів коду. Він працює на наших модулях PL / SQL, але я вважаю, що є інструменти, доступні в інших середовищах.

Існують різні розділи, але це привернуло увагу керівництва, коли декілька наших ключових модулів були позначені як "неперевірені".

Ми поєднали інструмент аналізу зображень, який допомагає виділити дублікати функціональних можливостей, і підійшли до цього всього як до оцінки „технічного боргу”.

Оскільки ми могли б представити це на основі модуля, виявити винних було б легко (ми це зробили, але не повідомили про це). Як би там не було, організація була спрямована на вдосконалення вперед, аніж вказівку пальцем.

(Окрім того, весь код зараз подано на перевірку, і має бути наданий супровідний аналіз коду. Тут справа, безумовно, покращується.)


0

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


0

Просто ідея.

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


0

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

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