– Где не хватает? – юноша тычет в программу ручкой, но к нам не подходит.
– Ниже, ниже. Вот тут.
– Я проверю.
Он садится за ближайший свободный стол, внимательно смотрит в распечатку, потом растерянно подтверждает:
– Не хватает.
Он был так обескуражен, что даже не попросил объяснить фокус. А фокус был совсем прост: транслятор увидел один апостроф, понял, что дальше следует текстовая константа, и попытался понять, где она заканчивается, но так и не смог этого сделать, просмотрев программу до конца. Как следствие он ни одного оператора дальше не определил, и колонка с номерами операторов, которую я видел как черную вертикальную полосу на левой границе распечатки, пропала как раз на строке, в которой стоял непарный апостроф.
Молодым программистам
Все может быть.
Представим, вы умрете,
Вас выгонят,
Сгорите на работе,
Или на базе вас придавит
Свеклой в таре…
Пожалуйста, пишите комментарий.
И помните: будет хуже
Я не помню, как появилась трещина на стекле в комнате нашего отдела. Не то сама, не то кто-то в кого-то что-то кинул. Но она появилась. Мы заклеили трещину скотчем и написали заявку в хозяйственный отдел о замене стекла.
Через полгода, когда в комнату зашел пожилой стекольщик, никто уже не мог вспомнить, когда и кто его вызывал, но трещина была, и мы ее стекольщику показали. Он внимательно рассмотрел стекло и произнес замечательную фразу:
– Я, конечно, могу заменить, но будет хуже.
Десять юных программистов с хохотом попадали на свои столы (благо клавиатур на них еще не было: они появятся на столах программистов только лет через десять), а обиженный стекольщик пояснил:
– Ну ведь действительно будет хуже: вы сейчас заклеили стекло, и из него не дует, потому что оно стоит на замазке. А у меня замазки нет, я вам новое стекло поставлю на гвозди, и будет дуть.
Тридцать лет прошло. Но каждый раз, когда сисадмин озадаченно интересуется, почему я не даю команду установить новую версию операционной системы или почтового клиента на всех компьютерах офиса, я вспоминаю стекольщика.
Определение полноты функционала системы по весу магнитной ленты
Мне впервые поручили самостоятельно разработать небольшую подсистему учета железнодорожных специалистов с высшим и средним специальным образованием, чтобы прикрыть собственную задницу. Приказ о ее разработке исходил из министерства и обсуждению не подлежал, начать эксплуатацию требовали через два месяца, а шансов на это при тогдашних темпах отладки программ практически не было. Работа как раз для молодого специалиста, которому по служебной лестнице скатиться некуда.
Шеф посоветовал использовать разработку своего знакомого, которому для защиты диссертации нужна была справка о внедрении, поэтому он был готов отдать свою систему даром и обеспечить ее сопровождение. В реляционной СУБД был заложен функционал простого описания таблиц и работы с ними, так что, если она случайно работала, нам для реализации проекта оставалось только «подработать напильником по месту», организовав входной контроль информации, ее ввод и печать необходимых отчетов.
С мужиком этим встречались мы почему-то в метро. Наверно, кто-то из нас куда-то спешил. Мобильников тогда не было, но нам тем не менее удавалось договариваться о встрече и встречаться со всеми, кто был нужен.
Найти этого человека среди стоявших на платформе было нетрудно: он держал в руках полиэтиленовый пакет с магнитной лентой. Мы поздоровались, он произнес несколько слов, соответствующих моменту, предложил звонить, если что, и отдал мне бобину и переплетенную документацию. То, что документация была на синьке, говорило об определенной тиражности программного продукта.
Ленту он отдал вместе с пакетом, что было большой щедростью (полиэтиленовых пакетов с ручками в те времена в продаже не было, их добывали на иностранных выставках).
Я взвесил пакет в руке, открыл документацию, просмотрел оглавление, потом отыскал одну страницу, глянул на нее и ласково сказал:
– У вас тут описаны теоретико-множественные операции. Но ведь вы их не реализовали, да?
Выражение его лица доставило мне большое удовольствие.
– Да, но как вы…
– Это просто. Когда бы вы дошли до операции объединения, вы бы обнаружили, что на клавиатуре нет твердого знака, и на что-нибудь его заменили. А пока он у вас присутствует даже в описании синтаксиса.[5]
Андрей Орлов имел возможность наблюдать развитие информационных технологий, находясь, как пишут в газетах, в гуще событий. В его активе – 30-летний опыт разнообразной работы в этой сфере, от программирования до руководства ИТ-коллективами и ИТ-проектами, в том числе на уровне CIO. Одним из первых проектов была система послерейсового анализа движения локомотивов. Одним из последних – руководство группой отделов, обеспечивающих использование ИТ в центральном офисе, а также многочисленных складах и магазинах по всей России группы компаний «Ж» (розничная торговля обувью и авторской одеждой).
«С Орловым просто и удобно работать, если вы готовы к тому, что вопросы автоматизации станут почти основными вопросами фирмы. Если вы ищете CIO, наверное, так и должно быть. Приятно то, что уже несколько лет после его ухода система работает и „даже выдает верные результаты“» – говорит один из его работодателей.
За то время, пока информационные системы эволюционировали от «игрушки» для директора завода до жизненно необходимого элемента бизнеса, Андрей Орлов получил второй разряд по альпинизму и первый – по водному туризму. И написал книгу о том, какие «грабли» ожидают «участников увлекательного процесса автоматизации предприятий – от генерального директора до оператора по подготовке данных», и как на них не наступать.
Ныне именуемые Microsoft Dynamics. – Д. К.
А годом ранее Navision приобрела компанию Damgaard, которая и была разработчиком Axapta. Такие вот дела. – Д. К.
Мне встречался специалист, рекомендовавший почаще форматировать винчестер. – Д. К.
Наверное, желание во что бы то ни стало работать на софте и компьютерах самой последней модели – порождение маркетинговых усилий поставщиков программ. Кто мне может сказать, что полезного добавлено в Microsoft Office за последние десять лет? – Д. К.
На клавиатурах устройств для ЕС ЭВМ не было твердого знака. Поэтому в машину нельзя было ввести слово «объединение». Если бы функция была реализована, разработчикам пришлось бы как-то решить эту задачу: или писать слово с мягким знаком вместо твердого, или использовать двойную кавычку, или заменить само ключевое слово. Но тогда бы они и в документации привели то название операции, которое на самом деле вводили.