Открытость для отзывов - отличительная черта хорошего инженера.

Я не мой код

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

Почему это важное сообщение?

Мы долго и часто говорим о психологической безопасности. В авторитетных изданиях, таких как State of DevOps Report 2019, ему посвящены целые разделы. Их описание, взятое из Google Project Aristotle, выглядит следующим образом:

«Члены команды чувствуют себя в безопасности, рискуют и уязвимы друг перед другом» - Отчет о состоянии DevOps 2019

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

Словарное определение безопасности помогает еще больше сфокусировать объектив:

«Состояние защиты от опасности, риска или травмы или маловероятно, что оно может вызвать опасность» - Lexico (онлайн-словарь Оксфорда).

Таким образом, безопасная среда - это та среда, в которой мы не встретимся или не вызовем опасности, риска или травмы. Так что же происходит с этой культурой, когда вы придаете так много своей личной ценности своему коду, что любое изменение, любой упрек, даже вопрос становится личной атакой? Что ж, это некрасиво.

Вы создаете оружие

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

Первый инженер: «Я видел рекурсию в этой функции. Меня просто беспокоит, что произойдет с большими наборами данных? "

Второй инженер: «Послушайте, я сделал все возможное, используя то, что у меня было в то время, мне сказали, что больших наборов данных не будет».

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

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

И неважно, кто ты

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

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

Не позволяйте эго заразить вашу кодовую базу

Еще раз сверху, с чувством: я не мой код .