Я и мои друзья недавно слегка разглагольствовали о нашей работе в сфере высоких технологий. Как версионирование не выполняется (или выполняется… творчески). Функции с тысячами строк, не документирующие эксперименты с машинным обучением. Кодовые базы умирают от некоторого рефакторинга, программисты запускают целое приложение с нуля, не понимая, что делало предыдущее. Плохо написанные требования, отсутствие проверки кода, никаких стандартов. У каждого из них была одна или две проблемы, о которых нужно было сообщить. Это заставило меня задуматься: хорошие практики кажутся более редкими, чем обычными.

Я был менеджером проекта около 8 лет в крупной компании, и мне приходилось иметь дело со многими аспектами человеческой натуры. Итак, я могу предположить несколько причин, по которым в вашей компании могут отсутствовать некоторые передовые методы. Я исключу историю вашей команды или компании и унаследованный код и сосредоточусь на индивидуальном поведении или убеждениях.

Команда не знает о существовании лучшего способа делать что-то

Иногда это так просто, как «они никогда об этом не слышали», или, может быть, они никогда не уделяли достаточно внимания всем преимуществам технологии или практики. Могло быть и хуже: все жалуются на эту проблему в голове, но никто не подошел и ничего не сказал. В любом случае вопрос открыто и глубоко не рассматривался.

Даже если вы чувствуете, что в вашей компании это не так, я думаю, мы всегда должны исходить из этого предположения. Мы можем быть удивлены тем, что разговор об этом может действительно сработать. Если не работает, то мы попробовали .. и можем перейти к другим сценариям.

Прошлый опыт

Все мы знаем, что у программирования есть ажиотаж. Увидев, как многие рождаются и умирают, я думаю, что люди склонны более осуждать преимущества новой системы или практики. Постоянные встречи, парное программирование, наличие в команде одного человека для устранения препятствий. Как вы могли заранее узнать, что работает, а что нет. «Что ж, надо хотя бы попробовать» Так ли?

Можно ли попробовать все новое, что приходит в город? Конечно, нет. Мы должны фильтровать. И у каждого человека свой способ расставить приоритеты. Истинное прислушивание к мнению людей может вас удивить. Вы можете узнать, что это уже пробовали раньше или что есть какое-то препятствие, выходящее за рамки возможностей команды, например, какое-то внутреннее правило, которое люди уже пытались изменить, или некоторая головная боль менеджера высокого уровня, который настаивает на том, чтобы что-то делать. сюда. Вы даже можете обнаружить, что это выбор клиента.

Но вы можете подтвердить свои идеи о том, что прошлый опыт не оправдывает бездействие в отношении лучших практик. Может быть, контекст другой, и на этот раз у результата больше шансов быть положительным. Может быть, вы обнаружите изъян в логике людей, например: «X не сработал, значит, ничего похожего на X не сработает».

Если вы попали в такую ​​ситуацию, сначала оцените, действительно ли команда чувствует потребность в преимуществах хорошей практики (а не самой практики), которую вы хотите внедрить, или это только вы. Например, считает ли команда, что было бы хорошо иметь надежный способ быть уверенным, что реализация новой функции ничего не сломала? Если да, то можно начинать говорить о написании тестов для методов классов. Вы можете деликатно разрушить ошибочные или устаревшие убеждения, чтобы открыть место для новизны.

Настоящее настоящее более убедительно, чем гипотетическое будущее

Команда не считает, что тратить эту энергию стоит. Сложно сравнивать сегодняшние реальные усилия с будущей вероятной наградой. В этих случаях люди склонны к консерватизму и выбирают зону комфорта. Команда знает о практике и ее преимуществах, но… да ладно, это слишком много. Постарайтесь не (слишком) осуждать это. Если бы поддерживать усилия, которые окупаются только в будущем, было легко, у всех нас было бы желаемое тело, карьера, о которой мы мечтаем, а также идеальное здоровье и отношения.

Повседневные задачи просто разрушают наши мечты о лучшем будущем.

Ориентироваться в будущее настолько сложно, что ботаники, занимающиеся администрированием и производительностью, придумали множество способов заставить людей работать с метрикой будущего. А иногда… не глядя на это. Авторы книги «Четыре дисциплины исполнения» предлагают один раз установить долгосрочные цели, а затем забыть их в повседневной работе. Команды должны сосредоточиться на показателях потенциальных возможностей, связанных с процессом, а не на показателях отставания, которые имеют значение в долгосрочной перспективе. Например, если вы хотите набрать мышечную массу, вам не следует сосредотачиваться на отслеживании набора мышечной массы. Вместо этого вам следует отслеживать, сколько раз вы ходите в спортзал в неделю.

Вы можете попытаться определить процессы, которые при последовательном соблюдении в конечном итоге приведут к желаемому результату. Затем создайте несколько маленьких целей для этих процессов. Если мы хотим, чтобы команды писали более мелкие, более удобные в обслуживании функции, возможно, процесс рефакторинга кодовой базы приведет в будущем к меньшим функциям. Мы могли бы поставить цель проводить 1 рефакторинг в неделю и даже составить конкуренцию наиболее распространенным рефакторам.

Система вознаграждений нарушена

Иногда люди знают, что качество на самом деле не вознаграждается в компании, а главное - скорость доставки. Может быть, компания стремится продвигать только близких друзей или семью или управлять, основываясь на страхе, чтобы никому никогда не хвалить публично. Некоторые люди действительно хотят делать отличную работу, но устали видеть, как продвигают кого-то (они считают, что не заслуживают) повышения, а не их самих. Или стараются изо всех сил, но, кажется, никто не замечает их усилий.

Это истощает чей-либо дух. Со временем они могут ожесточиться из-за попыток сделать все наилучшим образом и потерять энергию. Я считаю, что с этим сценарием довольно сложно справиться. Большинство из нас не в состоянии изменить систему вознаграждений, и уход был бы лучшим вариантом.

Если у вас есть высказывание по этому поводу или у вас достаточно энергии, чтобы выразить свою точку зрения, то высказывайтесь. Но я бы не стал спасать мир. Есть и другие компании. Если возможно, начните искать более здоровую окружающую среду.

Нижняя линия

Ты не одинок. И однажды вы можете сказать, что изменение того не стоит, кто знает? Есть веские причины для изъянов в практике развития компании. Некоторые легко исправить, некоторые - сложно. Некоторые места развиваются, а некоторые компании просто застревают.

Несовершенные практики определенно являются скорее правилом, чем исключением, и мы можем начать к этому привыкать и узнавать свои пути, будь то попытки исправить или просто убежать ...