Практически во всех системах, о которых я здесь пишу, есть кое-что общее: они плохо спроектированы, плохо закодированы, и еще хуже задокументированы. Сегодня я счастлив поделиться с вами системой, которая не совсем похожа на все остальные. Это неплохая программа и что самое важное, она очень хорошо документирована. Очень, очень хорошо документирована.
Георг Нахт разработчик ПО из одной пост-коммунистической европейской державы. В середине 1990-х его правительство решило, что пришло время заменить их иностранные реактивные истребители времен Советского союза на современные, более дешевые истребители собственного производства. А так как они модернизировали парк, они решили заодно модернизировать и подготовку пилотов. Это означало, что надо было разрабатывать новую программу интерактивного летного симулятора.
Вместо того чтобы идти к дорогущему субподрядчику от министерства обороны, ВВС решили попробовать кое-что новенькое. Они передали контракт небольшой игровой фирме, в которой и работал Георг. Хотя это был их первый государственный контракт, они были убеждены в том, что представят готовый продукт вовремя и не выйдут за рамки бюджета. В конце концов, требуемый симулятор был проще, чем тот, который они закончили совсем недавно: никаких таблиц с лучшими результатами, красивой анимации или чего-то подобного. Только основы.
Ответственным лицом со стороны ВВС был старый суровый генерал с богатым опытом ведения воздушного боя и сорокалетним послужным списком. Естественно он сильно сомневался, что новичкам удастся разработать продукт "военного уровня". Ведь эти ребята даже не провели ни дня в форме. Но команде Георга удалось быстро переубедить его демонстрацией своих возможностей: всего через месяц после получения контракта они уже полностью воссоздали спецификации прототипа самолета в своем ПО.
Меньше чем за год они закончили адаптацию своего летного симулятора для работы с хитроумным железом тренажера. Под словом "хитроумный" я подразумеваю полноразмерную кабину пилота с шестью дисплеями, шестнадцатью сервоприводами и невероятным количеством кнопок и управляющих элементов. Его полюбили все. Пилоты сказали, что он летает как настоящий, а генерал был вне себя от волнения, потому что мог испытать радость полета (пусть и симулированного) снова.
"Господа", начал генерал во время одного из их заключительных собраний, "вы проделали отличную работу. Я под большим впечатлением. Однако есть одна небольшая проблема. Вы почти не предоставили документации".
Начальник Георга нервно сглотнул, он не мог понять, шутит генерал или нет. Ведь они предоставили около 500 страниц диаграмм и спецификаций. В воздухе повисла неловкая пауза.
"Видите ли, господа", продолжил генерал, "для такой дорогой программы мы требуем как минимум восемь метров документации". Он расставил руки настолько насколько смог, чтобы показать натурно. Стало ясно, что он вовсе не шутил.
Команда Георга не представляла, как им выполнить условие, поэтому они просто начали печатать. Всё. Исходный код, снимки экранов, журналы, шестнадцатиричные дампы, письма, резюме. И они обнаружили, что даже с большими шрифтами, на толстой бумаге и с двойными интервалами чертовски трудно заполнить восемь метров (это почти два стеллажа, двадцать шесть футов или 320 дюймов) макулатурой.
Через несколько недель печати и брошюрования они, наконец, были готовы предоставить документацию. Прибыв к архиву на небольшом грузовичке, они разгрузили коробки с бумагами и встретились с генералом. Одобрительно кивнув и улыбнувшись, он повел их через лабиринт полок и шкафов. Они остановились перед одним, в котором было ровно восемь метров свободного места с названием их проекта летного симулятора. Он был прямо между полок с "Разделом F" спецификаций основного боевого танка Т-72 и собранием старинных томов под названием Список подходящих мест для резервных захоронений.
Они уложили коробку за коробкой на полки. Не открыв ни единой, генерал поблагодарил их за предоставление столь подробной документации. Хотя эти коробки никто никогда не откроет снова, Георг и его команда вернулись домой счастливыми от того, что внесли свой вклад в обороноспособность Родины, создав летный симулятор. Ну и конечно отпечатав восемь метров документации.
СХОДА НЕТ
"Секрет военного искусства заключается в том, чтобы быть сильнее неприятеля в нужный момент в нужном месте. "
(Наполеон Бонапарт)
Брал я интервью у старшего лейтенанта Максима.
Максим на камеру красиво рассказывал о родном корвете, о ближайших творческих планах своей "БЧ" и вообще о нелегких морских буднях,
но вдруг, его бровки сделались домиком и старший лейтенант, глядя куда-то мимо камеры, уже без пафоса выдал: — "[м]ля, нет, только не сегодня! Валера, только не сегодня! Я же нах[рен] сопьюсь с твоими бабами! "
Оглядываюсь, за моей спиной стоит и лыбится другой старший лейтенант, Валера. Он демонстрирует из под тужурки коньячное горлышко и приговаривает: — "Надо, Федя, надо…"
Максим:
— Сегодня же футбол. Я пива купил, рыбки, семечек, в конце концов… Может, ну его на фиг, а?
Валера:
— Армянский, пять звезд, он знаешь как под семечки идет? А на футбол забей, я потом тебе позвоню и счет скажу?
Максим:
— Засунуть бы тебе этот коньяк… ладно, давай сюда, кобель. Иди, не мешай, видишь, интервью даю.
Довольный Валера вручил другу коньяк, наскоро перед нами извинился и моментально исчез.
Максим поставил бутылку у своих ног, поинтересовался: — "Не попадет ли она в кадр? " опять сделал для интервью официальное лицо и продолжил рассказ о славных боевых традициях их корвета.
Я не выдержал приступа любопытства, остановил оператора и спросил у Максима:
— А, что это сейчас такое было?
Старлей дождался когда на камере погас красный огонек, снова вышел из образа, улыбнулся и сказал:
— "Это" называется — сам пропадай, а друга выручай. Каждый раз, когда этот кобель Валера гуляет от своей жены, он ставит мне коньяк, чтобы я в этот день не приходил домой, а ночевал на корабле.
Просто наши жены родные сестры и конечно же друг дружке доверяют. Ну и вот, когда Валера решает сбегать "налево", он звонит своей жене и говорит: — "Дорогая, сегодня не жди, у нас на корабле жуткий аврал, так что схода на берег не будет"
А его жена, тут же перезванивает моей и перепроверяет: — "Твой Максим дома? "
Моя-то родную сестру никогда не обманет.
Вот и приходится из-за этого, б%я, Казановы, ночами в каюте коньяк в одинаре лакать, да и без жены холодно с корабельной вентиляцией.
А сегодня по телику футбол…
Не моё, но расскажу от первого лица. Рассказ знакомого про армейские будни.
Армейская тупость? Ты просто не служил, потому не знаешь, как там всё происходит. В армии же главное — беспрекословное выполнение команды. Сначала выполни, а потом думай, если хочешь. Вот тебе пример. В нашей части стоял старенький УАЗик. Стоял он много лет, в
итоге остался от него только кузов, всё остальное порастаскали. Со временем часть обнесли новым двухметровым забором, в котором сделали новую калитку, по ширине чуть-чуть меньше, чем ширина УАЗика.
Однажды от местного начальства в лице майора пришел приказ: убрать кузов с территории части, сколько ж можно его терпеть?
Наутро прапорщик подозвал нескольких бойцов и передал им приказ начальства.
— Товарищ прапорщик, так ведь он в калитку не пройдёт!
— Сам знаю, что не пройдёт.
— А зачем тогда его двигать вообще? Пусть валяется себе дальше.
— А майору ты это сам лично скажешь? — прищурился прапор.
Нрав у майора был не подарок, за подобное "хамство" можно было заработать несколько нарядов.
— Нет, — пошёл на попятную боец. — Но что же делать? Ведь не пройдёт же!
— Не пройдёт, — снова согласился прапорщик, размышляя о чём-то. — Значит так! Берёте УАЗ и ПЫТАЕТЕСЬ пропихнуть его в калитку, вовсю изображая старание. А я пока за майором схожу. Задача ясна?
— Так точно! Разрешите приступить?..
Спустя 15 минут прапорщик и майор наблюдали следующую картину. Четверо бойцов подносят УАЗ к калитке передом — УАЗ упирается. Солдаты чешут репы, меняются местами, поворачивают УАЗик задом и пытаются пропихнуть его в проём другой стороной, естественно неудачно. Снова чешут репы, ставят УАЗ на попа, толкают в проём... меняются... чешут... тянут...
Прапорщик молчит. Он умный, он знает, что говорить сейчас нельзя. Это должно быть решение майора. Наконец майор произносит:
— Что, не проходит в калитку?
— Никак нет, товарищ майор.
— Хм, да-а-а... И забор высокий, не перебросить...
— Никак нет, товарищ майор.
— Ладно, бросайте его нах[рен]! — произносит майор и уходит.
Кузов этот и по сей день там стоит, ржавеет.
Когда я проходил медосмотр в военкомате, нужно было решить спецтесты для определения аналитических способностей кандидата на военную службу, один из которых — решение математических выражений. Например, мне достался такой: 2+2х5=? , и к нему набор ответов: 45,20,50. Ответа "12" среди них не было.
Я подозвал к себе экзаменаторшу, и на мою удивлённую реакцию, что, мол нет правильного ответа, она выдала гениальную фразу:
— Молодой человек, это армия! Значит, нужно решать армейским способом. Ответ: 20.
Перечитывал сейчас "лучшие прошлых лет". Наткнулся вот на эту. ЗАГЛЯНИТЕ В СЕМЕЙНЫЙ АЛЬБОМ...
У меня подобная история была с милицией. Работал я в одной конторе, где сигнализация была не с пульта, а просто — охеренной громкости звонок, который в случае тревоги трезвонил на весь квартал. Если учесть, что напротив здания, где располагалась
редакция еще и кладбище находилось, можно было всерьез опасаться, что если такая сигнализация ночью сработает, то и в самом деле, пожалуй, мертвых, как говорится, подымет. Ну что делать, не было в те времена еще такой электроники, чтобы через телефон включать и отключать, а отключалась эта чертова система обыкновенным выключателем, расположенным сразу за входной (если с улицы) или перед выходной (если изнутри помещения) дверью. При выходе все было нормально: включил сигнализацию, вышел, спокойно закрыл одну дверь, толкнул вторую, что ведет из тамбура на улицу, вышел, закрыл наружную дверь и можешь быть свободен.
В обратном порядке по утрам операцию приходилось проделывать в обратном порядке. Сперва открывалась наружная дверь, звонок при этом сразу же подавал признаки своей излишней громкой жизни, а потому надо было как можно быстрее открыть внутреннюю дверь, чтобы отключить эту дурно орущую конструкцию дабы скорей замолчала.
Ну, к утренним трезвонам жители дома и окрестная милиция давно привыкли и воспринимали звон как нечто вроде старинного фабричного гудка, возвещавшего, что кто-то уже пришел на работу в наш муравейник. А мне вот довелось однажды возвратиться из командировки ночью...
Контора располагалась недалеко от вокзала, и решив не тратиться на такси, я направился на работу. Времени — около трех ночи. И вот я открывваю первую дверь. Звонок начинает пытаться разбудить кладбище. Теперь надо побыстрее открыть вторую дверь и отключить систему, пока и в самом деле покойники не поднялись. Не тут-то было. Впрочем, когда спешишь, бывает как раз именно так. С первого раза ключ не провернулся. Со второго... с третьего... Подлая дверь открылась после четвертой, а то и пятой попытки. Щелкнуть выключателем после этого было уже секундным делом. Осталось запереться изнутри и отправляться спать в свой кабинет. Но едва я шагнул к двери внутренней, как распахнулась внешняя, и на пороге нарисовались аж три милиционера.
Это сейчас — маски-шоу, автоматы, "всем на пол! ", а тогда я и не помню уж, что мне скомандовали, но тоже очень строгое по тем временам. Пришлось еще в коридоре долго объяснять про командировку, про позднее прибытие, про то, что есть у меня право иметь свой комплект ключей от конторы. Однако поверили мне лишь после того, как провел их достаточно длинным коридором, уверенно открыл дверь своего кабинета, и предложил им чаю.
Альбом мы не листали, не было альбома. А вот чайку попили, теперь уже дружно и вместе посмеявшись над только что происшедшим.