Но вернемся к нашему рассказу. Не прошло и полгода, как мы провели пробный расчет зарплаты. Девочки вбили все данные, я запустил программу, мы распечатали расчетные ведомости, и расчетчицы сели за сверку.
Я был так горд собой, ведь создание программы стоило мне множества бессонных ночей. Я освоил новый язык программирования и предметную область. Усмирил болгарский дисковод (об этом – подробнее в следующей истории). Написал десятки страниц кода. Поэтому, когда я увидел рыдающую Марину, подумал: «Да, понимаю ее чувства. Не будет больше задержек на работе, бессонных ночей и красных глаз». Но оказалось, что рыдает Марина совсем по другому поводу: расчеты и близко не сходились! Ошибок было очень много. И во вводе данных, и в коде программы, и даже в алгоритмах. Поэтому пришлось еще пару месяцев дорабатывать программу, в том числе написать специальный код для защиты от неверного ввода данных, так как двойной ввод позволить себе мы не могли.
Но и это еще не все. Поскольку делали мы все это на ДВК-2М, уже в ходе проекта выяснилось, что его техническое оснащение не дает возможности запустить проект в полном объеме. Болгарские дисководы и очень небольшой объем ОЗУ и дискет – такая техника не выдерживала нагрузки. Ни один расчет так и не дошел до конца. Программу пришлось сдавать на примере расчета двух цехов – и спасибо, что ее приняли и оплатили, хотя и понимали, что использовать не смогут.
Поэтому все пришлось повторить после того, как заказчик приобрел новые персональные компьютеры «Искра-1030» с винчестерами и ОЗУ в 256 килобайт! После двух лет работы и освоения нового языка FoxBase программа все-таки пошла в промышленную эксплуатацию. Я выстоял, я справился со всеми трудностями и, наконец-то, увидел счастливые глаза моих расчетчиц, с которыми сроднился за это время! Программу я назвал «Роза», хотя Розы среды расчетчиц не было, просто по заглавным буквам словосочетания «Расчет зарплаты».
Но на дорожку программа преподала мне еще один урок. Первые расчетные листки распечатали и отнесли руководству Водоканала. Через некоторое время меня вызвал главный инженер.
– Что это? – спросил он, ткнув меня в какое-то начисление в расчетном листке.
– Ммм… «Пр. за нотх. по п»… А, это же единовременная премия за новую технику по приказу!
– Да? А я думал «Праздник с нотами и попами». Вы чего там, программисты, творите?
– Да у нас всего четырнадцать символов в справочнике начислений… Это же мелочи! Главное, что программа считает!
– Мелочи, говоришь? А если у тебя завтра 700 рабочих притащатся в расчетный отдел выяснять, что там с попами и нотами? Иди и исправь!
Тогда я понял, что названия важны. Имена важны. Слова важны. «Премия нов. тех.», конечно!
Основой нашего взаимодействия является речь. Которая состоит из слов. И с ними надо быть аккуратнее. Полные и однозначные названия лучше кратких. Я помню об этом всегда, даже если дело не касается названия переменных и реквизитов в программах. Мои сотрудники не отправляют клиентам файлы с названиями «КП» или «Договор». Мы готовим и высылаем клиенту «Договор № 2257 Софт-портал – Теплосеть – 1С Управление теплосетью 2 – Внедрение». Проявляя уважение к коллегам, экономя им время поиска нужного документа.
Глава 3. Как победить болгарский дисковод
«ДВК 2М» – так назывался аппаратный комплекс, на котором создавалась программа «Расчет зарплаты». Для своего времени это был суперкомпьютер. Во-первых, он был персональным. Вполне приемлемого размера, помещался на стол. Во-вторых, у него было огромное быстродействие – целых 10 или 20 тысяч операций в секунду. Да-да, тогда быстродействие измерялось не тактовой частотой процессора, а именно операциями с двоичными числами. И в-третьих, у него было ОЗУ довольно большой емкости – целых 64 килобайта. Туда спокойно помещалась операционка, программа Бейсик, текст прикладной программы и ее данные. Чего в ДВК не было – так это винчестера. А значит, и записанной на нем операционки. К системному блоку прилагался болгарский сдвоенный дисковод размером 5,25 дюйма. В верхний слот я вставлял дискету с операционной системой и бейсиком. А в нижний – дискету с прикладной программой и данными.
Компьютер был отечественный, но сильно продвинутый. Поэтому он зависал и перегружался не чаще двух раз в день. При перезагрузке пропадали не только операционка в ОЗУ, но и, скажем, набитый за пару часов в бейсике текст новой программы. Помню, как долго я не мог прийти в себя, когда в обед компьютер завис и унес в небытие пять страниц готовой программы! Как я в ужасе бегал вокруг стола и думал, что «ну должен же где-нибудь остаться хоть какой-то след от такого серьезного труда!». Но, увы, след оставался только в моем мозгу. Именно тогда я впервые столкнулся с таким интересным феноменом: написанная повторно по памяти программа была всегда лучше прототипа! И короче, и работала быстрее.
Читать дальше