15 сентября 2015, 22:53

Об избегании палача

Я сейчас по работе выступаю куратором нескольких программистов и как следствие мне приходится довольно часто оценивать их код. Это распространённая сейчас практика, называется code review — когда один или несколько членов команды смотрят каждое вносимое в программу изменение и делают комментарии и замечания, только после одобрения N-человек можно это изменение вносить (сейчас это N равно мне). Обнаружилось что такая практика не только качество кода разительно повышает, но и образовательный элемент тут есть очень неплохой — все учатся на ошибках и на хороших идеях друг друга. Но у меня в этих процессах всегда есть не только образовательный элемент, но и образовательный сильный дискомфорт. Особенно, когда приходится оценивать код сотрудников, которые пишут неаккуратно или по принципу «лишь бы работало». А такой сотрудник минимум один есть почти в любой компании. И ему приходится делать много замечаний, потому что у меня сильно развито чувство прекрасного (кода). Даже если он сговорчив (что бывает далеко не всегда), я всё равно испытываю какие-то прямо муки, когда приходится оценивать и комментировать его код. Мне начинает казаться, что я придираюсь к мелочам (которые тем не менее я сам никогда бы не оставил в таком ужасном виде), а потом, когда вылазят ещё и не мелочи, а действительно потенциальные проблемы в будущем, когда мне приходится объяснять почему так делать нельзя, почему нужно идти более сложным путём во имя более лёгкого будущего, почему следует сделать проще но больше итд итп, то мне становится очень не по себе. Возникает ощущение, что я как будто сужу человека, что я возомнил себя супер профессионалом, при том что с одной стороны я себя действительно считаю более продвинутым (по отношению к нему), а с другой стороны надо быть и скромнее, и одновременно я боюсь, что он начнёт за глаза считать меня каким-то придирчивым к мелочам гордым дураком. И какие-то объективно его косяки вдруг становятся очень неприятными моими проблемами, вокруг которых начинается эта приторная пляска с моими полуизвинениями, полукритикой, полуублажениями. Мне комфортнее быть жертвой, чем палачом. Я начинаю выдумывать всякие способы убежать от этого дискомфорта — начинаю уговаривать себя, что я оцениваю чисто код, а не человека, который его пишет, но потом через 5 минут приходит человек и рассказывает мне как он хочет написать ещё пару страниц странного на мой взгляд кода — и все схемы эти пропадают куда-то, я думаю именно том, что опять мне придётся оценивать его аляповастый код и выносить опять вердикты, над которыми он будет закатывать глаза и делать, потому что начальство сказало ему меня слушать (очень живописно видятся мне эти закаты глаз в воображении). Хорошо, что я не очень злюсь хотя бы и у меня появилось (по сравнению с раньше) какое-то отношение, что каждый пишет так как может и что не стоит всё думать за них, что опыт дело наживное и надо и дать человеку ошибок посовершать быть может. Но в этом есть конечно больше от теории, потому что по факту возникает этот протест и это желание чтобы мне не надо было никого судить, чтобы все писали сразу хорошо или вдалеке от меня.

Хотя по факту последнее время ни на один из моих критических комментариев не поступило необоснованных возражений и все исправлялись. Но ситуация с кодом почему-то всё та же и мне приходится комментариев оставлять тем больше, чем больше усложняется проект в своём развитии… И мучатся :)

38 комментариев

Yota
Дима, перестань быть хорошим человеком, тебе от этого нехорошо))))))
Mint
Хаха, да уж )))
Я только недавно вот думал, в связи с последним постом Дракона про гуру-других, что меня не особо кто-то и уязвляет. Бывает иногда, но не часто. И видимо я просто за этой хорошестью и прячусь. Когда ты всем более-менее хорошим кажешься, то меньше уязвляют.
Yota
Похоже на то))
Чисто практический совет в этом случае-расставить приоритеты: или сохранить хорошее лицо, или блюсти профессиональные интересы))можно практикой сделать)
Mint
Спасибо за совет. Мне интереснее конечно профессиональный интерес, потому что от своего хорошего лица я сам уже подустаю. Чтобы эту мину держать много душевных усилий приходится прикладывать, которые к тому же не очень приятны на каком-то чуть более глубоком уровне — кривляться приходится :)
Yota
Если перестанешь мину держать, я уверенна, хуже не станешь, наоборот, гармоничнее. Ведь столько энергии туда идет.
Mint
Попробую, не знаю как получится )) Страшно порой, ничего не могу поделать, автоматом срабатывает.
Но я сейчас и так определённо более строг, чем раньше — что-то прорезается наверное :) А может это мне кажется )
Aiakhate
А Хорошо понимаю! Какое-то время назад начала читать книгу по актёрскому мастерству… Вспоминать основы. И вот, у каждого персонажа есть одна основная «сверх-задача». Которая звучит, например, так: «Хочу чтобы меня ценили», или «Хочу всем нравиться» и т.д. И я подумала, что если бы я читала книгу о себе, как о персонаже, то сверхзадачей было бы «хочу чтобы меня любили». И так появляется «очень хороший и добрый человек». Которому, как написала Йота, от своей хорошести, самому нехорошо. Я увидела всю ретроспективу того как разворачивается эта задача, и различные вполне нормальные и природные проявления личности под ней прогибаются или блокируются.
И я подумала, а что если внести изменения в сверх-задачу и немного изменить её «код»? Для начала — расшатывающее дополнение — вроде «но я скажу, что думаю и не е...». Для эксперимента… И такой страх как представила такое задрожал. И я поняла, что явно надо!)) Что-то там такое боится потерять самоопределение всей жизни. Базирующейся на вроде нормальной человеческой потребности «быть любимой». Я подумала, что за привычкой к этому определению не понятно, что же за качества личности у этого персонажа есть?? А вдруг под этой «крышкой», например, в моём случае — наличие «мозга»?)) А в твоём, возможно, умение учить людей? Или какая-то руководящая жилка? мало ли…
Я позадавала похожие вопросы некоторым знакомым и они тоже понаходили сверх-задачу себя, как персонажа. И это было то, что часто доставляло им дискомфорт во взаимодействии с другими людьми.
А вот недавно я познакомилась с женщиной, сверхзадача персонажа которой: «хочу чтобы меня уважали». А этот «код» противоречит «хочу чтобы меня любили» по внешнему поведению. Так что я с большим интересом слушала всё, что она рассказывала. Весь рисунок поведения в одной и той же ситуации — отличается. И там — свои переборы. И похоже, что для гармонизации личности и её проявлений в разных сферах жизни, хорошо бы вот эту «крышечку» хотя бы подрасшатать. А там виднее будет…
Aiakhate
Короче… сливай старую сверхзадачу!))))
Mint
Да, здорово, спасибо.
У меня кстати и правда кажется лежит что-то к обучению.
Меня тут недавно на работе просили поделиться опытом кое-каких продвинутых программистких штук и я решил сделать поэтому поводу целую презентацию — со слайдами итд.
И вот в процессе её подготовки я очень кайфовал. Так интересно делиться опытом с другими, рассказывая о том, что тебя захватывает и нравится.
Может это гены ещё, потому что у меня папа вот много лет был просто учёным, а недавно ещё и преподавать стал и, видимо, так ему это дело понравилось, что он вообще сделал это через какое-то время основной своей работой :)
Mint
и на удивление даже сама лекция прошла без явных косяков, рассказал и на вопросы поотвечал. Понравилось.
Atattvamasi
да!:))) прикольный пост!
bodh45
:)))посмотри пост про ярлыки персонаж «ищущий», там на рисунке хорошо видна разница между хорошим и плохим человеком:))))
Mint
ок, посмотрю, если не забуду :))
spart
Хорошее подспорье для практики :)
space_router
я тоже что-то подобное испытываю.
наверное это просто суть «работы» — там же «надо» делать то, что не хочешь делать)
суть работы же в том, чтобы испытывать фрустрации или как там это называется, загоняться в общем и баблос выделять)
Mint
значит мне повезло с работой — мне интересно :)
space_router
но ты же пишешь что тебе не по себе очень там в некоторых моментах?
вот я про эти моменты
jedi
как знакомо это всё и с программистами и с остальным!)
maxuscz
Дима. Считай что ты хирур и делаешь операцию. И контролируешь тех кто делает операции. Это связанно с жизнеспособностью кого то (программы — она же живая по каким то понятиям...)
Так вот — одевай белый колпак и работай. Все эмоции боком запускать. Речь о жизни и смерти вообще то. Будь циничнее — делай свою работу. Обидится ли пациент чтоты его разрезал? Обидится ли хирург что ты критикуешь как он режет и шьет? А пофигу — ибо здесь не это важно а эффективность и жизнеспособность организма.
jedi
Митя, не ваша ли случайно продукция с искуственным интелектом, против которой создают в британии акции?
Mint
хах, нет, у нас поскромнее :)
Aleksey
Не бойся!)))

– Нет, игемон, он не был многословен на этот раз. Единственное, что он сказал, это, что в числе человеческих пороков одним из самых главных он считает трусость.
Mint
Ну раз игемон был не многословен, то выбора мне не остаётся :)
Aleksey
Не многословен был Иешуа перед казнью. Это из Мастера и Маргариты)))
Mint
Прочитал без запятых, и смысл исказился )
Я почему-то догадался, что оттуда :)
Aleksey
Не бойся! Иди на страх и смотри, не закрывай глаза, это самый верный указатель)))
Mint
Как правило я «очухиваюсь» уже в момент когда бегство свершилось. Только изредка получается посмотреть от чего бегу :)
Aleksey
Не бойся! Не бойся себя!)))
Blackmore
Эти привычки формируются годами. Причем быть деликатным это очень хорошая привычка. Это не жертвенность. Это скорее чувстсво гармоничности. У меня на работе на соседней базе живет собака. И когда я обедаю, она подбегает к дверям и гипнотизирует глазами:) ну я ей бросаю всякие косточки и все такое. Но когда в конце рабочего дня я прохожу мимо офиса она всегда лает. Так она приучена. Это меня злило по началу, пока не изменил тактику:) я стал бросать ей косточки с таким посылом, чтобы она на меня лаяла вечером! Теперь проходя мимо офиса мне уже было радостно когда она лает:) для нее это видимо стало шоком и она со временем перестала на меня лаять:)
lamanarame
Если чувак из раза в раз пишет плохой, а иногда и потенциально опасный код, на который приходится тратить дополнительное время, то явно пришло время искать нового человека. Ты же в первую очередь решаешь бизнес-задачу, ведь ревью кода для того и нужно чтобы повысить качество кода. А здесь качество кода можно повысить увольнением. Если чувак не учится, если следующий, а не исправленный, код не становится лучше после общения с тобой, значит он вредитель и тебе пора поработать метлой. Я хочу сказать, что здесь нужна холодная, рациональная оценка и «хороший человек» Дима мешает хорошему бизнесу )
Mint
ну это решение не за мной, но пока ещё я однозначно не понял, учится или нет. Потому что это точно не тот человек, который ставит ревьюеру палки в колёса, он старается изменять код согласно замечаниям. А вот насколько тут имеет место обучение — я пока не понял. Ведь это процесс не сразу очевидный и не столь быстрый.

В целом с тобой, конечно, согласен. Тут правда есть ещё факторы, что в Калининграде хороших андроид-программистов, как оказывается, довольно сложно найти — поэтому начальство вряд ли будет с готовностью расставаться с теми кто работает выше среднего, а у нас сейчас все такие.
lamanarame
Да, туго с программистами, но есть варианты искать в регионах и везти сюда. Ну и что решение не за тобой, я думаю ты преувеличиваешь. Ведь именно ты оцениваешь код ребят, поэтому у тебя в руках все аргументы. Предлагаю попробовать вести статистику по качеству кода и количеству затраченного на человека времени. Через месяц-полтора все прояснится. Есть ведь привычка оценивать себя по тому что думаешь о себе и социальным отношениям, а не по реальным действиям постфактум. Эта привычка переносится и на других, вот человек обходительный и милый, с ним комфортно, а то что работу плохо делает, так это у него период такой. То есть социум и воображение рулит, а не факты. И по программистам это бъет сильнее всегда, так как проекты сильно растянуты во времени, сложно оценивать труд, да и требования к проекту непрерывно меняются :)
Amitola
Региональный… междусобойчик:)
Mint
да, можно попробовать :)