– Что это? – спросил он, ткнув меня в какое-то начисление в расчетном листке.

– Ммм… «Пр. за нотх. по п»… А, это же единовременная премия за новую технику по приказу!

– Да? А я думал «Праздник с нотами и попами». Вы чего там, программисты, творите?

– Да у нас всего четырнадцать символов в справочнике начислений… Это же мелочи! Главное, что программа считает!

– Мелочи, говоришь? А если у тебя завтра 700 рабочих притащатся в расчетный отдел выяснять, что там с попами и нотами? Иди и исправь!

Тогда я понял, что названия важны. Имена важны. Слова важны. «Премия нов. тех.», конечно!

Основой нашего взаимодействия является речь. Которая состоит из слов. И с ними надо быть аккуратнее. Полные и однозначные названия лучше кратких. Я помню об этом всегда, даже если дело не касается названия переменных и реквизитов в программах. Мои сотрудники не отправляют клиентам файлы с названиями «КП» или «Договор». Мы готовим и высылаем клиенту «Договор № 2257 Софт-портал – Теплосеть – 1С Управление теплосетью 2 – Внедрение». Проявляя уважение к коллегам, экономя им время поиска нужного документа.

Глава 3. Как победить болгарский дисковод

«ДВК 2М» – так назывался аппаратный комплекс, на котором создавалась программа «Расчет зарплаты». Для своего времени это был суперкомпьютер. Во-первых, он был персональным. Вполне приемлемого размера, помещался на стол. Во-вторых, у него было огромное быстродействие – целых 10 или 20 тысяч операций в секунду. Да-да, тогда быстродействие измерялось не тактовой частотой процессора, а именно операциями с двоичными числами. И в-третьих, у него было ОЗУ довольно большой емкости – целых 64 килобайта. Туда спокойно помещалась операционка, программа Бейсик, текст прикладной программы и ее данные. Чего в ДВК не было – так это винчестера. А значит, и записанной на нем операционки. К системному блоку прилагался болгарский сдвоенный дисковод размером 5,25 дюйма. В верхний слот я вставлял дискету с операционной системой и бейсиком. А в нижний – дискету с прикладной программой и данными.

Компьютер был отечественный, но сильно продвинутый. Поэтому он зависал и перегружался не чаще двух раз в день. При перезагрузке пропадали не только операционка в ОЗУ, но и, скажем, набитый за пару часов в бейсике текст новой программы. Помню, как долго я не мог прийти в себя, когда в обед компьютер завис и унес в небытие пять страниц готовой программы! Как я в ужасе бегал вокруг стола и думал, что «ну должен же где-нибудь остаться хоть какой-то след от такого серьезного труда!». Но, увы, след оставался только в моем мозгу. Именно тогда я впервые столкнулся с таким интересным феноменом: написанная повторно по памяти программа была всегда лучше прототипа! И короче, и работала быстрее.

Со спонтанными перезагрузками ничего нельзя было сделать. Более того, мы искренне радовались, что они не такие частые, как на больших машинах. Например, перезагрузки на ЕС ЭВМ случались раз в полчаса-час и считались нормой! Так вот, для того, чтобы не терять новую программу при каждой перезагрузке, нужно было ее периодически сбрасывать из ОЗУ на дискету. Но. Тут-то и начиналось самое интересное. Болгарский дисковод записывал программу на дискету. Иногда. Но не всегда. Чаще он шипел, трещал, свистел, но… не записывал! Через минуту шипения и свиста появлялось страшное сообщение «Write failure error» и можно было переходить к новой попытке. Иногда, после трех-четырех попыток, файл все-таки записывался. Однако не было никакой гарантии, что он прочитается! «Read failure error». Это было не менее ужасное и не менее редкое сообщение системы. И вот бывает, сидишь ты за компьютером, в конце рабочего дня, смотришь на листинг программы на экране и пытаешься ее хотя бы запомнить. Потому что записать ее не получается. Ну никак! Это ужасное чувство, думаю, напоминающее то, которое должен испытывать человек, бегущий за последним вагоном электрички, уже коснувшийся поручня, и вдруг осознающий, что поезд ушел.