Как продемонстрировать руководству, что посредственные разработчики вредят команде [закрыто]

82

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

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

Этим разработчикам не хватает навыков не только с концепциями программирования, но и в целом способности формулировать решение проблемы в коде. Для них сложно создавать простые вещи, такие как циклы написания, не говоря уже о разработке и реализации решения проблемы.

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

Другой старший разработчик и я не знаем, что делать, но наша продуктивность ограничивается ежедневной работой с этими людьми. Руководство вынуждает нас дать им работу, и их главная жалоба заключается в том, что все делается недостаточно быстро.

Никто из нашей управленческой команды не работает напрямую ни с одним из разработчиков, кроме меня и другого старшего разработчика. Руководство нетехническое и считает, что все разработчики созданы одинаково, и что нам, очевидно, нужно больше людей для выполнения этих проектов, чтобы они выполнялись быстрее.

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

Какие еще ресурсы есть? Книги, статьи, общие советы были бы полезны.

deleteme
источник
20
В доводчике: Да ладно! Получить контроль!
Питер,
6
Недостаточно добавить этот вопрос в избранное. Я должен установить его в качестве обоев.
Манос Дилаверакис,
5
блин, я должен проголосовать за закрытие, но мне нравится вопрос :(
IAdapter
3
Одна очень важная вещь, которую вы должны сделать, - это убедить руководство в том, что вы и / или ваш старший партнер-разработчик имеете право голоса в отношении того, кого нанимать (увольнять или наказывать). Если вы должны нести ответственность за их руководство, вы должны иметь хоть какое-то право голоса в том, являются ли они частью вашей команды.
Майкл Тодд,
5
Проголосовали за закрытые, субъективные и аргументированные. Должен быть вики сообщества, если люди просто хотят высказаться.
Джо

Ответы:

26

Происходит ли проблема из-за отсутствия навыков или способностей, проблем с отношением со стороны программистов или из-за корпоративной культуры, которая не способствует хорошей рабочей этике?

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

Если это лень или другие проблемы с отношением со стороны программистов, вам придется убедить свое руководство поддержать вас дисциплинарными мерами. Задокументируйте все проблемы, как описывает Скотт Веркуски . Постепенно отгоняйте тех программистов, которые не могут соответствовать требованиям. Сообщите остальным программистам, что они должны изучить хорошие методы программирования и лучшие практики и использовать их.

Проведите обзор кода, если вы этого еще не делаете. Есть много ресурсов, которые объясняют, как это сделать правильно. Они не должны быть спичками, а должны рассматриваться как стратегические сессии для достижения желаемых результатов. Обсуди код. как это может быть улучшено? При необходимости напишите новый код в обзоре.

Если проблема в управлении, скажите им, что проблема в них, и покажите, как они могут ее исправить. Но вы должны быть красноречивыми и убедительными. Вы должны быть их защитником. Напишите статью о проблеме. Сделайте презентацию и покажите ее. Обращение к мотивам наживы.

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

Роберт Харви
источник
Интересует здесь Роберт. Есть ли у вас какие-либо ссылки или ресурсы на тему «Как не проводить проверку кода»? Я спрашиваю, потому что считаю, что на днях я был в одной из тех, что ужасно пошли не так ... Мне нужна внешняя документация, когда я обращусь к руководству (снова) об этом старшем инженере. (Я даже зашел так далеко, что отверг сценарий другого старшего, с которым когда-то работал, и он согласился с тем, что полученный мной ответ «казался немного неправильным».)
Джейсон Д.
@Jason: Не уверен, что произошло при обзоре кода, но эта статья может дать некоторое представление: it.toolbox.com/blogs/puramu/…
Роберт Харви,
не совсем то, на что я надеялся, но он указал на другие фундаментальные недостатки в том, как мы проводим процесс проверки. (например, отсутствие "взрослой" / не имеющей права стороны в качестве ведущей проверки ...) Я буду использовать эту ссылку среди других, чтобы обсудить улучшения в нашем процессе проверки кода с руководством и использовать свой недавний личный опыт в качестве пример того, почему здесь должен присутствовать беспристрастный посредник ...
Джейсон Д.
32

Забавно, никто не сказал вам, что, возможно, вам не хватает управленческих навыков.

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

Может тебе стоит пройти обучение.

Может, тебе стоит прочитать отчет о тебе .

Я говорю это не для того, чтобы напасть на вас. Не за что. Я очень хорошо понимаю проблему, потому что раньше мне тоже не удавалось управлять командами.

Но не уворачивайтесь от мяча, вы несете основную ответственность за то, что происходит в вашей команде, независимо от того, сколько хорошей практики вы прочитали в своей жизни.

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

Наконец, я могу ошибаться. Может, ты все сделал правильно. В таком случае вы можете и, вероятно, должны уйти в отставку. Пытаться предотвратить падение самолета движением рук бесполезно, независимо от того, насколько вы сильны. Есть много случайных команд, которые творят чудеса с вашими навыками, чтобы максимально использовать свои навыки.

e-satis
источник
6
Я не понимаю, почему люди проголосовали против вас. Вы поднимаете вескую точку зрения, что лидеры / менеджеры, которые развиваются из обычных инженеров, почти никогда сами не проходят обучение тому, как управлять людьми. Старое заблуждение «ты великий инженер, значит, станешь отличным менеджером».
Эрих Мирабал,
1
Ну, потому что это не политически корректно говорить кому-то, кто просит о помощи, что, возможно, он является причиной его ситуации. Должен сказать, мне самому не нравится, когда мне это говорят, но обычно это полезный электрошок.
e-satis,
4
Спасибо, что указали на это - и я тоже не получил голосов против. Я никогда не проходил никакого управленческого обучения. Я попал в это (опасное) положение без какого-либо предыдущего опыта. Я полностью признаю, что могу быть частично виноват. Я (не раз) просил нанять настоящего менеджера по разработке, человека с опытом руководства командой разработчиков. Запрос, похоже, остался без внимания.
1
Я нашел несколько действительно хороших советов по управлению на manager-tools.com. У них есть подкасты, разделенные на полезные темы. Может, ты найдешь там что-нибудь, чтобы тебе помочь.
Пол Хильдебрандт,
@Paul - спасибо, обязательно посмотрю!
15

Документация - ваш самый большой ресурс ... один мой старый менеджер сказал мне: «Если вы не запишете это, этого не произойдет». Если ваши разработчики дают вам письменную оценку времени, необходимого для выполнения задачи, и постоянно (и сильно) пропускают эти сроки, это должно быть задокументировано.

У вас есть какая-то система хронометража? или разработчики регистрируют свое время? Если они заявят, что проблема займет у них X дней, а по прошествии X дней это не будет сделано, вы можете спросить, почему это не было сделано.

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

Удачи тебе, боюсь, ты на очень трудном пути ... Я был там, и это долгий процесс.

user26901
источник
Мы используем систему учета времени и инструмент отслеживания ошибок, но у меня нет доступа для просмотра времени других людей. Я обязательно начну более старательно документировать свой опыт.
Если вы соберете достаточно документации об их оценках, вы можете передать эти оценки своему руководителю и попросить его провести сравнение расписания, и оно, надеюсь, покажет, что разработчик рассчитал X дней и потратил X + Y дней на постоянной основе, что даст вам больше боеприпасов. за ваше решение.
2
Если проблема заключается в оценках, знайте, что хорошие оценки требуют времени. Чтобы оценить, сколько времени займет проблема кодирования, вы должны перейти к уровню выяснения того, какие строки кода вам нужно изменить, какие классы и методы вам нужно написать и т. Д., И, конечно, вам нужно учитывать вовремя для тестирования. Хорошая новость заключается в том, что выяснение этих вещей - это то, что вам все равно придется делать, поэтому на самом деле вы не тратите дополнительное время на оценку.
Райан Ланди,
6

Я был в такой ситуации раньше и, безусловно, могу посочувствовать. Я решил выполнить небольшую самостоятельную задачу, которая должна занять у меня или другого старшего разработчика не более 2 дней или около того. Для этой задачи я бы создал множество документации, определяющей, как должно быть реализовано решение, любые изменения в базе данных и т. Д. Затем я сел с разработчиком, дал им подробное руководство по задаче и назначил ее им. со сроком исполнения 1 неделя. В конце недели у вас есть что-то осязаемое, с чем вы можете сравнить их работу: соответствуют ли они спецификации? Как они работают? Сколько ошибок нашло QA? Они каким-либо образом нарушили процесс сборки или разрыва?

Как только это будет сделано, если они потерпели неудачу, у вас будет прямая и конкретная встреча с ними, чтобы объяснить, как они не выполняют свои обязанности. Сделайте то же самое еще один или два раза, и, пока вы документируете и общаетесь по цепочке, вы сможете их вытеснить. Это может быть жестко, но похоже, что вам нужны люди, которые подойдут, а у вас просто нет нужных людей для этого.

Также убедитесь, что вы участвуете в собеседовании с новыми кандидатами.

Джейкоб Г.
источник
5

Мой совет такой:

Если вы менеджер, то у вас должны быть права, соответствующие вашей ответственности. Эти права включают дисциплинарное взыскание ваших подчиненных. Если высшее руководство отказывается предоставить вам эти права, откажитесь от ответственности.

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

Пол Натан
источник
2

Я бы посоветовал внедрить баг-трекер и назначить задачи. Это покажет продуктивность любого члена команды. При первом использовании мы добиваемся организации команды и измерения времени, которое мы тратим на работу над задачами. Что мне понравилось, так это то, что когда кто-то назначал задачу, он отправлял электронное письмо работнику, а копию кому-то еще, чтобы проверить задачу.

Кстати, мы использовали BugTracker.Net .

Нельсон Миранда
источник
У нас есть баг-трекер и система учета рабочего времени, но они не интегрированы. Мы также оставляем на усмотрение отдельного разработчика вводить свое время, потраченное на задачу. Возможно, мне придется посмотреть, сможем ли мы отследить общее время, затраченное между выполнением задания, в системе отслеживания ошибок по сравнению с расчетным временем.
Тогда я бы подумал, что это проблема этики сотрудников, на которой вам нужно сосредоточиться.
Нельсон Миранда,
Похоже, прекрасное место, чтобы проводить 8 часов в день ... НЕТ! С каких это пор мы, программисты, стали заводскими рабочими! Как текучесть кадров в вашей организации и сколько денег вы тратите, потому что не можете приспособиться к человеческой природе! У кого-нибудь из работающих там бывает высокое давление! Единственное, чем вы можете управлять - это потогонная мастерская. Никто, достойный их внимания, не захотел бы работать в такой среде. Ой, пора сделать перерыв на кофе. ;-)
Сэм
2

Интересно, как эти люди вообще попали в компанию:

Этим разработчикам не хватает навыков не только с концепциями программирования, но и в целом способности формулировать решение проблемы в коде.

Им тяжело такие простые вещи, как петли для письма ...

Без сомнения, вашей компании нужно вкладывать больше времени и усилий в наем персонала, как гласит старая пословица: поспешность приводит к расточительству.

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

Петер Перхач
источник
3
Персонал разработчиков не был включен в процесс найма, вот как они попали в него.
2

Я прочитал это некоторое время назад о том, как побуждать программистов быть лучшими.

Ботаник стадо

Энди Джойнер
источник
Замечательная статья. Хорошая связь +1
Smalltown2k
Молодцы, что признали возможность, а не препятствие.
Сэм
1

Вы упомянули, что для своей команды вы «предоставляете отзывы об их работе».

Так:

  1. Сядьте со своей командой.
  2. Раздайте им распечатки этой страницы и скажите, что вы разместили ее о них.
  3. Пусть прочитают.
  4. Попросите их помочь вам решить проблему.
  5. Послушайте и запишите.
  6. Сообщите об этом своей управленческой команде.
user271471
источник
1

Peopleware - еще одна книга, которая должна пополнить ваш список.

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

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

Похоже, вы на правильном пути.

Если вы покажете им жесткие цифры, они увидят вещи яснее - создайте кодирование задания и передайте его нескольким разным программистам, чтобы каждый работал над ним самостоятельно. Сделайте это самостоятельно.

Храните подробную информацию о том, сколько времени занимает каждый из них, сколько дефектов вызывает код.

Покажите цифры высшему руководству, теперь они должны убедиться.

Одед
источник
0

Книга

Код завершен: Практическое руководство по созданию программного обеспечения Стива МакКоннелла

- хороший источник, который может помочь изучить передовой опыт.

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

Затем покажите, как команда лучших разработчиков может повысить рентабельность инвестиций.

Тодд Мозес
источник
OP уже заявляет, что он использует Code Complete. Есть еще хорошие книги?
aaaa bbbb
0

Отчет должен быть кратким. Не делайте его многословным. Представьте, сколько денег они теряют на этом.

Дин Дж.
источник
0

Теперь у нас есть инструмент, который измеряет сложность наших модулей кода. Он работает на наших модулях PL / SQL, но я считаю, что есть инструменты, доступные в других средах.

Повсюду есть различные разделы, но когда некоторые из наших ключевых модулей были помечены как «непроверенные», это стало откровением для руководства.

Мы объединили его с инструментом анализа воздействия, который помогает выявить повторяющиеся функции, и подошли ко всему этому как к оценке «технического долга».

Поскольку мы могли представить это на основе модуля за модулем, было бы легко идентифицировать преступников (мы это сделали, но не сообщили об этом). Как бы то ни было, организация была больше ориентирована на улучшение в будущем, чем на указание пальцем.

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

Джеймс Уайзман
источник
0

Это просто невозможно, если у вас нет хороших отношений с руководством. По моему опыту, если вы попытаетесь форсировать это, у вас могут возникнуть проблемы.

fastcodejava
источник
0

Просто идея.

Я предполагаю, что вы используете системы контроля версий исходного кода, такие как SVN. Поэтому придерживайтесь политики проверки коммитов и отклонения плохих. Затем просто покажите другим менеджерам статистику отклоненных коммитов, чтобы доказать, что посредственные разработчики обходятся компании очень дорого.

Сергей
источник
0

Вот еще одна идея: не чинить то, что ломается. Отправьте его на доработку по электронной почте, сообщив им, что не так и как исправить (только в общих чертах), и руководствуйтесь cc. Обязательно запишите, чтобы руководство понимало, как именно это повлияет на ваш окончательный срок. Это создает для вас документацию о проблемах с производительностью, и некоторые из них могут перестать быть такими плохими, когда им придется исправлять свои собственные беспорядки.

HLGEM
источник