Мы наняли младшего разработчика программного обеспечения, который преуспел во всех мыслимых показателях, кроме времени, необходимого им для ручного тестирования кода, который они написали. Недавно мы уволили нашу команду QA и начали ожидать, что разработчики будут проводить собственное углубленное тестирование.
Вот проблема: для определенной задачи по разработке функции, которая потребовала бы у другого среднего/старшего разработчика 2 месяца, плюс встречи и помощь от меня и некоторых других старших инженеров, которые написали кодовую базу, и 3 дня для тестирования. Ему требуется 1 месяц, чтобы самостоятельно написать абсолютно красивый и производительный кодпочти без дефектов и 1-2 недели на тестирование. И он с нами всего несколько месяцев! Руководство начало отслеживать время его простоя (из-за того, сколько времени ему требуется на тестирование), и мы заметили, что он бездействует 50% времени во время циклов тестирования, с чем у руководства большие проблемы, потому что они считают, что он должен работать усерднее и тестировать его функции быстрее... несмотря на то, что он самый результативный член нашей команды... на юниорском уровне... мы также значительно недоплачиваем, учитывая ценность, которую он приносит нашей команде.
Я действительно не хочу терять этого человека, потому что тогда я буду ответственным за его замену... и в настоящее время я считаю его лучшим сотрудником в моей команде. Я также не хочу ничего говорить ему, потому что мы не так много ему платим, и я чувствую, что он, вероятно, уволится на месте (я нахожу его немного вспыльчивым) и найдет новую работу, если я донесите это до него. Замена его кем-то с равными навыками обошлась бы нам в 2-3 раза дороже, чем мы платим ему сейчас. И если мы наймем кого-то еще, мы рискуем тем, что они не смогут выполнять эту работу, и в конечном итоге нам придется их уволить.
Я обсудил это с руководством и попытался доказать, что мы должны вернуть некоторых QA, чтобы сократить время тестирования, но они хотят встретиться с ним и обострить проблемы, которые я абсолютно не хочу делать.
Что мне здесь делать?
У вас проблемы с управлением. И, правда это или нет, вы должны объяснить им, что время, которое он тратит на тестирование, является причиной того, что код так хорош , и поскольку он все еще быстрее других людей, у них есть два варианта:
или даже 3: Поймите, что у них есть очень хорошая вещь, и убедитесь, что у вас есть ресурсы, чтобы сделать его счастливым как можно дольше, с хорошими условиями труда, лучшей оплатой — чего бы это ни стоило. Что он приносит компании достаточно пользы, и они должны заботиться об этом больше, чем о времени, которое он дает отдохнуть во время тестирования. (И я мог бы отметить, что для некоторых людей время простоя абсолютно необходимо для обеспечения высокого качества времени безотказной работы.)
Позвольте мне повторить : если чьи-то пальцы не двигаются, это не значит, что они бездействуют. Ваше руководство, кажется, думает, что измеряет что-то полезное, но полностью игнорирует время, затраченное на размышления, планирование и подзарядку — все это действительно и необходимо. Но, поскольку они кажутся довольно недальновидными, лучше объяснить, что пока он тестирует, он также думает и делает продукт лучше . Это может быть правдой, а может и нет, возможно, он перезаряжается (что делает продукт лучше), но я почти уверен, что ваше руководство не поймет эту концепцию. Возможно, он дурачится, что делает его счастливее и, таким образом, делает продукт лучше. Возможно, он мог бы работать еще эффективнее, а по мере улучшения в тестировании он будет ускоряться.
Почему руководство не смотрит на других разработчиков, которые медленнее и менее продуктивны, чем ваш новый младший разработчик? Попробуйте направить их на других ваших разработчиков. Или почему бы им не протестировать его работу, раз они так быстро с этим справляются?
Здесь довольно много всего происходит, и не так уж много хорошего.
Вы наняли младшего разработчика программного обеспечения, у которого в целом дела идут очень хорошо. Это хорошее начало. Тем не менее, младшие нуждаются в наставничестве, чтобы учиться и развивать свои навыки. Итак, вы взяли младшего разработчика, который может не обладать достаточными знаниями и опытом в хороших методах ручного тестирования, и ожидаете, что он будет высококвалифицированным ручным тестировщиком без какого-либо наставничества или надзора со стороны опытного тестировщика.
Даже без доступа к опытным тестировщикам и тестировщикам по обеспечению качества ваш младший разработчик пишет код с небольшим количеством дефектов. Вдобавок ко всему, они завершают общий пакет работ по проектированию, разработке и тестированию решения за 5-6 недель, когда вы оцениваете, что другому среднему или старшему разработчику потребуется 8 недель, чтобы выполнить эту работу. Они доставляют на 2-3 недели быстрее и, по-видимому, более высокого качества, чем вы ожидаете от более высокопоставленного человека.
Когда дело доходит до оценки, спрашивали ли вы своего младшего инженера, сколько времени потребуется, чтобы выполнить работу? Одно из фундаментальных правил оценки состоит в том, что лучше оценивают люди, наиболее близкие к работе. Хотя, будучи младшими, им может понадобиться некоторое наставничество в хороших методах, чтобы понять и оценить работу. Я также задаюсь вопросом, имеет ли смысл оценивать разработку и тестирование независимо друг от друга или имеет смысл оценивать завершение всего рабочего элемента.
Это приводит к «простою». Измерение «времени простоя» мало что значит в умственной работе. Что значит, что они простаивают 50% времени? Как определяется это число? Возможно, вы захотите еще раз подумать, означает ли это что-нибудь, тем более что работа выполняется быстрее, чем предполагалось.
Я также не понимаю нерешительности поговорить с младшим инженером, чтобы понять, что происходит. Это не обязательно должно быть конфронтация, но такие разговоры должны быть обычным явлением между любым менеджером или руководителем группы и их непосредственными подчиненными или членами команды. Так вы находите и устраняете проблемы.
Я бы также рекомендовал вернуть специалистов по тестированию в той или иной форме. Даже если их роль заключается в том, чтобы помогать контролировать и обучать разработчиков хорошим методам тестирования, а не быть людьми, которые разрабатывают и выполняют все тесты. Тестирование — это специальность и набор навыков, которые есть не у всех. Отсутствие людей, которые могут улучшить местное состояние дел и повысить уровень инженеров вокруг них, может нанести ущерб команде и организации.
Итак, резюмируя:
Это очень просто. В фактической производительности этого молодого разработчика нет ничего плохого. Проблема в том, что его производительность измеряется какой-то довольно глупой метрикой производительности. Поэтому вы просто объясняете ему, что ему нужно сделать, чтобы обойти эти показатели производительности.
Однажды у меня была проблема, когда кто-то подсчитывал, как часто вы возвращали данные в Perforce. Итак, вы тратите две недели на реализацию функции и проверяете ее. Одна проверка за две недели — это невероятно плохая производительность. Как только вам сказали, вы проверяете малейший прогресс, по крайней мере, четыре раза в день. Это 40-кратный прирост производительности.
Я обсудил это с руководством и попытался доказать, что мы должны вернуть некоторых QA, чтобы сократить время тестирования, но они хотят встретиться с ним и обострить проблемы, которые я абсолютно не хочу делать.
Вы неправильно аргументировали.
Если руководство хочет, чтобы разработчики занимались контролем качества, и вы не можете изменить их мнение, на этом все. Вам нужно работать с тем, что у вас есть.
Вместо этого вы должны были подчеркнуть, что разные разработчики имеют разные сильные стороны и что разработчик отлично справляется с предоставлением функций в целом.
Стоит отметить, что здесь действуют два фактора. Конечно, они немного медленнее при тестировании, но это усугубляется тем, что они работают быстрее во время разработки.
Но вы можете обратить это в плюс:
В зависимости от того, какое тестирование предполагается, было бы неплохо поощрять его чаще переключаться между написанием кода и тестированием (например, писать в течение недели или закончить небольшую часть функции, а затем протестировать ее). Вы упомянули, что нашли его немного вспыльчивым — возможно, в этом случае было бы лучше попытаться убедить руководство в том, что его текущая работа уже хороша. (Тем более, что он джуниор — откровенная попытка выжать больше работы из младшего разработчика, который уже работает лучше, чем его старшие, без прямого продвижения по службе — это верный способ выгнать его из компании, а это совсем не то, что вам нужно. )
Филип Кендалл
Джефф
по четвергам
Джефф
Сет Р
We recently let our QA team go and have started to expect developers to do their own in-depth testing
- Здорово! Это само по себе красный флаг. Разработчики не тестировщики, это другая дисциплина. Они также никогда не должны нести ответственность за контроль качества кода, который они написали сами. Они пропустят те же самые ошибки, которые пропустили, когда писали это.Исаак Корбри
Джо Стивенс
Джокверти
Стив
ДэйвГ
скрежет729
Джоэл Этертон
Let go of our QA team
,tracking his idle times
,we considerably underpay him
,hope I don't have to fire him [the highest performer]
. Это должно быть вопрос тролля. Я не понимаю, что человек или компания могут быть настолько плохи в управлении и настолько бессознательны.Грегори Карри
Марк Роттевил
Юха Унтинен
Дэн Машек
Дэниел Р. Коллинз