Литмир - Электронная Библиотека
A
A

– А там что за проблема?

– Все время нарушается сортировка выходного массива, пропадают записи: то основного файла, то корректуры.

– Все ясно, неверный алгоритм слияния файлов. Я посмотрю. Кстати, в упомянутой мною книге приведен алгоритм слияния любого количества файлов. Для каждого файла нужно иметь две булевы переменные: открыт/закрыт, читать/не читать. Установка первой переменной понятна, а установка второй определяется по результатам сравнения ключей каждого файла друг с другом.

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

– Это говорит о наличии у вас алгоритмических способностей!

– Спасибо! Но судя по всему не очень.

– Все будет отлично. Я уверен.

Так оно и оказалось. Через месяц программа разузлования в пакетном варианте была сдана в эксплуатацию. Анализ программы Бодровой показал, что Виталий оказался прав. Для трех файлов, двух на входе и одного на выходе начинающая программистка ухитрилась написать восемнадцать программных блоков для различных вариантов сравнения текущих значений ключей входных файлов. С помощью Екатерины она доработала и сдала программу в эксплуатацию до ухода в декрет. Бодрова занималась своей программой почти девять месяцев, что дало повод для соответствующих шуток.

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

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

Виталий недоумевал, почему не используется язык высокого уровня КОБОЛ, специально предназначенный для обработки организационно-экономической и учетной информации. Производительность труда программиста с использованием КОБОЛ в три-пять раз выше, чем на ЯСК.

Сначала он побеседовал со своими подчиненными. Все в один голос указывали на Ковтенко. Это он подсунул Брилю журнальную статью, где приводились сравнение быстродействия тестовых программ на языках высокого уровня и машинно-ориентированных языках. Время решения тестовых задач на машинном языке в среднем было почти в два раза меньше, чем для языков высокого уровня. Этот факт был широко известным, знал о нем и Виталий. Действительно существовал класс задач, которые было не эффективно программировать на языках высокого уровня, потому что экономия на программировании затем оборачивалась потерями в процессе эксплуатации. Но в их ситуации, когда на годы срывались сроки реализации плана по АСУ, когда две ЭВМ использовались с натяжкой четыре часа в сутки при нормативе пятнадцать часов, причем три часа из четырех на отладку программ, запрет программировать на языке КОБОЛ выглядел, по меньшей мере, как недомыслие. На самом деле это был откровенный саботаж.

Виталий так и сказал об этом Брилю при разговоре наедине:

– Конечно, вы как ответственный за разработку можете использовать КОБОЛ, но сдавать программу вы должны службе эксплуатации, поэтому вы должны убедить Петра Федосеевича.

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

– Давайте проведем совещание, пригласим ваших специалистов и от служб эксплуатации: электронщиков, операторов…

– Не возражаю против совещания, однако не понимаю вас. Ресурсами отдела распоряжаетесь вы или Ковтенко? У него есть утвержденные нормативы времени решения задач?

– Нет, машины все равно не загружены.

– Не имеет значения. Сегодня не загружены, через год не будет хватать машинного времени, если не планировать загрузку ЭВМ строго по нормативам.

– Я считаю, что вы как разработчики и должны выдавать нормативы.

– С этим замечанием полностью согласен. Инструкции по эксплуатации будут теперь содержать нормативы времени в обязательном порядке. А после утверждения вами инструкции операторам, Ковтенко должен взять под козырек и исполнять, а не диктовать на каком языке программирования нам разрабатывать программы.

– Все же я просил бы вас доложить все это на совещании.

– Назначайте время проведения и состав участников.

– А вы не боитесь, что переход на КОБОЛ приведет к еще большему отставанию от плановых сроков.

– Задержка на обучение займет от силы один месяц. Потом мы наверстаем этот месяц и догоним плановые сроки. Уж это я могу гарантировать.

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

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

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

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

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

Анатолий Долгих, программист, который, кстати, освоил КОБОЛ быстрее всех, противился нововведениям больше всех.

– Виталий Семенович! Вы превращаете нас в заурядных кодировщиков. Никакого творчества!

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

– Так то оно так. Но программисту дается всего три дня, а разработчик готовит ТЗ месяц…

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

Жена Долгих Людмила была тоже программистом и работала в том же бюро. Столы супругов стояли напротив. Конечно, он в разработку не перешел. Эта пара все годы демонстрировала стабильное качество и соблюдение сроков сдачи программ в эксплуатацию.

В конце июля Бриль и Ковтенко одновременно ушли в отпуск. Случай был нетипичный. Неписанное правило на предприятии требовало, чтобы перекрытие отпуска у начальника и одного из замов было не больше недели, а если зам один, то перекрытия вообще не было. Сначала Давиденко недоумевал, с чего бы это. Потом догадался. Это был тест на выживание. Расчет аванса и заработной платы были критическими работами. Срыв сроков выдачи документов в бухгалтерию больше чем на сутки означал скандал масштаба предприятия, которым будут заниматься профком (нарушение коллективного договора), партком (политическая акция) и руководство (неспособность организовать работу).

25
{"b":"89085","o":1}