Меня недавно наняли (1-2 месяца) менеджером по разработке программного обеспечения. С тех пор, как я приехал, я обнаружил две проблематичные практики.
Большинство разработчиков начинают с временных контрактов на один год. Платят по рыночным ставкам, но никаких пособий, и им нужно каждый год повторно подавать заявление на работу. Команда разработчиков в основном либо молодая, либо привязана к нашему городу по семейным обстоятельствам, поэтому мастерство разработчиков все еще на высоком уровне. Тем не менее, текучесть кадров также довольно высока, потому что люди начинают искать работу в 8 месяцев (поскольку мы не разрешаем им пробовать и продлевать контракт до 11-го месяца). Однако большинство из них продлевается, если они подают заявку.
Мы используем Scrum в качестве инструмента управления проектами (это был не мой выбор для всех вас, ненавидящих Scrum разработчиков, поэтому я не могу его изменить), в комплекте с баллами от Scrum Master для оценки работы. Проблема в том, что обзоры производительности разработчиков (очевидно, не сделанные мной) проводятся нашим скрам-мастером с использованием баллов, а бонусы основаны на обзорах. Не помогает и то, что наш Скрам-мастер является исполнительным вице-президентом, поскольку проект считается чрезвычайно высоким для нашей компании.
Эти две практики приводят к тому, что группа разработчиков в основном сосредоточена на штамповке кода, мало заботясь о долгосрочной жизнеспособности. Пограничные случаи игнорируются, файлы React.jsx становятся массивными, чтобы сэкономить работу по созданию новых компонентов, и все, что явно не указано в спецификации (от нетехнического владельца продукта, который в основном забывает обо всем, что они видят во внешнем интерфейсе), просто не является включены.
Например, им нужно поле ввода для номера телефона для какого-то редкого случая использования для наших более дорогих клиентов. Ввод будет виден только в очень плохом сценарии, наносящем вред бизнесу. Владелец продукта не указал, что номер должен быть сохранен, и не отправил текстовые инструкции для экстренных случаев (таково было намерение), так что это не так.
Как мне справиться с этим? Я чувствую себя надсмотрщиком, а не менеджером.
Я не хочу давить на своих разработчиков, так как они могут уйти. Дополнительные 5 баллов за спринт (высокая производительность считается выше 18) много для них значат (бонус может составлять 20% от зарплаты).
Менеджмент хочет контроля, так как это наш приоритетный проект развития. Мой менеджер говорит, что его руки связаны высшим руководством. Он сказал, что, вероятно, мог бы получить больше денег для постоянных разработчиков, но на этом все.
HR имеет право продлевать контракты раньше, но не будет, поскольку «мы по-прежнему получаем заявки на программистов, когда публикуем вакансии, поэтому существует большой излишек».
Г-н Скрам-мастер говорит, что он уже дает нам больше свободы действий, чем позволяет Скрам (не очень гибкий, но ладно).
Я спросил одного из моих звездных временных разработчиков, и он сказал, что я «должен остаться, получить хороший проект в своем резюме и уйти, как только наступит конец. Оставьте пылающую кучу дерьма следующему парню. ."
У меня заканчиваются идеи, чтобы попытаться решить эту проблему.
Какие варианты могут существовать, чтобы исправить или смягчить краткосрочную перспективу разработчиков, которая проникает в код?
В комментарии вы уточнили свой вопрос как
какие варианты могут существовать, чтобы исправить краткосрочную перспективу разработчиков, которая проникает в код?
Вместо того, чтобы напрямую решать конкретные проблемы, которые вы описываете (например, как справиться с вашим разочаровывающим скрам-мастером), я думаю, что более ценно сделать шаг назад, уменьшить масштаб и рассмотреть структуру для решения того, что вы считаете проблемами качества на рабочем месте. , в общем.
Проблема с качеством на рабочем месте заключается в том, что во многих ситуациях оно является произвольным и сугубо личным. Вы сами намекнули на это в другом комментарии, когда сказали:
Я из тех людей, которые решают проблемы задолго до того, как другие списывают их как не заслуживающие внимания.
Это говорит мне о том, что у вас, вероятно, более строгая оценка качества, чем у некоторых других, с которыми вы работаете. Различия в восприятии качества или процесса почти всегда приводят к конфликтам, которые возникают у вас. Это легко превратить в спираль аргументов, не фокусируясь на том, что вы на самом деле пытаетесь получить.
Итак, прежде чем пытаться решить какую-либо из ваших конкретных проблем, сделайте шаг назад. Сделайте следующее:
Разработка программного обеспечения (почти всегда) является средством для достижения цели. Качество программного обеспечения и/или типы проблем, с которыми сталкиваются ваши краткосрочные разработчики, могут сильно разочаровать перфекциониста. Это может показаться непреодолимой проблемой. Но, следуя описанным выше шагам, вы можете помочь себе увидеть эти проблемы с точки зрения компании, а не с вашей личной точки зрения.
Это важно, потому что это может привести к одному из двух результатов:
Если вы не можете найти способ сделать «огромный файл React.jsx» соответствующим бизнес-целям, вам нужно перестать беспокоиться об этом. Но если вы сможете показать, что текучесть кадров напрямую связана со способностью вашей компании достигать поставленных целей, тогда вы можете получить некоторую поддержку.
С другой стороны, тот факт, что поле ввода номера телефона не имело желаемой функциональности, звучит так, как будто это серьезная проблема, и ее легко сформулировать в контексте, понятном бизнесу. Но похоже, что это скорее проблема неправильных требований, а не текучки среди разработчиков.
В конечном счете, предприятия не нанимают команды разработчиков программного обеспечения, потому что хотят создавать лучшее программное обеспечение в мире. Они нанимают команды разработчиков программного обеспечения, потому что рассматривают специальное программное обеспечение как способ решения своих бизнес-задач. Таким образом, когда вы, как лидер команды, сталкиваетесь с вещами, которые, по вашему мнению, являются проблемами, лучший подход — проверить себя на предмет соответствия целям компании и бизнес-проблемам.
И затем, если вы все еще уверены, что это проблема, убедитесь, что вы формулируете ее с точки зрения бизнеса, а не с точки зрения чистой разработки программного обеспечения. Компания, которая рассматривает разработку программного обеспечения как товар — средство для достижения цели — не будет легко рассматривать текучесть кадров как серьезную проблему, если вы не поможете им понять, почему, в терминах, которые они поймут, и с решением, которое имеет смысл в их рамках.
Поведение ваших коллег основано на их стимулах. Их стимулы установлены на очень высоком уровне.
Я не знаю, какой у вас опыт или какое место вы занимаете в организации, но, поскольку вы даже не имеете права голоса в процессах, используемых для разработки, я не думаю, что вы занимаете место со значительной организационной властью. (Кстати, вы, ребята, используете самую темную форму Dark Scrum, о которой я когда-либо слышал). Ты супер новенький. У тебя нет союзников. Ваш менеджер либо фаталист по этому поводу, либо ему все равно. Ваша организация настолько дисфункционально устроена, что именно HR (т.е. административный персонал) решают, как относиться к разработчикам.
Так что, действительно, у вас есть один вариант:
Продолжайте работать здесь, пока у вас не появятся навыки и опыт, чтобы работать где-то лучше, а затем сделайте это. А может лучше скрин компа.
Это именно то, что сказал ваш "звездный временный разработчик", потому что это умная реакция на среду, в которой они находятся.
Я чувствую, что большинство (если не все) разработчиков являются временными работниками, это должно было быть красным флагом еще до того, как вы присоединились.
Как предложил @AndreiROM (я не привык к этикету тегов StackOverflow), лучшей альтернативой было бы «предоставить этим людям управлять своим цирком так, как они хотят».
Проблема, похоже, в корпоративной культуре. Если нет сильной, определенной группы разработчиков, которая может навязывать стандартные методы и определенные ожидания от кодирования, это означает, что лодка неправильно поставлена на якорь, и это вопрос времени, пока она не дрейфует на берегу.
Или:
Получите хороший проект, чтобы добавить его в свое портфолио, и выйти из него в краткосрочной перспективе
или...
Попробуйте внести существенные изменения в масштабах всей компании.
Вариант A, вероятно, лучший вариант в целом, и он освободит вас от поиска других вариантов.
Вариант Б, с другой стороны, будет означать, что вы готовы и способны идти против течения и попытаться найти постоянных разработчиков и избавиться от уже существующего технического долга. Этот вариант может стать хорошей историей героя, чтобы попытаться подняться по лестнице, если это то, что вам нужно. Но я бы посоветовал против.
Мне кажется, что вы разыгрываете проигрышную руку:
Проще всего было бы начать искать новую работу, а этим людям (сумасшедшим?) пустить свой цирк, как им вздумается.
Однако, если вы хотите остаться на некоторое время, вы можете установить некоторые долгосрочные цели в отношении того, что вы хотите улучшить, и начать продвигать небольшие постепенные изменения.
Например, боритесь за то, чтобы иметь в штате пару технических специалистов (на полную ставку) и отправляйте их на собрания по сбору требований, чтобы временные разработчики получали лучшие спецификации. Или просмотрите требования самостоятельно, прежде чем работа будет выполнена (это может быть хорошим временным решением).
Медленно подталкивайте к большему количеству разработчиков на полную ставку или привлекайте тех, кому нужно сосредоточиться на проверке качества кода временного работника. Попросите тех, кто выполняет обзоры, начать включать качество кода в свои критерии и т. д.
Одним из важнейших моментов является то, что вы должны установить очень прочные линии связи с мастером схватки, кем бы он ни был, и заставить его понять, что вы должны участвовать в том, что делается (обсудите пересмотр требований перед спринтами и т. д.). Вы двое должны быть союзниками, следя за тем, чтобы проделанная работа была актуальной и ориентированной на будущее, а не просто за тем, чтобы разработчик достиг своей нечеткой цели.
Со временем вы можете создать «достаточно хорошую» ситуацию, которая позволит вам справиться с накопившимся техническим долгом.
У разработчиков нет никаких преимуществ, чтобы делать все правильно. Однако есть и преимущество в том, чтобы делать что-то быстро — бонус. Я не видел никаких штрафов за некачественную работу и добавил тот факт, что их контракт может быть продлен или не продлен через x месяцев, и вы фактически лишили разработчиков стимула делать все правильно.
Определите, что важно для вас/компании, и соответствующим образом структурируйте свою систему вознаграждения. Ваша текущая система вознаграждений ценит скорость доставки, а не ее качество.
Солнечный Майк
они не ловят жуков
они не ловят жуков
Даниэль
они не ловят жуков
они не ловят жуков
Стефан Бранчик
магия