Что такое «программирование без эго»?

12

Впервые я услышал этот термин около пятнадцати лет назад.

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

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

Однако ответ на недавний вопрос заставляет меня думать, что некоторые другие программисты по-разному понимают «программирование без эго». Итак, каково правильное определение? И каковы его последствия?

Боб Мерфи
источник
7
Программирование в изобилии эго гораздо веселее, чем в программировании без эго.
Работа
2
@Job: Да, и как говорят Mythbusters, все идет лучше с C-4.
Боб Мерфи

Ответы:

17

Все вышеперечисленное.

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

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

Роберт Харви
источник
Я согласен, что недогматичность очень важна для конструктивных отношений - не только в программировании, также - и я постоянно борюсь с этим.
Боб Мерфи
@bobmurphy Я знаю два эффективных способа избежать догматизма. 1) Не дерьмо про идеалы. 2) Тратить время и силы на создание команды разработчиков, которая разделяет идеалы. Многие отказываются от 2, пишут стандартную документацию, которую никто не читает, и медленно внедряются в 1. Единственный анидот - это обзор кода, который рассказывает о том, что чувствуют люди. Не о следующих правилах.
Candied_Orange
8

Эта фраза не имеет стандартного значения ISO, поэтому разные люди могут на законных основаниях подразумевать под ней разные вещи.

Я считаю, что это было придумано Вайнбургом в «Психологии компьютерного программирования» . Он имел в виду программирование без привязки какого-либо эго к коду, так что это не «ваш код», а просто код. Это облегчает сотрудничество по улучшению кода, способность принимать критику того, что вы написали (потому что это не направлено на вас), и общую командную работу.

Дэвид Торнли
источник
Я не думал, что это был стандарт ISO. :-) Я был просто удивлен, что люди подразумевают, что программирование без эго означает, что неуместно извиняться перед пользователями моего программного обеспечения, когда они испытывают неудобства из-за ошибок, которые я написал. Если это то, что я имею в виду, я буду эгоистичным и вежливым.
Боб Мерфи
@Bob: я не вижу, как эгоистичный а-ля Вайнбург приводит к тому, что не извиняется за ошибки. Это звучит довольно эгоистично для меня.
Дэвид Торнли
Это было то, что я не мог понять.
Боб Мерфи
6

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

Я понимаю, что под этим термином подразумевается коллективная собственность , так что каждый человек в команде работает на благо всех, а не только себя. « Дэвид Логан о лидерстве племен » - это TED Talk, где в каком-то смысле племя 4-го уровня будет одним из людей, лишенных эгоизма.

JB King
источник
1

Я человек среднего возраста. Я побывал во многих разных странах и мне посчастливилось встретить таких замечательных людей, как астрономы и дзен-буддийские монахи.

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

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

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

Извините за мой плохой английский. Мой родной язык японский

Дядя джо
источник
+1: я видел это много раз, и не только с программированием.
Боб Мерфи
Кстати, я тоже среднего возраста (52). Когда я был подростком и двадцатым, я был уверен, что много знаю о многих вещах. Теперь, я уверен, я ничего не знаю о чем-либо. Довольно забавно наблюдать, как мой 18-летний племянник очень уверен в себе.
Боб Мерфи
@BobMurphy «чем больше я учусь, тем больше я знаю, как мало я знаю»
gbjbaanb
1

Мое мнение (и только это) заключается в том, что термин «программирование без эго» - оксюморон.

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

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

Опять же, только мое мнение, основанное на опыте. Не стесняйтесь избивать меня этим :)

... А теперь я понял, сколько лет этой теме: P

Демиан Брехт
источник
3
Тот факт, что твои коллеги - жопы, не значит, что ты тоже должен быть таким! Идея состоит в том, что если мы будем поощрять кодирование без эго, то следующее поколение может быть не просто кучкой первобытных и более профессионалов.
gbjbaanb