10.06.2008, 10:21
Писатель © Старостин Василий Викторович
Стиль рассказа: Рассказ в трех итерациях с тестированием и развертыванием., размер 22К.
Москва, 2025 год.
Итерация первая: проектирование.
День 1-й. Постановка задачи.
Новое задание свалилось на разработчиков как всегда: неожиданно и "вчера". Генеральному кто-то подарил танцовщицу: разукрашенного силиконового робота в натуральную величину с набором соответствующих программ. Через пару недель, когда набор плясок исчерпался и надоел, кукла была заброшена. К дальнейшим событиям, давшим основу всей истории, привели два факта:
- чтобы не занимать место, кукла была брошена на склад компьютерного оборудования: им являлся закуток в комнате программистов;
- генеральный нарвался по интервидению на фильм "Бегущий по лезвию бритвы" с актером Харрисоном Фордом (и кто только придумал крутить по интервидику такую допотопную хрень?!).
Директор - надо отдать ему должное, именно поэтому он им и был - тут же решил, что из этой танцовщицы можно будет сделать... ммм... "робота для досуга", как впоследствии он был назван маркетингом. Хотя тогда, конечно же, тогда генеральный выразился гораздо прямее.
Директор был человеком увлекающимся, и свои идеи любил - чего, впрочем, нельзя было сказать про его программистов. Из-за танцовщицы все текущие задачи (а особенно - задачи на перспективу) были отброшены, а вместо них было поставлено требование за месяц сделать танцовщице новый, "досуговый" интерфейс. Ответственным за проект тут же назначили Василия Царева - одного из самых опытных разработчиков и, главное, морально готового к столь нестандартным идеям.
Генеральный - кстати, назовем его в честь тезки Гагариным - высказался просто:
- Ребята, область нами еще не освоенная. Рынок еще такого продукта не знает, мы там будем первыми. Я надеюсь, что у вас все получиться, и тогда мы подумаем о премировании отличившихся, ну а пока - дерзайте, я жду результатов.
- Юрий Алексеевич, срок нереальный. Работа новая, надо хотя бы прикинуть, что-как! - подал голос свежеиспеченный руководитель группы, Царев.
- Я понимаю. Но уложиться надо! - ответствовал директор.
На этом знаменательное собрание завершилось, и разговор перенесся в комнату 747, то есть в комнату команды разработчиков.
В ней, как гепард от пуда соли (вариант - как "думер" от ракеты), носился технический директор. И это было довольно-таки типично. Генеральному в голову постоянном приходили такие идеи, что технический директор метался в ужасе, изрыгая проклятья и заявляя, что "на эту туфту у него нет времени, надо делом заниматься!" Поскольку дел всегда было явно больше, чем программистов, любой план валился напрочь, а потому привычные программисты скорее спали на рабочем месте или резались в игрушки, нежели стремились к выполнению заявленных техдиректором "дел". А что стараться, если еще до начала проекта уже известно, что срок его выхода будет сорван? Вот сейчас, под матюги директора, народ резался в старую, но добрую игруху Unreal 8 - это называлось у программистов "контрольный в жопу".
- Да когда ж вы наиграетесь, прямо как дети малые! - наконец обратил на них внимание техдиректор.
- Да мы чуток, чтоб мозги отдохнули, - не менее возмущенно ответил старший программист, Гусев.
- А то вы не знаете, что нам проект новый повесили. Кто его будет делать?!
- Да, кстати, - вмешался Царев, - кто?
После краткого и жаркого обсуждения, а также посула премий и угроз отобрать Меганет (на "святой" Unreal уже даже не покушались), в группу вошли:
- Алексей, аналитик;
- Николай Колесов, ведущий разработчик;
- Дмитрий Гусев, старший программист, он же глав-рюх (от понятного всем программистам слова "разрюхать"; впрочем, глав-рюх лучше всех рюхал и в "ан-рыл" тоже);
- Вовка, Петя: разработчики пользовательского интерфейса и драйверов нижнего уровня соответственно.
Начинать новую работу с середины дня никому из программистов не хотелось, поэтому народ "досидел" день в Меганете и затем разошелся по домам, сделав напоследок еще один "контрольный".
День 2-й. Декомпозиция, распределение задач.
Наперво, решили проверить программный интерфейс танцовщицы. Ее "зрение" через радиоканал подключили к компьютеру Лехи-аналитика. Этот интерфейс - даже странно для первого раза - тут же заработал, на экране появились координатная сетка и набор характеристик окружающей среды; в углу экрана побежали команды, докладывающие о готовности.
- Вот интересно, - спросил аналитик, - Нафига роботам красивые текстовые меню: они что, их читают, что ли?!
- Ты чё, - отозвался Василий, - это ж для отладки! Это не роботам, это для программистов - debug-info, понимаешь.
Интерфейс оказался банальным - команды на движения конечностями да небольшой набор встроенных процедур для выполнения комплексных действий: ходьба, повороты, выражение стандартных эмоций ("страсть", "любовь", "нежность", "грусть", "мольба" с тремя градациями на каждую).
- Мда, - произнес Василий, - Все придется делать самим...
- Зато это будет качественно, - сразу вмешался техдиректор, - Не надо нам никаких сторонних библиотек, натерпелись от них с предыдущего проекта.
Директора подержал ведущий разработчик:
- От чужих приблуд хрен толку, уж лучше самим все писать.
- Это смотря кому, - заметил Василий, ехидно косясь на Вову.
- А че я! - возмутился Вова, - Я вообще без ошибок пишу!
Все рассмеялись - Вовка был знатным, по выражению ведущего разработчика, "плюходелом" и постоянно косячил. Но кроме него писать пользовательский интерфейс, то бишь взаимодействие куклы с пользователем, было попросту некому, а уволить плюходела мягкотелый техдиректор стеснялся. Даже анекдот "если б сразу после свадьбы убил, сейчас бы уже вышел", часто напоминаемый Царевым, не действовал.
Дальнейшие задачки раскидали так:
- Колесов: основы поведения (здесь Царев однозначно не завидовал скромному и щепетильному Колесову).
- Петя: взаимодействие с аппаратными устройствами, куда вошли не только стандартные руки/ноги/голова, но и особое устройство, названное с подачи техдиректора Wet Cat, а также написание дополнительного функционала драйверов ротовой полости. Устройство, предварительно названное Back Door, в бета-версии пока решили не инсталлировать.
- Вовка: движения и микродвижения модели, набор пользовательских фор... позиций, расширенную мимику модели (решили добавить эмоции "возбуждение", "восхищение" и особый имитационный блок "оргазм").
- Дмитрий: базовые функциональные модули: "пред-игра", "массаж", "классика" и ми... в общем, состояние поля, когда по нему прошли саперы.
- Царев взялся писать коммуникационный блок между ядром и пользовательским интерфейсом.
Обрадованные таким раскладом, программисты приступили к работе. После, конечно, "контрольного".
День 5-й. Совещание по тестированию.
Технический директор грозно оглядел своих подопечных:
- Кто будет бета-тестером нашей модели?
- Есть небольшая сложность, - заметил Василий, - Все наши штатные тестеры - женщины, а тестировать модель самими программистами считается некорректно.
Однако при этих словах группа разработки так вздрогнула, что он тут же добавил:
- Конечно, мы проведем альфа-тестирование и создадим unit-тесты, однако это принимать решение о пользовательских качествах готовой системы должны, как нам видится, специально выделенные тестировщики и сами пользователи.
Так "досуговая" команда пополнилась еще одним членом: Тимофеем Андреевым.
- Михаил Геннадьевич, мы тут насчет автотестов думали, - добавил Царев, - пока не ясно, как "это" можно автоматизировать, но планчик набросали. Показать?
- Валяй!
- В рамках заявленной функциональности, мы с Алексеем выделили следующие темы: завлекающая походка, поцелуи, объятия, ласки через одежду, фистинг, флетчинг...
- Обожди-обожди, это еще что такое?
- Сами не знаем, на порно-сайте прочитали. Пусть кстати нам к ним доступ откроют, а то домашние на меня косо смотрят...
- Откроем. Что там еще?
- Далее, рельсы-шпалы - из массажных техник, миссионерская позиция, собачья. "Шесть-девять" решили не пока делать, так как еще ротовой блок не готов; ну и вообще не замахиваться особо на функциональность. И еще, как назовем изделие?
- А давайте Тутти, - сразу предложил новый тестировщик - как в книжке! (Юрий Олеша, "Три толстяка" - прим. авт.)
- Ага, а потом мы ее потеряем, и вынуждены будем срочно найти ей на замену похожую проститутку - добавил Царев, - И это, кстати, мысль: как нам продемонстрировать работу начальству... Да шучу! - тут же поправился он.
Но тем не менее, модель назвали Тутти...
Итерация вторая: разработка.
День 9-й. Просто день.
Работа шла полным ходом - что, впрочем, не мешало топтаться на месте ее результатам. Человеческое (а тем более женское!) поведение в общеизвестные алгоритмы не укладывалось, ведущий разработчик ходил мрачный и нещадно ныл на постановщиков задачи. Wet Cat до сих пор еще не поставили, и Петя катал свои драйвера вслепую. Дмитрий таки продул в Unreal (что еще хуже - другому Дмитрию, тоже программисту, но не вошедшему в проектную группу) и потому скорее дулся, чем работал.
С Вовкой так вообще случилось несчастье, он пришел с фингалом под глазом: жена не поверила, что он листал Плейбой только по заданию на работе. Все жалели Вовку, он действительно выглядел, как побитая собака.
Даже у Алексея, из аналитика переквалифицировавшегося технического писателя, всё не ладилось. Василий нашел несчастного документалиста, заваленного многочисленными медицинскими справочниками, глянцевыми журналами и цветными копиями Камасутры.
- Никак не могу подобрать соответствующий язык, - горестно пожаловался тот. - Медицинский - не всем понятен и узкоспецифичен. Матерный слишком груб и вообще не подходит для руководства пользователя. Простой бытовой язык не нравится маркетингу, так как они считают модель эксклюзивной...
- Знаешь Леша, пиши как есть! - по-отечески посоветовал Василий, - А руководство пользователя пусть отдельно маркетинг сделает - с картинками. Я думаю, пользователям это понравится!
День 12-й. Первая контрольная точка.
С грехом пополам (а также с матами, спорами и "контрольными" - но не точками), альфа-версия системы была написана. Поведенческое ядро Николаю все-таки удалось реализовать, и - несмотря на нехватку времени - даже почти прямо. Петя освоил "руко-ногие" драйвера для конечностей куклы, и даже умудрился состыковать их с Вовкиным "пользовательским" интерфейсом - что было более чем странным, так как состыковаться с Вовкиной работой считалось невероятно сложно. Сам "интерфейс" красиво принимал эротические позы и даже зазывно моргал своими миндалевидными оптическими сенсорами. Глав-рюх утверждал, что модули "поцелуи" и "массаж" уже "почти готовы", но можно сказать, что просто готовы. Коммуникационный блок Царева также действовал достаточно надежно, передавая команды от ядра к интерфейсу и обратно, теряя в них не более 5% смысла. Те-о-ре-ти-че-с-ки, работу можно было представить хотя бы техдиректору - что, собственно, разработчики и сделали.
Критически оглядев модельку, Геннадьич спросил:
- А вы это тестировали?
- Еще нет, - вдруг не работает, а мы уже доложились - бодро заявил Царев.
- Так она еще не отлаженная?!
- Времени не было; нам маркетинг спецификацию не предоставил, мы же не можем без нее делать!
- Раньше-то делали!
- И как потом выходило? Нас же во всех просчетах и обвиняли. Не уж, если маркетологи хотят чтобы мы что-то сделали, - решительно заявил Царев, - Пусть напишут, что именно.
- Я поговорю с маркетингом, - согласился техдиректор, - Но они же, засранцы, нас не слушают!
- Ну и их трудности. Пока мы их прикрываем, - веско сказал Царев, - они так и не научатся работать.
- Хорошо, я доложусь генеральному. Но вы все-таки проверьте, как все работает!
Так началась...
Итерация третья: отладка.
День 15-й. Первая проверка.
- С чего начнем - с поцелуем или с массажа? - спросил Тима.
- Ну их, эти поцелуи: там микродвижения, чувства - затрахаемся отлаживать, - сказал Димыч.
- Почему затрахаемся - пока просто зацелуемся, - встрял Вовка.
- Да не шути, с массажа надо начинать, - настаивал глав-рюх. - Он и полегче, и протестируется проще.
С него и начали. Обступив куклу, разработчики напряженно переглядывались.
- Ну что, начинаем?! - произнес нетерпеливый разработчик интерфейса.
- Обождите! - прервал его Василий - Давайте ей сперва хотя бы мишку какого-нибудь подложим.
С предложением согласились; тряпичного медведя быстро разыскали в бухгалтерии. На удивление, первый тест прошел вполне успешно: банальный массаж рельсы-рельсы, шпалы-шпалы, про который документатор читал в какой-то книжке, внешне прошел на ура; руки модели двигались ритмично и без сбоев. Мишка тоже остался цел, что внушало некоторые надежды.
- Ладно, я лягу! - Как руководитель проектной группы, Васька выступил вперед.
- Не, не - я буду первым! - спохватился тестировщик, - Это моя прерогатива: Вась, разреши!
- Давай! - Василий бросил руку в сторону "массажистки".
Тима снял рубашку, весело улегся на кровать, повернул голову в сторону модели и, внятно и четко, чтобы сработала система распознавания голоса, произнес "массаж!" Новоявленная "массажистка" уверенно приняла команду, на полсекунды задумалась, затем осторожно подошла к клиенту, еще за секунду выровняла положение конечностей и затем аккуратным движением положила руки на спину Тимы.
- Ааа!! - Тимка вскочил, нет, взвился с кровати и плюхнулся рядом, умудрившись при этом до крови разбить лодыжку.
- Что случилось-то? - вопросил обеспокоенный Царев.
- Она - холодная! Сами потрогайте!
Вася автоматически дотронулся до руки массажистки:
- Ух ё, холодные: комнатная температура, не теплее. Вот блин засада, об этом-то мы не подумали... Ладно, придумаем что-нибудь. Тест продолжаем?
- Давайте, только я рубашку надену, - Тиме хотелось реабилитироваться.
- Залазь - только и сказал Василий.
В таком варианте тест прошел гораздо комфортнее, и Тимофей даже получил некоторое удовольствие. К счастью, это не помешало поделиться ему обратной связью:
- Здорово конечно; но до человека далеко. Все действия пальцами механические и абсолютно однообразные, даже если кожа под рукой все время разная, поэтому иногда больно. Рельсы и шпалы в порядке, но как будто на тебе решетку рейсфедером чертят. Хоть бы раз дура ошиблась, блин!
- Ясно, - сказал Василий. Влепим случайных чисел, введем "девиацию параметра" - ну, "плавание" переменной. Вот с кожей сложнее, надо или карту зон делать, или обратную связь от пальцев к алгоритму.
- Лучше связь, - сразу заметил ведущий разработчик, - карту зон мы замудохаемся вводить, и потом меняй под каждого клиента; ну ее нафиг!
- Good. Через два дня - жду новой версии. А пока пойду доложусь Геннадьичу.
Доложиться Василий не успел - технический директор сам пожаловал к программистам.
- Что у вас случилось? - техдиректор покосился на тимкину лодыжку, которая была обмотана подозрительно красной тряпкой.
- Да нет, все в порядке, не волнуйтесь - за всех ответил Васька. - Это не с тестированием связано. По-крайней мере, напрямую - подумал он уже про себя.
День 17-й. Просто день.
По уверению глав-рюха, модуль "классика" был отлажен.
- Ну, кто возьмется тестировать? - спросил Царев.
Ответом ему служила примечательная картина: семеро мужчин стояли слегка согнувшись, сведя колени и чуть не прикрывая руками пах - почти так же, как футбольная стенка при пробитии штрафного.
- Мда. Есть другие предложения?
- А бывают ли резиновые мужчины? - спросил Петька.
- Давайте купим фаллос, - предложил Тима-тестировщик.
- О! Фаллос! - вздох облегчения пробежал по рядам.
На том и порешили. Ближайший секс-шоп - тут им повезло - находился буквально через пару перекрестков. Отобедав и по пути совершив одну небольшую операцию, программисты были готовы к испытаниям. Тимофей торжественно вручил Василию чек и призывно потряс покупкой.
- И как интересно я его проведу через бухгалтерию? - удивленно спросил Царев.
- А ты пообещай им подарить его после сдачи проекта! - рюхнул глав-рюх.
- Точно! - согласился Василий. - А пока... Ну, нехай будет "testing tool"!
Тестирование и развертывание.
День 19-й. Бета-версия.
В этот день техдиректор принимал у программистов работу, но, традиционно, решил переложить эту задачу на них же самих:
- Когда система будет считаться готовой?
- Известно когда - когда маркетинг решит, - с ехидцей ответил Василий.
- Я имею в виду техническую готовность, нечто вроде приемочного теста. Вы сможете его провести?
- А, эт-то легко. Надо будет ее подсунуть какому-нибудь чайнику - побыть "сутенером" - и если он ее не раскусит, - считай, система удалась!
- Я санкционирую.
- Да это понятно, вопрос - кто из наших возьмется?
- А ты сможешь? В эти выходные, оформим как сверхурочные. Выручай, кроме тебя никто не рискнет!
- Ну давайте, и Тиму в подручные!..
День 20-й. Полевые испытания.
- Секс за недорого, только классика - не хотите ли? - на двадцатом разе Царев уже даже перестал смущаться. - Вон, девушка в машине.
Клиенты, наоборот, лезть в старенькую вазовскую "двадцатку" не хотели. "Эх, жаль ротовой девайс не инсталлировали", подумал Василий, "а то бы проще искать покупателей было".
Наконец, один из клиентов согласился. Вася услужливо приоткрыл дверцу и громко сказал "классика". Клиент влез в двадцатку, модель начала укладываться на сиденье... укладываться на сиденье... на сиденье... Робота заклинило: места в маленькой двадцатке не хватало, и модель тупо повторяла попытки улечься. Клиент как ошаренный выскочил из салона - "вы что, охренели?!". Без объяснений, программисты ломанулись в машину и газанули с места.
Остаток дня провели, пытаясь научить модель выходить из нештатных ситуаций. Но в конце концов, плюнув на это дело, просто "в лоб" научили экс-танцовщицу укладываться на заднем сиденье автомобиля.
На следующий день, модель снова повезли на тестирование. В этот раз ребятам даже удалось срубить немного бабок, хотя большая часть клиентов посчитали "бабу" как минимум "вусмерть укуренной".
День 22-й. Презентация для Генерального.
В понедельник модель была представлена генеральному директору.
- Пока еще пахнет, но уже мажется! - будучи большим любителем бородатых анекдотов, отрапортовался техдиректор.
Испытывать "классику" при подчиненных Гагарин не решился, но пару курсов "массажа" прошел. По такому же "курсу" прошли и маркетологи. А иллюстрированное руководство пользователя, снабженное грифом "до 18-ти", вообще вызвало фурор.
- Молодцы! - не поскупился на похвалу Генеральный. - В конце года мы ваши заслуги обязательно учтем!
- Отлично ребята поработали, - добавил техдиректор.
- Мы уже заказали 20 моделей, - коммерческий директор тоже был доволен и поднял бокал с традиционным шампанским. - За новые высоты в бизнесе!
День 44-й, последний. Отчет начальника службы эксплуатации.
Генеральному директору
ООО "Водосеть"
Гагарину Ю.А.
Служебная записка.
Настоящим вынужден сообщить вам, что вверенное мне подразделение не может справиться с обслуживанием модели РД-1 ("Тутти"), по следующим причинам:
- Модель не может самостоятельно добираться до Клиентов. Приходиться ее развозить.
- Блок Wet Cat требует ежедневной очистки. Квалификации техников не хватает для данной операции.
- Модель постоянно зависает в случае заказа нестандартных способов совокупления. Программисты игнорируют данный факт, мотивируя его тем, что такого не было в ТЗ. Тем не менее, я считаю, что зависать в таких случаях модель не должна.
- Клиенты жалуются на температуру модели. Настройки температуры в конфигурационном файле до сих пор не реализована.
- Поломки в блоке Wet Cat приводят Клиентов в крайнее раздражение. Приходится круглосуточно держать техников, чтобы обеспечить своевременный выезд к Клиенту в случае застревания его частей тела в данном блоке.
В связи с этим, прошу удвоить штат службы эксплуатации, или снять модель РД-1 с производства.
И.о. начальника службы эксплуатации Фердыщенко Е. А.
14 октября 2025 года.
КОНЕЦ
|