Психологические проблемы программиста при отладке программ

Этап отладки в деятельности программиста оказывается самым длительным и трудным.

Главная проблема – это проблема правильного определения понятия отладка. Отладка – это процесс экспертизы программы с целью обнаружения ошибок и их исправления.

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

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

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

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

Отладка процесс деструктивный (т.е. обратный созидательному конструктивному). Именно этим и объясняется, почему многие считают его трудным. Большинство людей склонны к конструктивному процессу созидания объектов и в меньшей степени – к деструктивному процессу разделения на части.

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

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

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

 

А.В. Ляукин (г. Казань)
Опубликовано : ЕЖЕГОДНИК Российское Психологическое Общество
Психология Созидания
Том 7, Выпуск 2
Казань, 2000