Предыстория: я был стажером на моем нынешнем месте работы в течение года, до мая, когда меня наняли на полную ставку. Я программист и разрабатываю в основном мобильные приложения, но также и веб-приложения. С тех пор мы наняли несколько стажеров, и двое из них находятся в моем подчинении. Причина здесь в том, что мой начальник хочет, чтобы я научился делегировать полномочия и закреплять полученные знания, обучая этому другого человека.
Итак, контекст таков, что я дал своему стажеру важное, но небольшое задание. Он должен был что-то запрограммировать в проекте, над которым я работаю. Либо он неправильно понял задание, либо я недостаточно хорошо объяснил его, но он сделал это неправильно. Его работа пока не завершена, но из того, что он написал, я могу сказать, что она не будет работать и что он неверно истолковал задачу (или она была недостаточно хорошо объяснена), и способ, которым он выполнял неправильную задачу, был нехорош. В его защиту скажу, что он учится на втором курсе колледжа, а я закончил его, так что у меня впереди несколько лет обучения и целый год опыта работы. Я хочу удалить его код, написать свой собственный и объяснить ему, как и почему я запрограммировал его таким образом, но я не хочу, чтобы он чувствовал себя глупым или чувствовал себя побежденным из-за неудачи. Причина, по которой я беспокоюсь, что он может чувствовать себя тупым, заключается в том, что я понятия не имею, как он хотел, чтобы это сработало, а также потому, что мне кажется, что это глупый способ сделать это, но я прекрасно осознаю тот факт, что я тоже писал глупости. во время моей стажировки, и я все еще пишу глупости по сравнению со многими другими людьми. Тем не менее, он потерпел неудачу. Мы все терпят неудачу в тот или иной момент.
Итак, как мне взять на себя его задачу и объяснить, как сделать это правильно, чтобы он не чувствовал себя побежденным из-за неудачи?
Лучше всего спросить его об этом: «Давайте посмотрим, что вы сделали для функции X. Каков был ваш общий план? Как вы собирали входные данные, обрабатывали их, производили вывод? Почему вы сделали ABC таким образом?». Как наблюдатель это не должно быть обвинительным. Это создает диалог, в котором вы можете увидеть, каков их план, и позволяет вам спросить их об их решении препятствий, с которыми они столкнутся.
Может быть, у них есть блестящее решение, которого вы не видите, может быть, они не понимают предстоящего препятствия. Вы не можете знать, пока не поговорите с ними.
Если у них нет удовлетворительного решения для данного периода времени, тогда это не должно быть суровым. «У нас сжатые сроки, поэтому я возьму это на себя. Это была хорошая попытка, я совершил аналогичную ошибку, когда был стажером. Пожалуйста (укажите другое задание)».
Одним словом... не надо. (Да, хорошо, это сокращение.)
Вы заявили, что курируете этих стажеров, потому что ваш начальник хочет, чтобы вы научились делегировать полномочия. Это нечто большее, чем просто «Вот работа, иди и сделай». Если вы возьмете на себя работу стажера сейчас, мне кажется, вы не научились тому, чему ваш босс хотел, чтобы вы научились.
Вы признали, что были проблемы со связью. Чтобы научиться делегированию, вам нужно научиться более эффективно общаться. Цикл общения включает в себя рассказ, слушание, обратную связь и исправление/пересказ; в этой последней части цикл начинается заново и продолжается столько, сколько необходимо. Похоже, что до сих пор вы пытались использовать только первые две части. Однако вам нужны вторые две части для обеспечения точной связи.
Я предлагаю вернуться к стажеру и сообщить ему, что вы двое неправильно общались. Просмотрите, каким должен быть проект, и убедитесь, что стажер хорошо его понимает; не позволяйте ему просто сказать: «Да, я понимаю». Попросите его повторить (своими словами), что он должен делать, и внести необходимые исправления. Затем попросите его составить план и просмотреть его, прежде чем он начнет программировать. Кроме того, сохраняйте непредубежденность; его подход не обязательно неправильный, просто потому, что это не то, что вы бы сделали; конечно, возможно, его подход не сработает, но ваша задача - подвести его к рабочему решению, а не делать это самому.
Никогда не выбрасывайте и не переписывайте код для кого-то другого. Если человек работает на вас, сядьте и объясните, что было не так и чего именно вы хотите, а затем заставьте его переписать, пока он не исправит это.
В противном случае вы будете делать и свою работу, и их, а они останутся некомпетентными. Многие люди расстраиваются, когда это происходит, потому что они не понимают, почему это было переписано, и просто предполагают, что все, что они делают, будет переписано, потому что Джо помешан на контроле, а не потому, что у него есть проблемы.
Они не становятся лучше, когда вы делаете это, и это оказывает им большую медвежью услугу. Это также означает, что вы неправильно делегируете полномочия и что вы будете перегружены, а они будут счастливо двигаться вперед, думая, что они молодцы, а вы придурок. Обучить кого-то труднее, чем переписать. Но как только вы взяли время пару раз. тогда вы получите улучшение, потому что очень немногим людям нравится переделывать свою работу.
Теперь может случиться так, что вам нужно сесть с этим человеком и составить парную программу, если у него действительно очень мало знаний. Но в этом конкретном случае вы заставляете их придумать решение и просто останавливаете стажера, когда он начинает двигаться в неправильном направлении. Вы продолжаете задавать такие вопросы, как «Почему вы выбрали этот метод? Рассматривали ли вы... библиотеку? Как вы думаете, какое влияние это окажет со временем?» и т. д.
И помните, это не только вина стажера. Если вы не понимали, о чем спрашивали, и если вы не проверяли их каждый день и не просматривали временные фрагменты их кода, то вы были виноваты не меньше стажера. Так что не превращайте это заседание в обвинение, сделайте его продуктивной, конструктивной критикой.
Короче говоря, сядьте со стажером и попросите его/ее наблюдать за тем, как вы кодируете проект, объясняя ему/ей, почему вы кодируете проект именно так, как вы это делаете, и попутно обучайте стажера хорошим методам кодирования. Вместо того, чтобы размышлять о неудачах стажера, вы можете превратить их в опыт преподавания. Неудача — действительно один из лучших способов узнать, что не работает, и хотя вы не должны быть грубыми, стуча стажеру по голове его плохим кодом, вам нужно проиллюстрировать, почему его код не будет работать, и почему лучший план на данный момент — начать сначала.
Чувствует ли стажер себя побежденным или нет, зависит от него. Им в любом случае нужно научиться справляться с неудачами, если они еще этого не сделали. Однако, если вы правильно отнесетесь к ситуации, по крайней мере, стажер должен уйти, чему-то научившись. В данной ситуации это гораздо важнее, чем беспокоиться о том, что они почувствуют себя обиженными или униженными.
Подумайте о парном программировании со стажером. Либо парная программа просматривает их неправильный код и пытается его исправить, либо проходит их код, объясняет его недостатки и обсуждает и парная программа использует новый, лучший код. Парное программирование — лучший инструмент обучения, передача знаний, проверка кода, контроль качества — все в одном!
Иногда из-за нехватки времени вам может понадобиться просто выбросить их вещи и выполнить работу. Делал это раньше, и это было со старшим разработчиком. Можно было сказать, что они чувствовали себя немного побежденными, но они знали, что нам нужно выполнить свою работу.
если позволяет время, воспользуйтесь возможностью учиться вместе. они научатся лучше программировать, вы узнаете, где произошло недопонимание. Вы научитесь объяснять и писать истории для заданий намного лучше, если увидите, как другие интерпретировали просьбу.
Я хочу переписать его код, написать свой и объяснить ему, как и почему я написал его именно так.
Да! Сделай это!
Эрр, может быть.
Я читал очень разумные возражения против такого подхода. Теперь, когда я только что вылил в огонь бочку, полную бензина, я знаю, что мне нужно кое-что объяснить. Мое краткое резюме состоит в том, что этот подход может быть весьма полезным.
Широко цитируемым примером является обучение правительства США методам обнаружения фальшивых денег. Людей обучали этому навыку, когда они хорошо знали, что правильно, а не изучали, что неправильно. Если код, созданный вашим коллегой, достаточно уныл, лучшим вариантом может быть исключение того, что бесполезно, и демонстрация того, что хорошо, и обсуждение того, что хорошо, и удостовериться, что он может делать то, что хорошо.
Итак, несмотря на возражения, выдвинутые другими людьми, я бы предположил, что ваш план заслуживает внимания и даже может быть лучшим планом. Впрочем, может и не быть. Когда моя карьера превратилась в роль преподавателя в колледже, я увидел качество работы, созданной группой студентов. Я также видел, насколько эффективно люди учились одним вещам, но не другим. Я начал по-настоящему понимать, насколько разные стили обучения эффективны для разных людей.
Я также узнал, что успешное делегирование предполагает предоставление кому-то задачи, которую он может успешно выполнить, и это включает в себя определение уровня его навыков. Показательный пример: некоторые люди неохотно принимают решения, но они знают, как нужно действовать. Вы можете спросить их: «Ну, что, по вашему мнению, следует сделать?» Подталкивая их к необходимым действиям, вы можете заставить их начать осознавать силу, которую они могли бы использовать, и добиться успеха. Тем не менее, если вы зададите тот же вопрос человеку, который только что присоединился к организации, и этот человек не знает достаточно деталей, чтобы иметь основание для принятия разумного решения, идентичное подталкивание может иметь только катастрофические последствия.
Если вы пытаетесь кого-то обучить, обязательно задавайте вопросы (в самом начале процесса), чтобы проверить понимание и определить, какой подход работает с пользой, а какой нет. Сосредоточьтесь на том, чтобы дать им структуру, в которой они нуждаются, с четко определенными желаемыми результатами и, возможно, даже четко определенными подходами, а затем предоставьте им задачу достижения простой для достижения цели, которую вы изложили. Что касается предоставления примеров (сделанных вами и сделанных им) и предоставления инструкций, полезность конкретного подхода будет зависеть от человека.
В будущем вам нужно сообщить стажерам, что они берут на себя критическую задачу, но если вы не сможете одобрить их работу к определенному времени, ее сделает кто-то другой. Это справедливо, открыто и честно. Это не означает, что они не должны воспринимать это всерьез, потому что вы хотите дать им хорошую рекомендацию. Стажеры не должны быть обременены критически важным давлением.
Попробуйте провести своего рода разбор полетов, чтобы вы могли понять, где вы не смогли объяснить эту проблему стажеру или какие предположения вы сделали об уровне их навыков. Нет никаких причин не сделать это обучающим опытом для вас и вашей компании.
Поскольку вы этого не сделали, я бы начал с этого объяснения и извинился за то, что не указал это в первую очередь. Думаю, стажер поймет. Держите их в курсе вашего подхода. Потратьте время, чтобы объяснить как можно больше. Если возможно, не переделывайте все. Надеюсь, там есть код для погашения.
Дайте стажеру что-нибудь для этого как можно скорее. Позвольте им вернуться на лошадь после того, как они упадут. Может быть, они смогут переписать этот проект с учетом ваших последних предложений.
Я просто думаю, что если подходить к этому спокойно и профессионально, стажер не будет сильно себя корить. Важно, чтобы они понимали, что вы хотите расширить их набор навыков, и должен быть какой-то реалистичный уровень неудач, но не полный провал. Иногда просто не хватает времени.
Стивен Губкин
Давор
Энгью больше не гордится SO
Давор
дамп ядра
FreeAsInBeer
Премьер Броманов
Премьер Броманов
дамп ядра
Премьер Броманов
Frisbetarian - Помогите Палестине