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

Возвращение Линуса

Линус Торвальдс недавно (сентябрь 2018 г.) оказался в центре новостей ИТ после объявления о необходимости отступления. Линус играет центральную роль в разработке ядра операционной системы Linux. Без преувеличения можно сказать, что Linux оказал огромное влияние на разработку программного обеспечения за последние 25 лет.

Ряд неприятных и болезненных конфликтов в среде разработчика привели Линуса к признанию отсутствия связи. Линус пишет: «Я понял, что совершенно неправильно понял некоторых людей».

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

Линус вернулся из пустыни, или где бы он ни был, спустя чуть больше месяца. Тем временем разработчики ядра Linux согласовали новый Кодекс поведения, в котором четко подчеркиваются требования, направленные на предотвращение преследований и плохого поведения. Чтобы выяснить, произошло ли какое-либо изменение в поведении, сайт Phoronix провел сравнение тона в обзоре кода Линуса раньше и сейчас. Разница заметна. Раньше он мог отвечать ПОЛНОСТЬЮ НЕПРИЕМЛЕМО заглавными буквами на запрос на перенос с некоторыми нестандартными методами, но теперь он использует более умеренную фразу Просто не делайте этого.

IT и эмпатия

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

Общение с клиентами, пользователями, коллегами и друзьями становится кратким, независимо от того, как оно воспринимается.

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

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

Станьте более чуткими уже сегодня!

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

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

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

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

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

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

Золотое правило разработки программного обеспечения

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

Можно сказать, что хороший программист следует Золотому правилу разработки программного обеспечения:

«Вы должны кодировать так, как вы хотели бы, чтобы другие кодировали».

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

Вы, конечно, можете использовать в процессе принципы «чистого кода», но не забывайте, что эти принципы - всего лишь вспомогательное средство, а не самоцель.

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

Как сделать обзор кода

Как отмечалось в начале этого теперь длинного эссе, Линус слишком сильно ударил в своих обзорах кода. Эйприл Венсель долгое время работает с концепцией «сострадательного кодирования» и у нее есть несколько интересных моментов о том, как проводить полезную проверку кода.

Практика других разработчиков программного обеспечения может показаться некоторыми провокационными (например, предыдущее воплощение Линуса). Чтобы комментарии были полезны, задайте следующие вопросы, прежде чем комментировать код другого человека:

"Это правда?"

"Это необходимо?"

«Это доброе?

Эти три вопроса (часто называемые решетом Сократа) позволят при проверке кода поддерживать более высокий уровень беспристрастности.

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