Как большинство программистов почувствовали ошибки, которые они написали? [закрыто]

Они чувствуют себя разочарованными, разочарованными или даже не признают вообще?

bug
6 голосов | спросил Jervis 28 FebruaryEurope/MoscowbMon, 28 Feb 2011 14:03:02 +0300000000pmMon, 28 Feb 2011 14:03:02 +030011 2011, 14:03:02

12 ответов


18

Я не знаю, как программисты most относятся к своим ошибкам, только как я и некоторые из моих (прошлых /настоящих) сотрудников.

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

Последнее особенно важно, потому что ошибки, которые мы волнуем больше всего, - это те, кому удается проскользнуть до производства и вызвать реальные проблемы у клиентов. Вот почему у нас есть тесты /обзоры кода /отдел QA и т. Д. Всякий раз, когда ошибка проскальзывает через эти щиты, это очевидный признак того, что в нашей защите есть дыра.

Для нетривиальных проблем, хорошая идея сделать ретроспективные или аналитические исследования, чтобы восстановить реальную основную причину проблемы, чтобы ее можно было решать. Это объясняется великолепным примером Джоэла в Five Whys .

ответил Péter Török 28 FebruaryEurope/MoscowbMon, 28 Feb 2011 14:16:12 +0300000000pmMon, 28 Feb 2011 14:16:12 +030011 2011, 14:16:12
8

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

ответил gruszczy 28 FebruaryEurope/MoscowbMon, 28 Feb 2011 14:16:19 +0300000000pmMon, 28 Feb 2011 14:16:19 +030011 2011, 14:16:19
4

Ничего из перечисленного.

Ошибка - это факт жизни, нет никакого чувства разочарования или разочарования. Лучше всего признать, что вы допустили ошибку, и предпримите шаги для ее исправления.

ответил Dean Harding 28 FebruaryEurope/MoscowbMon, 28 Feb 2011 14:15:12 +0300000000pmMon, 28 Feb 2011 14:15:12 +030011 2011, 14:15:12
3

Ошибка - это отличие от желаемого поведения программы, которое происходит со всеми.

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


РЕДАКТИРОВАТЬ: Или, что еще хуже, вертолет вылетает на ваш стол ...

ответил 28 FebruaryEurope/MoscowbMon, 28 Feb 2011 15:08:46 +0300000000pmMon, 28 Feb 2011 15:08:46 +030011 2011, 15:08:46
2

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

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

ответил JeffO 28 FebruaryEurope/MoscowbMon, 28 Feb 2011 14:20:12 +0300000000pmMon, 28 Feb 2011 14:20:12 +030011 2011, 14:20:12
2

Ну, это действительно зависит от типа ошибки и когда она была поймана.

Ошибки Bonehead (т. е. очень простые, чтобы обнаружить /найти) прекрасны, пока я их поймаю. Если я передаю ошибку в битве в команду QA, я, как правило, немного раздражен собой.

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

Мне нравятся неожиданные ошибки поведения, когда QA приносит их мне. «Действительно, это так? Сладкий». Я не настолько поклонник их, когда я получаю призыв поддержки о них в середине ночи. ;)

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

Но ошибки отличаются от разработки. Вы не можете называть себя разработчиком, если не имеете дело с ошибками. Как заставить ваш код работать вовремя и в бюджет, сводя к минимуму количество ошибок, о которых идет речь. :)

ответил Tyanna 28 FebruaryEurope/MoscowbMon, 28 Feb 2011 18:03:25 +0300000000pmMon, 28 Feb 2011 18:03:25 +030011 2011, 18:03:25
0

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

ответил quickly_now 28 FebruaryEurope/MoscowbMon, 28 Feb 2011 14:31:47 +0300000000pmMon, 28 Feb 2011 14:31:47 +030011 2011, 14:31:47
0

На самом деле существует 2 типа ошибок:

  • , где код не делает то, что, по вашему мнению, будет делать так, как вы его написали.
  • другое, где код делает именно то, что вы намеревались сделать, но вы неправильно поняли требования. (это не ошибка, это особенность!)

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

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

ответил CashCow 28 FebruaryEurope/MoscowbMon, 28 Feb 2011 15:13:18 +0300000000pmMon, 28 Feb 2011 15:13:18 +030011 2011, 15:13:18
0

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

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

ответил Tom Hawtin - tackline 28 FebruaryEurope/MoscowbMon, 28 Feb 2011 16:38:32 +0300000000pmMon, 28 Feb 2011 16:38:32 +030011 2011, 16:38:32
0

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

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

ответил biziclop 28 FebruaryEurope/MoscowbMon, 28 Feb 2011 17:20:38 +0300000000pmMon, 28 Feb 2011 17:20:38 +030011 2011, 17:20:38
0

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

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

ответил Dunk 28 FebruaryEurope/MoscowbMon, 28 Feb 2011 17:33:11 +0300000000pmMon, 28 Feb 2011 17:33:11 +030011 2011, 17:33:11
0

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

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

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

Предварительная версия, я думаю, что трюк заключается в том, чтобы избежать обнаружения /исправления ошибок, являющегося одним из позоров - это должно быть одним из триумфов. Каждая ошибка - это возможность сделать код лучше, и важно, кто его нашел. Если у вас есть культура, где ошибки проверяются и приписываются как «ошибка» конкретного человека, тогда вы, вероятно, создадите культуру, которая стреляет себе в ногу, пытаясь найти ошибки, потому что это будет более важно для CYA, чем для исправления продукт.

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

ответил bethlakshmi 28 FebruaryEurope/MoscowbMon, 28 Feb 2011 18:54:08 +0300000000pmMon, 28 Feb 2011 18:54:08 +030011 2011, 18:54:08

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132