Я «новичок» в ИТ-отделе небольшой производственной компании. У нас есть небольшая команда из 3 разработчиков приложений + 1 роль разработчика базы данных/dba-ish. Я работаю здесь несколько месяцев, так что я приближаюсь к моменту, когда начал завоевывать доверие и признание своих коллег.
Во время моего интервью было много разговоров о желании быть более Agile. Об этом до сих пор много говорят , но никаких действий. Честно говоря, мне все равно, Agile мы или нет, но нам действительно нужно начать делать некоторые вещи, которые являются просто передовой практикой, Agile или нет. Такие вещи, как модульное тестирование и проверка кода. Да, давайте сначала начнем с этих двух, так как они самые выгодные.
Теперь я проверяю код, к которому прикасаюсь, прежде чем изменять его. Отчасти потому, что я увидел преимущества, а отчасти потому, что боюсь что-либо сломать в унаследованной кодовой базе. Мой менеджер очень доволен этим. Он мне сам так сказал. Остальной команде, кажется, нравится идея тестирования и закрытых проверок, но они не предприняли никаких действий, чтобы начать это делать . Я думаю, это может быть потому, что они просто не знают, как это сделать, но возможно, что они думают, что «у них нет времени». (Кстати, тот факт, что нет времени, совершенно не соответствует действительности. Менеджмент знает, что это авансовые инвестиции, которые окупаются, и полностью поддерживает эти усилия.)
Честно говоря, меня немного расстраивает то, что я слышу так много разговоров, но не вижу никаких действий со стороны моих товарищей по команде. Как новый парень, как я могу подтолкнуть их к действию, не взъерошивая перья? Я не хочу быть тем парнем .
Это не дубликат предложенного вопроса, потому что этот парень спрашивал , следует ли и как ему продвигать свои идеи. Это не мои идеи (хотя я с ними согласен, очевидно). Мой вопрос касается того, как заставить моих коллег действовать в соответствии с их словами .
Честно говоря, меня немного расстраивает то, что я слышу так много разговоров, но не вижу никаких действий со стороны моих товарищей по команде. Как новый парень, как я могу подтолкнуть их к действию, не взъерошивая перья? Я не хочу быть тем парнем.
Использование таких фраз, как «большой разговор» и «подтолкнуть их», действительно может сделать вас тем парнем , поэтому вы не хотите идти на это.
Подумайте о том, чтобы спросить своего руководителя, не против ли вы создать презентацию о некоторых практиках, которые вы считаете важными. В некоторых компаниях во время обеда устраиваются «беседы с коричневой сумкой», где такие темы являются обычным явлением.
Если вы приняты, вы можете рассказать о том, что вы предлагаете, почему вы считаете это важным (надеюсь, не только потому, что вы считаете это «лучшей практикой», но больше о том, почему это принесет пользу команде/компании в их конкретном контексте) и как вы все можете приступить к реализации этих идей.
Постарайтесь заблаговременно заручиться явной поддержкой менеджера, а затем используйте свою силу убеждения, чтобы убедить других присоединиться к победе. Иногда предложение пилотного проекта дает хороший старт — часто начинать с малого — это самый простой способ добиться улучшений.
Остальной команде, кажется, нравится идея тестирования и закрытых проверок, но они не предприняли никаких действий, чтобы начать это делать.
Они действительно знают, как проводить модульное тестирование?
Если вы никогда не делали этого раньше, может быть не просто начать делать это. Особенно, если у вас есть многолетний опыт без тестирования.
Похоже, что вся ваша команда, по крайней мере, открыта для идеи изменения своих процессов. Я бы сосредоточился на том, чтобы убедиться, что вы знаете, почему они ничего не делают. Я подозреваю, что это либо общее сопротивление изменениям, либо непонимание того, как что-то делать.
Если это недостаток знаний, вы можете рассмотреть способы помочь с этим. Хороший способ — попросить кого-нибудь о помощи и заняться парным программированием при работе с кодом, который вы не понимаете (полностью). Вы можете обсудить, что вы делаете, и посмотреть, сможете ли вы написать тесты с другим человеком, объясняя, что вы делаете.
Обратите внимание, что видеть написанный тест (обзор кода) и знать, как подходить к написанию теста, не обязательно одно и то же.
Если это просто проблема «нам нравится говорить об этом и звучать модно, ничего не делая», вы можете попробовать, когда происходит такой разговор, предлагать или спрашивать об очень конкретных, практических вещах (а не просто сетовать на отсутствие проверки кода или модульного тестирования). , тоже):
Чтобы обзоры кода были практичными, вам нужна система, которая их упрощает. Например, как это делает GitHub с запросами на слияние или как GitLab с запросами на слияние. Я много слышал о Геррите, но не пользовался им. Установите один из них или аналогичный (сначала даже просто на свой компьютер), иначе это просто не будет практично.
Вот пример представления кода коллеге с помощью GitHub.
Реализуйте достаточно интересное изменение в ветке и намеренно оставьте некоторые ошибки. Создайте запрос на слияние и попросите товарища по команде просмотреть его. Сядьте с ним, покажите ему свою ошибку и то, как он может оставить комментарий в соответствующей строке. Проведите его через остальные ваши изменения, если он сделает какие-либо замечания, попросите его ввести комментарий прямо здесь и сейчас. После того, как вы вместе просмотрели все изменения, вернитесь к своему рабочему столу, зафиксируйте и отправьте исправления. Предыдущие комментарии будут удалены из запроса на включение, попросите его сделать еще один проход, если он найдет что-нибудь еще. Повторяйте, пока он ничего не найдет, и запрос на слияние можно будет принять.
Покажите и другим товарищам по команде, продолжайте назначать им запросы на слияние и поощряйте их делать то же самое с вами. Надеюсь, практика приживется.
Процесс точно такой же с GitLab (бесплатный клон GitHub), но они называют запросы на слияние запросами на слияние. Я не знаю, с Герритом и другими, я думаю, что аналогичная функциональность существует.
Мы реализовали эту идею в двух командах за последние 3 года. Это самая популярная практика, которую мы внедрили. Ребята, которые этим занимаются, любят это делать и время от времени присылают мне запросы на слияние даже после того, как я перешел в другую команду. В своих новых командах я стараюсь распространять практику именно так, как описал выше.
Что касается модульного тестирования:
Что касается улучшения качества кода:
Обратите внимание на общий шаблон в обоих приведенных выше примерах:
Все эти идеи — настолько маленькие и простые постепенные изменения, что их очень легко продать.
Настройте и используйте вариант, адаптированный к вашей среде.
Марк Роджерс
Тот парень
Марк Роджерс
Тот парень
Франсин ДеГруд Тейлор
Тот парень