Главная / Художественная проза, Малая проза (рассказы, новеллы, очерки, эссе) / — в том числе по жанрам, Драматические / — в том числе по жанрам, Художественные очерки и воспоминания
Произведение публикуется с разрешения автора
Не допускается тиражирование, воспроизведение текста или его фрагментов с целью коммерческого использования
Дата размещения на сайте: 18 сентября 2017 года
Другое полушарие
Рассказ о буднях программистов. По крайней мере, таких, какими они были на заре вычислительного дела, когда еще существовали ИВЦ... По духу чем-то перекликается с "Понедельник начинается в субботу" Стругацких.
По мотивам реальных событий
«Тяжела и неказиста жизнь простого программиста…»
Поговорка
Зимний день был яркий и солнечный. Небо радовало синевой и слепящей белизной облаков. Чистый снег лежал толстым одеялом на всем вокруг. Выйдя из автобуса, мы, сотрудники отдела АСУП, шли гуськом по протоптанной тропинке, весело переговариваясь и смеясь, к проходной завода. Мы были на каком-то мероприятии по передаче чего-то кому-то. Такие мероприятия хороши тем, что ни к чему не обязывают, вносят разнообразие в рутину заводской жизни, расширяют кругозор.
Зачерпнув горсть снега, и слепив снежок, я покрутил его в руках, помял и утрамбовал. Настроение просило выхода. Отвечая на чью-то шутку, широко размахнулся и запустил снежок в фонарь на высоченном столбе. Белый комок снега, вращаясь, не спеша описал пологую параболу и с треском и брызгами расплющился о прочный плексигласовый фонарь. С первых метров полета было понятно, что он летит точно в цель.
– Володя, разобьешь фонарь! И что о нас подумают? Скажут, АСУП фонари на столбах бьёт! – Строго сказала моя начальница, Ирма, глядя на меня смеющимися глазами.
А я с замиранием сердца подумал: ну, вот опять. Расстояние метров тридцать, не меньше. Можно бросать снежки до одури и не попасть. Я НЕ МОГУ попасть в фонарь с расстояния тридцать метров. Тогда почему снежок попал? Случайно? Но это не в первый раз. Я уже давно замечал эти странности. Способностями их можно назвать условно, потому что уверенно повторить сделанное не удавалось. В тот день мне и пришла в голову мысль, что не все наши способности проявляются в сознательных действиях и что хорошо бы разобраться в этом.
Можно старательно прицелиться, замахнуться топором и промазать по полену. А можно взглянув бегло и наметив точку удара, почти не глядя, попасть точно, куда хотел. А, например, ковбои из приключенческих фильмов? Как можно попадать, не целясь? Непонятно.
Еще со времен учебы в школе выработалась привычка рассуждать и обдумывать проблемы с бумагой и ручкой. Школа у нас была математическая и проблемы мы решали, будь здоров, какие сложные, для своего возраста, конечно. Проблему часто можно изобразить графически, это позволяет увидеть ее целиком и подсказывает решения. Как-то, думая о девушках в общем, и о конкретных, в частности, я неожиданно для себя одним росчерком пера изобразил красивый женский профиль. Все заняло доли секунды. Штрих был четкий и твердый. Посмотрел на девушку, сидящую в соседнем ряду. Да, это она. Короткая стрижка, челка на лоб и трогательная нижняя губа. И как я ЭТО нарисовал, спрашивается? Почему именно она? Повторить? Я даже не знаю, как это начать и кого изобразить. Позже это повторялось, рука уверенно и четко изображала то, о чем я в тот момент думал. Но сделать это по желанию не получалось никогда.
Делая в школе и университете переводы с английского или на английский, заметил, что скорость работы зависит от скорости доступа к нужным страницам словаря. Но если не листать словарь, ища нужную букву и нужное слово, а сразу открывать в нужном месте, то работа идет быстрее. И это получалось. Со временем я научился хорошо владеть англо-русским словарем. Это было забавно, но это можно было повторить, в отличие от мгновенных рисунков и метких бросков. Потом появились компьютеры и электронные словари, а бумажный словарь ушел в прошлое. Больше я его не открывал.
После окончания университета я распределился на завод ЭВМ, в отдел АСУП, программистом. Место было знакомое, здесь писал диплом, здесь меня ждали. Много работал, изучал новые возможности техники, новые системы программирования. Была у меня мечта-идея – автоматическое программирование. Поэтому и следил за новинками в этой области. Заодно читал книжки по психологии, выписывал популярные журналы. В моем дилетантском понимании сложилась такая картина. У нас два полушария головного мозга. Одно отвечает за рассудочную деятельность и логическое мышление, а другое… другое отвечает непонятно за что. Кошка не прицеливается перед прыжком, она видит цель и прыгает. Если одно полушарие отвечает за осознанную деятельность, а другое за неосознанную, то, скорее всего, там и «зашита» программа, которая управляет кошкой, собакой и прочими братьями неразумными. Значит, у нас сохранилась программа, которая управляла нами, когда мы еще были обезьянами. Конечно, эта программа могла несколько измениться в процессе эволюции, интересно, насколько и как? Если не присматриваться то, кажется, что мы ведем себя разумно и контролируем свое поведение на все сто процентов. Но это только кажется. Всем знакома ситуация, когда ждешь зеленого сигнала светофора, а какая-нибудь овца вдруг пойдет на красный. И ты против воли своей тянешься за овцой, понимая всю глупость такого поведения. По-простому это называется «стадный инстинкт», по-научному «давление группы». Или, например, в комнату входит человек, вы его видите первый раз, и он вам решительно не нравится. Если вас спросить, а что не так-то? Почему не нравится? Вы неуверенно начнете придумывать разные причины, но это все явная подгонка под ответ. Другое полушарие мгновенно оценило и выдало свое заключение «не нравится, держись подальше». А почему держаться подальше, не сказало. Оно не объясняет, оно командует. В давние времена, когда от незнакомцев на тропе можно было ожидать самого худшего, такая способность была очень нужна. Она выработалась и закрепилась в процессе эволюции. Все, кто не мог оценить незнакомца быстро и точно, подвергался риску, часто совершенно реальному.
Постепенно я научился слегка пользоваться странными способностями организма. Конечно, стабильно попадать снежками в фонари не получалось, но процент попаданий все же был высок. Иногда я чувствовал это перед броском. Помогало другое полушарие не только попадать в фонари или делать страйки в боулинге. В работе программиста случаются ситуации, когда сознательная мысль заходит в тупик. Очевидные решения либо громоздки и некрасивы, либо к ним «душа не лежит». Напрягаешь мозги, пробуешь разные варианты, а толку нет. Тогда я еще раз четко формулирую для себя проблему и переключаюсь на другие задачи. Как правило, на следующий день приходит решение, неожиданное и красивое. Оно возникает в голове, как письмо в почтовом ящике. Вчера ничего не было, а сегодня вот, пожалуйста, полюбуйтесь. И в стрессовой ситуации, когда думать и рассуждать некогда, вся надежда на другое полушарие. Главное ему не мешать и доверять.
Как-то под Новый год, когда весь отдел был красиво украшен гирляндами, шарами и вырезанными из белоснежной бумаги снежинками, Ирма вызвала меня в кабинет и доверительно сказала:
– Если до праздника посчитаем тринадцатую зарплату, то получим в ее этом году. Если нет, то в апреле.
Вопросительно посмотрела на меня. Заманчивое предложение. Конечно, лучше здесь и сейчас, чем неизвестно когда в апреле. Правда прошлым летом уволился ведущий программист, который эту задачу разрабатывал и сопровождал. А значит, без засад на тернистом пути не обойтись. Задачу я передал Галке – молодому специалисту с большим стажем. Лет десять назад мы с ней в один день пришли устраиваться на завод программистами. Она после школы, я после университета. Галка была красивой и стройной, с голубыми глазами, светлой челкой и ямочками на щеках. Постоянно смущалась и красиво улыбалась. Она в школе факультативно изучала программирование в центре профессиональной подготовки и вот пришла устраиваться на работу. Ирму это развеселило. Особенно ее растрогал листок бумаги из школьной тетрадки в клеточку с подтверждением Галкиной квалификации, подписями и печатью. Специалисты тогда у нас были очень сильные. Даже старшие операторы ЭВМ с высшим математическим образованием. А тут пришла девочка после школы.
Галю Ирма приняла оператором, и как только возможность представилась, отправила учиться в ТИАСУР по путевке завода. Училась Галя долго и старательно и через семь лет вернулась солидной дамой с мужем, детьми и дипломом. Впрочем, диплом она писала здесь. К этому времени я уже стал руководителем бюро математического обеспечения. Год она поработала под моим пристальным наблюдением, выработала правильные привычки и манеру письма, освоила принципы и технологию структурного программирования, изучила предметную область. Еще через год, когда уволился Саша, разработчик задачи «Тринадцатая зарплата», я передал задачу ей со словами:
– Давай Галя, осваивай, тяни и сопровождай. Заодно вникай и в весь комплекс «Зарплата». Освоишь и потянешь – присвоим первую категорию.
У всех ведущих программистов были на сопровождении крупные задачи или даже целые комплексы задач. Сопровождение задачи всегда полно неприятностей. То изменятся требования к задаче, то появятся неожиданные изменения в данных. Могут приехать ночью, могут вызвать в праздники и выходные – задачи должны работать днем и ночью. Точно по графику данные должны быть у пользователей. В любом случае нужно мучительно вспоминать уже забытые алгоритмы, искать причины и следствия. Особенно не любили программисты сопровождать чужие задачи. Но с такой мотивацией Галя задачу приняла, как родную. Возилась с ней, что-то считала, оставляя задания на ночь. И вот момент истины. Уверенности в успехе у меня не было, и Ирма это понимала, поэтому не приказывала, а предлагала.
Подчиненный должен есть начальство глазами с видом лихим и придурковатым, дабы не смущать оного своим интеллектом.
Весело и придурковато, как в уставе Петра Первого, смотрю на Ирму.
– Да я все понимаю, Володя. Но, это самое, они думают, что считает машина, кнопочку нажал и готово. Ты тоже пойми – час назад получили разрешение и подтвердили сумму, которую можно потратить на премию.
– А когда определяли и получали, не могли нам шепнуть? Мы бы уже задачу развернули, корректировки бы ввели, пробные прогоны сделали, вспомнили бы то, чего и знать не знаем!
– Ну, вот, как-то так. Оно же всегда получается, как обычно. Что им ответить? Будем считать?
– Попробуем, Ирма Александровна. Что в силах, сделаем, вы же знаете, за деньги мы на многое способны!
Ирма на такие шутки реагирует адекватно. Она меня знает много лет. Сама и пригласила к себе в отдел. Она коренастая шатенка с волевым лицом и твердым характером. Строила отдел с нуля, оснащала техникой, подбирала специалистов. Поэтому и названия групп у нас не такие как у всех. У нас бюро. Бюро подготовки данных, бюро математического обеспечения, бюро постановки задач. Отдел у нее получился хороший. АСУП на заводе был звездой первой величины. «Хилые интеллигенты», как любила говорить Ирма, спокойно брали первые места на заводских спартакиадах и всевозможных конкурсах. Нашу стенгазету, посвященную главным праздникам страны, ждали с нетерпением. Всегда остроумно оформленная, с юмором и сатирой, в стихах и с красочными рисунками.
– Ну, вот. Бери новую машину и давай, покажи, на что вы способны. Я даю команду бухгалтерии – пусть готовят данные к расчету. Бухгалтер вам нужен? Они дадут вам кого-нибудь для поддержки.
– Нужен. Пусть сидит в боевой готовности и волнуется за нас. Если что – спросим строго!
Ирма улыбается. Смотри на меня строго и ласково. Строго – это уже привычка такая, как говорится, должность обязывает. А ласково потому, что любит нас, математиков, за непохожесть на других, за то, что делаем отдел особенным, за ответственность и азарт в работе. Мы и электронщики – белая кость, пролетарии умственного труда.
Был такой забавный случай. Я, тогда еще молодой специалист, и художник Лёша из СКБ разыграли весь завод утром первого апреля. Я подбил художника на это опасное дело. Мы были в курсе чаяний трудящихся завода и все это щедро им преподнесли. Утром на огромной доске объявлений завода появились обычные, привычного всем стиля, скучные по виду и волнительные по содержанию объявления, написанные твердой рукой профессионала на листах ватмана разного размера. Любителей спорта оповещали, что бесплатных абонементов в бассейн много и хватит всем! Книголюбов радовали деловые предложения составлять списки желаемой литературы (не более 20 наименований в одни руки). Было объявлено, что, наконец, откроются обувная мастерская и парикмахерская, о которых много лет говорилось на каждой профсоюзной конференции. Мы с Лёшей подговорили знакомую дежурную в табельной и 31 марта, когда ночью завод опустел, она спокойно вывесила эти объявления. Утром у доски непривычно толпился веселый народ. Понятно, что первого апреля все воспринимается иначе. Я объявления читать не стал, порадовался настроению масс и побежал работать. Вдруг звонок, снимаю трубку и слышу, что меня приглашают в партком завода, немедленно. Удивляясь и беспокоясь, поднимаюсь на этаж заводоуправления. Захожу в приемную, секретарь секретаря парткома проводит в кабинет. В кабинете грустный Леша и наш парторг. У парторга была партийная кличка Верблюд. Это за брезгливо оттопыренную губу и пренебрежительное отношение к массам. Верблюд длинно и проникновенно объяснил нам, как плохо мы поступили, намекнул на последствия, строго велел задуматься над нашим поведением и написать объяснительную записку. И пообещал принять меры! Вышли мы, совершенно без настроения. Леха пошел к себе писать записку, а я к себе. По дороге встретил Ирму. Чуткий женский глаз не обманешь.
– Колись, что случилось?
Пару секунд колебаний. Нет, Ирме нужно рассказать. Неловко будет, если ей на какой-нибудь планерке парторг начнет выговаривать, по поводу недостойных поступков отдельных товарищей, позорящих весь коллектив.
– Объявления видели? Ну, вот я и организатор и вдохновитель. Еще художника из СКБ подбил на это гнусное дело. Парторг очень не одобрил, сейчас сидит меры придумывает и велел писать записку.
– Ну, молодцы! Ваша, значит, работа. Юмористы!
То ли поругала, то ли похвалила без особого энтузиазма Ирма.
– Выбрось из головы парторга и иди работать. Директор читал ваши объявления и сказал, ну, вот хоть кто-то что-то придумал. Так, что ты, это самое… работай спокойно.
При этом Ирма слегка нахмурилась, линия рта стала четче. Кивнув мне, она резко повернулась и быстро пошла в сторону заводоуправления.
Психика у меня всегда отличалась стабильностью, и уже через десять минут я так закопался в лабиринты алгоритмов, что не слышал звонка телефона у себя на столе. Коллеги меня растолкали и дали в руки трубку. Опять звонила секретарша парторга и просила срочно зайти к ним. Придумал, видно, меры Верблюд. Настроение опять упало до нуля. Забегаю на этаж, встречаю Лёху у дверей с листком бумаги. Быстро он написал объясниловку, молодец. А я совсем забыл, попадет мне от парторга опять. Входим сразу в кабинет. Парторг сама любезность. Встает с места и разводит руки, улыбается, слегка наклонившись нам навстречу. Поза искреннего радушия. Долго успокаивает нас и настойчиво просит не писать заявлений на увольнение. Предполагает, что мы еще долго и хорошо будем работать на благо родного завода. Молча выходим в приемную. Секретарша улыбается, она знает причину перевоплощения Верблюда в человека. Алексей смотрит на меня шальными глазами, мнет объяснительную записку и спрашивает:
– Ты что-нибудь понял?
Я делаю загадочное лицо и проникновенно говорю:
– Знаешь, Лёха, если вникнуть в его странные речи, и выполнить обратную интерполяцию, все становится ясным. Кто-то очень решительный и волевой сказал ему, что если эти парни уволятся, то ты, Верблюд, пойдешь следом. Вот и все.
Интерполяцию я тут упомянул, для драматического эффекта. Вот такая была история. Нужно сказать, что не все парторги того времени были такими. Предыдущий наш парторг был замечательным человеком и, уйдя на повышение, оставил о себе хорошую память.
Получив от Ирмы ЦУ по предстоящему расчету и полагающуюся в таких случаях долю мотивации и еще наказ лично проследить, чтобы «все закончилось хорошо», возвращаюсь в бюро. Настроение сложное, жизнь у программистов и так не позавидуешь, а тут еще и неожиданности всякие. Формально, проблемные программисты не обязаны проводить расчеты сами. Для этого есть ИВЦ с операторами, подготовкой данных, системными программистами. Но тут случай особый. И задача сырая и времени совсем мало. В идеале все нужно закончить к приходу первой смены. Случись сбой в программе во время расчетов, системщики сделать ничего не смогут, и время будет потеряно. Придется ночью работать. Одну Галку оставлять страшно. Эту задачу мы с ней знаем плохо, первый раз будем считать самостоятельно, без разработчика.
Нарочито спокойно и буднично говорю Галке:
– Домой, сегодня не идешь. Звони мужу.
Это и приказ, и сигнал чрезвычайной ситуации. Он ставит все на свои места. Это и степень важности, и рубеж обороны и сроки исполнения – до победного конца!
Чуть громче, чтобы слышали все:
– Если посчитаем тринадцатую зарплату, то к Новому году получим. Если нет, то в апреле.
Небольшая буря эмоций, шутки, пожелания успеха и флага в руки. Галя в легком шоке, на лице и в красивых глазах быстрая смена настроений, ну прямо слайд-шоу и, в конце концов, легкая паника под покровом явного удовольствия от всеобщего внимания. Звездный час! Подождав, немного, возвращаю ее на землю:
– Бухи готовят данные, после обеда принесут первые корректировки. Давай готовься.
Неуверенность и осознание ответственности в ее глазах. Понимание серьезности проблемы. Приятно красиво умереть на виду отдела, но тут весь завод будет придирчиво смотреть с корыстным интересом – с деньгами праздник становится праздничнее. Успокаиваю:
– И не трусь. Я тебя подстрахую. Расчет проведем вместе.
Ловлю благодарный взгляд и иду заниматься своими делами. Пока не принесли корректировки нужно их как-то завершить. Сажусь за стол и понимаю – у меня нет сегодня важных дел. Еще десять минут назад их было больше, чем хотелось. Другое полушарие уже все решило и точки, где нужно расставило. Переоценка ценностей и установка новых приоритетов. Некоторое время пытаюсь сопротивляться желанию немедленно что-то делать, но чувствую, что это бесполезно. Есть вероятность, что все проблемы с расчетом за одну ночь не решим, от этого и нервное напряжение. Помню, Саша сделал всего один полный расчет и с большими трудностями.
Иду в ИВЦ. Нужно договориться о машине на всю ночь и спросить, кто из электронщиков дежурит. Машина должна работать как часы. У нас программных проблем будет достаточно, аппаратных совсем не хочется. У программиста с таким заданием полномочия неограниченные. ИВЦ мне не подчиняется, у них есть свой руководитель, но мои пожелания и просьбы они принимают к немедленному исполнению. Весело и безоговорочно.
– Ты, боярин, только скажи что сделать! А уж мы не подведем!
Ну, вот, Галчонок. Теперь никто кроме нас.
Ближе к концу рабочего дня принесли первую партию корректировок. Нужно сказать, что расчет тринадцатой зарплаты не похож на другие задачи. Это был длительный и многоэтапный процесс. Примерно с месяц назад мы распечатали данные работников и раздали по подразделениям. Каждый работник мог лично проверить свой стаж, оклад или средний заработок, дату приема, должность. После чего распечатки оправили в бухгалтерию, где всё должны были еще раз проверить, убедиться в правоте трудящихся и передать корректировки нам. Еще бухгалтерия готовит списки тунеядцев, алкоголиков и хулиганов, которым премия не положена вовсе и списки мелких нарушителей, которым премию снижают на указанный процент. Отдел АСУП свою часть работы выполнил, а бухгалтерия как-то не торопилась. И вот сегодня они в авральном режиме срочно делали все проверки и составляли списки. По мере завершения приносили нам распечатки с корректурами, сделанными четкими, уверенными женскими почерками.
Сидя за монитором в бюро подготовки данных, мы сосредоточенно, на максимальной скорости, заносили эти корректировки в базу. Я за клавиатурой, Галка диктует и контролирует меня. Я нахожу нужную запись и изменяю ее. Сохранять сосредоточенность и внимательность долго не получается. Как только пальцы начинают заплетаться, и скорость падает, мы меняемся. Работы много, а ночь уже не за горами. Время от времени возникают вопросы к бухам, тогда Галка идет к телефону и задает их дежурному бухгалтеру.
К полуночи все введено и проверено. Усталость валит с ног. От кривых строчек больших зеленых символов графического дисплея круги перед глазами. Отпускаем бухгалтера домой, она свое дело сделала. Пьем чай и десять минут отдыхаем, затем идем в машинный зал. Можно начинать расчеты.
В зале гул сотен вентиляторов, шипение кондиционеров, тонкий писк электроники. Воздух насыщен энергией. Освещение приглушено и на консоли процессора ярко мигают ряды разноцветных огоньков. Сегодня это трудно представить. Это и тогда мало кто видел, а сейчас тем более. Большие элегантные шкафы памяти рядами, сине-белые стойки управления и линейки внешних устройств. Все деловито гудит и мигает индикацией. Больше всего машинный зал похож на огромную материнскую плату, положенную горизонтально. Если снять боковую крышку системного блока вашего компьютера и положить системный блок набок, то получится полная аналогия с машинным залом ИВЦ. Операторы ходят между блоками памяти, дисковыми накопителями, процессором, каналами связи, модемами и прочими устройствами, которые сейчас интегрированы на материнской плате. Машины у нас были хорошие. Две ЕС-1035 с линейкой дисководов и двумя кубами оперативной памяти. Есть чем гордиться. Галка садится за монитор в кресло оператора, я стою рядом. В конце концов, это ее расчет. Я тут только вторая голова с руками и ногами.
Расчет выполняется затейливо. Бухгалтерия дает цифру – сколько денег разрешено потратить на это полезное для трудящихся дело. Программа делает расчет, используя коэффициенты, проценты, стаж работы, годовую зарплату и получает свою цифру. Мы сравниваем свою цифру с заданной. Если денег насчитали мало, то повышаем коэффициенты для разных категорий, и опять считаем. Если насчитали много, то коэффициенты понижаем. И так несколько раз пока не выйдем на заданную цифру, плюс минус несколько тысяч рублей.
Первый расчет дает большой недолет. Насколько повысить коэффициенты не понятно, не с чем сравнить и не на что ориентироваться. Повышаем коэффициенты не жалея, чтобы получилась «вилка», как в артиллерии и запускаем второй расчет, с нетерпением ждем. Самое неприятное в расчётах – это ждать. Время то бежит с сумасшедшей скоростью, то начинает тянуться невыносимо медленно. Вот включился мощный двигатель, застучало АЦПУ – большой принтер формата А3, с невероятной скоростью печати. Бросаемся смотреть и замираем. Что это? На листе что-то совсем не похожее на результат. Какая-то грязь, только издали напоминающая результат расчета. Становится грустно. Смотрю на Галку вопросительно и эмоционально комментирую ситуацию.
– Сейчас повторим расчет, у меня уже так было, говорит она, – что-то там глюкает иногда.
Запускам и опять ждем. Нервы напрягаются. Я тогда еще не привык к тому, что вычислительная машины всегда должна выдавать стабильный результат и когда она это делала, получалось маленькое чудо. Стоим у АЦПУ и ждем. Вот заурчал мотор, закрутились шестеренки, и с дробным звуком бумага рванулась вперед. Есть результат! Смотрим на цифру – большой перелет. Но зато есть пропорция. Прикинув корреляцию, делаем корректировки коэффициентов и запускаем программу снова. Чувства уверенности нет, борюсь с трясучкой и нервной дрожью. Дефицит времени растет, а доверие к программе пропало. Долгая зимняя ночь просто тает на глазах. Четвертый расчет опять в корзину. Запускаем еще раз и еще и еще. Как бабка отшептала! Времени теряем много, а результата нет. И сколько мы так будем считать? Так жить дальше нельзя – нужно пойти утопиться!
– Галка, делай свежую распечатку именно той программы, которая сейчас работает. Я чай поставлю.
Включаю чайник, готовлю заварку. К чаю ничего нет, только сахар. Размышляю о неприятностях в целом и общем. Программу нельзя сглазить, она не материальна. А вот машину можно! Чем ламер отличается от программера? Программист не наступает на грабли дважды. От невеселых мыслей отвлекает Галка. Шурша охапкой бумаги, она влетает в комнату. Величина распечатки огорчает.
– Да, Галка, большая «портянка». Ну, расстилай. Посмотрим, где собака зарылась.
Кладем исходник на стол, начинаем его просматривать, Я за столом, Галка примостилась напротив, уперев локти в стол и красиво отставив зад. Белая лента бумаги с широкой полосой текста программы на ней. Понимаю, что вникать в текст это долго и бесполезно. Утром и на свежую голову я бы в ней разобрался. Молча смотрю на затейливый орнамент операторов, пробегаю глазами раздел процедур, привыкаю к программе, мнемонике переменных и особенностям стиля. Лента текста, красиво изгибаясь, бежит от одного края к другому. Саша писал в тяжелой манере, плотно и насыщенно и это хорошо – меньше ерзать по бумаге глазами. Структура программы несколько архаична, но проста и наглядна, действие разворачивается слева направо и сверху вниз, это радует. Но это всё впечатления. Голова пустая и легкая, как жестяной чайник, ни каких идей. Пауза затягивается и становится тягостной. Ну, давай, шестое чувство, подсказывай, невесело думаю я. Мир незаметно сужается до ширины листа. Глаза расслаблено рассматривают строчки, выделяя управляющие конструкции, блоки, циклы. Пробую рассуждать логически, сопоставить странные результаты с алгоритмом программы, это трудно. Все-таки программа чужая. Вдруг стали появляться желания. Захотелось посмотреть текст сначала. Смотрю. Кажется, началось. Я перестаю морщить лоб и напрягать логику. Прислушиваюсь к желаниям организма. Вот! Оно! Возвращаюсь в реальность с криком:
– Галка! Это что за грязное пятно на нашей репутации!
– Ну, переменная, какой-то счетчик. – В голосе робкая надежда.
– Смотри, это у Саши переключатель, от него зависит, какие блоки будут работать. Где начальное значение? Так, смотрим, как он объявлен. Ага, десятичное число длиной в одну цифру. А начального значения нет. Туда попадает «грязь» из тех не чищеных ячеек памяти, куда переменная распределилась. Если в результате интерпретации значения по формату получается нуль, то программа работает нормально, если нет, то расчет данных пропускается, и программа начинает старательно обрабатывать пустые массивы. Понятно, вероятность нуля в ячейке в десять раз меньше чем всякой другой цифры отсюда и упорное «нежелание» программы работать правильно.
Хватаю со стола синий карандаш и пишу, куда вставить корректировку.
– Давай, Галя.
Галка бежит к монитору править программу. Я смотрю на ее напряженную спину, красивые ноги, аккуратно поставленные на подножку столика, руки, бегающие по клавишам. Холодок бежит по спине и становится жарко. Она еще не понимает. Возможно, самое интересное у нас впереди. Поправив модуль и собрав программу редактором связей, Галка встает, смотрит на меня и улыбается, в глазах опять уверенность и вопрос. Чего сидим, когда уже можно делать расчет? Вопрос становится явственней, уверенности уже меньше.
– Вова? Что-то не так?
Улыбка и ямочки на щеках исчезают.
– Галка, у нас не последний вариант программы. Пиночет не мог сдать задачу с такой «грыжей», – говорю я весело и беззаботно. – Это для нас его программа – новые ворота, а ему, чтобы исправить эту ошибку три секунды нужно было.
Пиночет – прозвище Саши за любовь к темным очкам, явное сходство с чилийским диктатором и черную щеточку усов. Галка смотрит на меня, и я вижу, как расширяются ее зрачки и голубые глаза становятся синими. Под ресницами густые тени – устала девчонка. Да, Галка, Мёрфи был оптимистом.
– Это последняя библиотека, которую я нашла в архиве. И что теперь?
– Ну, какой у нас выбор, Галя? Думать нам некогда, будем трясти.
Чай остывает на чайном столике. Искать последний вариант программы можно было вчера, сегодня уже поздно. Будем надеяться.
К нашей радости расчет заканчивается нормально. Цифра в допустимом интервале. Еще чуть правим входные коэффициенты и опять запусками программу. Получаем заданную сумму плюс пара тысяч рублей. Мелочь, но приятно. График уже не нагнать, зато результат блестящий. Это вам АСУП, а не где-то там.
Кто-то мудро сказал:
– Если вы сделали работу плохо, но быстро, то быстрота выполнения со временем забудется, а то, что вы сделали плохо, будет видно всем.
Следующий этап – формирование расчетных ведомостей на весь завод. Запускаем программу печати и делаем пробную распечатку по отделу АСУП. Проверяем полноту и правильность данных. Находим себя и своих коллег. Все верно. Можно печатать на чистовик. Включаем другое АЦПУ для качественной печати, заправляем фальцованную бумагу. Галя за монитором, я у устройства. С минуту сонно поморгав разноцветными лампочками, машина начинает печать.
Широкая лента бумаги быстро бежит по тракту и сама собой укладывается ровной стопкой. Так бы и стоял, не шевелясь, глядя на сливающиеся в серую полосу строчки. Рука на пульте устройства – вдруг бумага замнется, тогда успею остановить поток, поправить и продолжить. Подходит Галя, берет за руку и кладет голову на мне плечо. Чернота за высокими стеклянными стенами машинного зала сменилась густым ультрамарином. Интересно, который час? В голове что-то сдвинулось, и я почувствовал: скоро семь, точнее шесть пятьдесят пять. Рука с часами в Галкиной руке и я не хочу проверять свое подсознание, как это делаю обычно. Оно не ошибалось никогда. Я потерся щекой о ее волосы, она подняла голову и сказала.
– Скажу девочкам, чтобы проследили за печатью и попьем чаю, наконец.
Да, можно отдохнуть пока идет печать. Операторы сами все сделают. Потом передадут распечатки бухгалтерам и получат от них разрешение на печать платежных ведомостей. Разрешение, это формальность, но раз бухи уже будут здесь к этому времени, выполним ее. Платежки – это финиш, цель нашей работы и источник благосостояния трудящихся. Пока пили чай, незаметно взошло солнце, отдел ожил, послышались голоса.
Пришла Ирма, первый вопрос:
– Что с расчетом? На каком этапе? Платежки выдали?
– С расчетом нормально, Ведомости расчетные идут. Пришлось повозиться с корректировками, очень их много было. Платежки еще не начинали печатать.
Треск и шум АЦПУ, доносившийся до нашего бюро по коридору, утих. Ну, кажется все. Платежки операторы распечатают и без нас, можно собираться домой.
– Ну, вот Галка, а ты боялась, говорю я, грустно прихлебывая чай. Ну, хоть бы кто-нибудь бутерброд догадался принести! Мы тут всю ночь на амбразуры бросаемся, а чай пьем без всяких бубликов!
– Вот еще. Ничего я не боялась. Вдвоем не страшно. У электронщиков что-нибудь всегда остается, пойти спросить?
Улыбаюсь. Могла бы сказать: «С тобой не страшно». Но, Галка низкой самооценкой не страдает и уверенно делит успех пополам.
– Да, ладно, не ходи. Скоро домой пойдем, дождемся, когда платежки начнут печатать и пойдем.
В двери появляется рыжая голова Татьяны из бюро эксплуатации задач, она делает большими свои зеленые глаза и говорит:
– Володя, с платежками что-то странное. Пойдите, посмотрите, может операторы что-то путают?
Сон и усталость исчезают. Вот они грабли, откуда не ждали! Вместе с Татьяной смотрим на кусок бумаги с какими-то полосками и строчками букв. Да, на платежную ведомость это не похоже. Это не похоже ни на что. Спрашиваем у девочки-оператора, что и как выполнялось. Ошибок оператора нет.
– Ну, Галя, давай смотреть программу, неси листинг. Таня, расскажи, какой должна быть платежка, чтобы ее приняла бухгалтерия.
Все просто и понятно. На титульном листе должно быть наименование подразделения, общая сумма по ведомости числом и прописью, количество листов. На каждой странице номер, и итог по странице. Кажется все просто, но по опыту знаю, такие вот ведомости самые геморройные. Галка приносит распечатку модуля. Расстилаем и смотрим. Невооруженным глазом видно, что программа просто не отлажена. Пора впадать в отчаяние.
– Да, это нам не пригодится. Готовь контрольный пример на два маленьких подразделения. Будем писать свою программу.
Спрашиваю Татьяну, как выдавали платежки в прошлом году, и почему тогда все было нормально. Оказывается, отдельно платежки не выдавали, просто рассчитали суммы премии и включили ее в зарплату. Понятно, до зарплаты еще далеко и такой фокус у нас не получится.
Сажусь за Галкин стол с легким чувством безнадежности, беру чистый лист и любимую черную перьевую авторучку. Закрываю глаза и пытаюсь представить программу. Получается что-то рыхлое, противного бледно-желтого цвета, как… даже не знаю, как назвать. Начинаю набрасывать схему программы на псевдокоде. Черные чернила приятно ложатся на бумагу. Сейчас такую программу можно сделать за три часа, а тогда все было сложнее. Программисты работали так же усердно, а программ писали в десять раз меньше. В другой ситуации я бы запланировал на нее два-три дня, в зависимости от квалификации исполнителя. Но у нас нет даже одного дня.
Старательно пишу условия и формулирую действия. Делать пошаговую детализацию нет смысла, все достаточно просто, только бы ничего не упустить. Так, титульный лист печатаем последним, чтобы за один проход сделать все по одному цеху и собрать итоги. С последовательными файлами других вариантов нет. Особое внимание обработкам конца файлов.
Прибегает Ирма. В глазах и упрек и надежда и вопрос «когда?». Танечка уже доложила о неудаче. Успокаивать ее нет сил. Времени тоже. Спасибо ей за понимание и терпение. За сутки подошла второй раз.
Сажусь за монитор и начинаю вводить исходник программы прямо из головы. Держать одновременно все нюансы в памяти невозможно, и я не напрягаюсь – потом, все нюансы потом. Быстро и внимательно набираю скелет программы из управляющих конструкций, циклов и обращений к файлам. Старательно обрабатываю ситуации конца файлов и завершение программы. Четкие строчки на экране алфавитно-цифрового дисплея рождаются трудно. Исходный текст не вводится, как статья или рассказ, последовательно. Он вводится конструкциями и структурами языка, которые вкладываются друг в друга или следуют друг за другом. Язык программы – английский. Точнее, его подмножество с гордым названием PL/1. Красивый и мощный язык программирования, дававший нам неограниченные возможности. В те времена я мечтал о таких средствах программирования, чтобы можно было писать тексты программ легко и свободно, как произвольный текст. Сейчас это есть, но вы не представляете, как это скучно! Пока руки работают, в голове идут свои параллельные процессы. Размышляю о цвете языков программирования. Почему-то PL/1 лимонно желтый, а вот КОБОЛ коричневый, ФОРТРАН темно-синий. Понятно, что всё имеет свои цвета, но чем они определяются? Хорошо бы разобраться.
Прошу Галку транслировать и прогнать то, что уже набрал, и показать мне что получится. Отлично! Программа сработала без сбоев и выдала результат. Мир опять уходит за горизонт, пространство сужается до размеров черного экрана с зелеными строчками, руки летают над клавиатурой, в голове пусто и тихо. Скелет обрастает плотью, наполняется смыслом. Выдаю второй вариант программы Галке и смотрю результаты. Уже обед? А вот совсем недавно было раннее утро. Пора включать голову, программа написана, будем ее тестировать. Вот она ведомость. Внимательно проверяем, все есть? Сумма прописью, итоги по странице, ровные колонки «К выдаче», никто не пропущен, все в списке. Добавляю в контрольный пример всякие нелепые ситуации, например, человек в списке есть, а премию ему не начислили, или премия есть, а работник уже перевелся в другое подразделение. Тестирую аварийную печать и обработку нестандартных ситуаций. Пока все в голове нужно сделать работу хорошо. Готово! Сейчас попробуем на реальных данных, на двух-трех маленьких подразделениях и все. Теперь уже точно все.
Все, финиш. Все распечатано и отправлено в бухгалтерию. Мы не опоздали, хотя график, установленный мной, выдержать не удалось. Четырех часов чистого машинного времени хватило бы на все, а мы из-за программных проблем потратили сутки. Напряжение прошло, легкая эйфория. Пора идти домой, но мы медлим. Торопиться некуда и двигаться не хочется. За окном вечереет и небо розовое от заката. Четыре часа дня.
– Все, Галка, бери шинель, пошли домой! Хватит тут трудовой распорядок нарушать. Тридцать два часа без перерыва на обед – это уже особый цинизм! Нельзя так любить деньги!
Пока собирались, да прощались, принесли деньги. Кассир Юля начала их выдавать. Весь завод получит премию завтра, а АСУП и бухгалтерия, в знак глубокого к себе уважения и признательности, сегодня. Нас с Галкой берут под руки и ведут в кассу, опять шутки и смех. Галка улыбается усталым лицом, на щеках играют ямочки. Юноша влюбляется в ямочки на щеках девушки, а замуж вынужден брать всю девушку. Кажется, так сказал писатель. Пересчитываем не отходя. Получилось солидно и достойно. Выходим на морозный воздух и, хрустя льдом, идем на остановку автобусов. Двадцать девятое декабря, послезавтра год закончится. Спасибо тебе, другое полушарие, что бы мы с Галкой без тебя делали.
© Владимир Шестопалов, 2017
Количество просмотров: 1358 |