В один из дней я пришел в лабораторию раньше всех. Мне всегда плохо спалось в преддверии финальных испытаний, а потому накануне этого ответственного этапа меня всегда с легкостью можно было найти на рабочем месте. Когда я вошел в лабораторию, не сразу нащупал выключатель, а вот мой взгляд моментально оказался прикован к нашему изобретению.
Прямо на моих глазах творилась настоящая магия. Маленький и по первому впечатлению хрупкий сосуд наполнялся жизненной силой. Энергия скользила по светящимся нитям самодельной куколки и не давала отвести взгляд. Это зрелище завораживало и восхищало. В тишине комнаты слышалось едва уловимое гудение, напоминающее легкое сопение спящего насекомого. Я замер и, кажется, практически перестал дышать, боясь потревожить сон этого создания, помешать твориться чуду.
Трудно сказать, сколько прошло времени до того момента, как Юлия вошла в кабинет, нарушив мою идиллию. Она всегда приходила на час раньше других, и сегодняшний день не стал исключением. Юля включила свет, и вся магия тут же исчезла, явив предо мной самый обычный стол, сосуд и механическое насекомое.
– А ты чего здесь в такую рань? – поинтересовалась она у меня.
– Да вот уже жду не дождусь, когда можно будет приступить к тестированию, – довольно честно ответил ей я.
– Скоро уже… – обрадовала меня Юлия. – По прогнозам, осталось не больше суток. У тебя уже все готово?
– А как же!
К испытаниям я подготовился довольно тщательно. Первым пунктом в списке стояло – навестить агрономов. Для тестирования мне необходимо было заполучить образцы семян пшеницы, которых и без того числилось непозволительно мало. Я долго объяснял важность нашего проекта, но уговорить удалось лишь тогда, когда пообещал вернуть зерна в целости, сохранности и в том же количестве обратно не позднее, чем через месяц. Помимо пшеницы, мне нужны были примеры и других злаковых культур, которые могут встретиться нашей бабочке. С этим было попроще, ведь я сразу условился, что все верну. Заполучив, рассортировав и подписав полученные образцы, я убрал их в укромное место дожидаться своего часа.
Со многими другими пунктами мне удалось справиться своими силами: продумать и соорудить всевозможные препятствия, рассчитать допустимый поток воздуха, чтобы уложиться в оговоренное количество дней, а также описать и подготовить поверхности со всевозможными положениями семян для тестирования захвата. Помимо вышесказанного, я учел еще множество других необходимых нюансов, но не будем долго на этом останавливаться.
А вот с ветром была засада. Мне никак не удавалось придумать, как воссоздать необходимый поток воздуха. На улице дожидаться нужной скорости – не выход, ведь сильные ветра в ближайшие пару недель не обещали, а заглядывать в прогноз погоды дальше – бесполезно. Имеющиеся у нас вентиляторы нужного потока не выдавали, так что данный пункт завел меня тогда в тупик, чем очень сильно расстроил.
Но выход нашелся довольно неожиданно. После того как я на одном из плановых совещаний обрисовал, чего мне не хватает, Вячеслав Сергеевич оказал содействие. Выяснилось, что одна его одноклассница работала в театре. Сейчас, конечно, сцена пустовала, а артисты были заняты на иных работах, из-за чего сценический инвентарь пропадал зазря. Одним из таких невостребованных предметов оказался вентилятор для сцены, способный в зависимости от установленного режима варьировать дуновение от легкого бриза до порывистого шквала. После пары запусков предоставленной машины я не удержался и воскликнул:
– Это именно то, чего мне так не хватало!
Таким образом, к моменту загрузки данных в объект я уже был во всеоружии и ждал отмашки начать испытания. И, как только Андрей объявил, что все готово, мы с командой начали прогонять тесты, выбранные для финальной стадии.
Глава 4. Имаго: перед полетом
Испытания выполнялись более чем успешно, и тесты один за другим получали статус «пройден». Меня, конечно, с одной стороны радовал такой результат, но с другой, в глубине души, как любому инженеру по качеству, хотелось найти хоть что-то. Несомненно, определенный набор проверок мы сделали с каждой частью в отдельности еще до слияния. Именно на тех этапах мы устранили большинство обнаруженных ошибок и недочетов. Сейчас же, после компоновки всех алгоритмов и приспособлений воедино, перед нами стояла задача прогнать финальные тесты.
Этот этап, по моему мнению, является одним из важнейших, ведь даже если что-то прекрасно работает автономно, такое вовсе не означает, что будет отрабатывать без ошибок при взаимодействии с другими частями. Да и просто прогнать механизм на работоспособность перед запуском – святое дело, ведь даже бабочка, вылупившись из кокона, не сразу взлетает в небеса.
Да. Мы знаем, что жизненный цикл чешуекрылых состоит из четырех этапов, но лично я бы упомянул еще об одном непродолжительном, но очень важном моменте. Он занимает всего несколько часов, но без него бабочка никогда бы не пустилась в полет.
Когда чешуекрылые особи вылупляются из куколки, то крылья, чтобы окрепнуть, в первый час наполняют жидкостью. Затем бабочка еще какое-то время сушит их, вися вниз головой, и лишь потом пускается в путь. Пропусти она этот этап, попробовав сразу взлететь, – вместо небес оказалась бы на земле.
Вот и в разработке программных продуктов, чтобы не упасть в грязь лицом, нужно обязательно проверить все перед запуском в эксплуатацию. Многие любят полагаться на удачу и пропускать данный этап, ссылаясь на нехватку времени и что все было проверено еще во время разработки. Наша же команда старается такое не практиковать.
В финальном тестировании программы заняты все участники команды. Конечно, я, как человек, ответственный за качество, на этом этапе руковожу процессом. Именно от меня исходят поручения кому, что и где сделать, а также каким моментам уделить особое внимание. Но даже сейчас никто из разработчиков не сидит без дела. Таким образом, все участники команды заняты работой вне зависимости от того, на какой стадии сейчас проект.
Все шло по плану, пока я не заметил одну небольшую деталь:
– Жень, а сколько весит наш финальный экземпляр бабочки?
– Слушай, – почесав затылок, начал отвечать мне Евгений, – я тебе точную цифру не назову, но не больше 45 граммов точно.
– Плохо! – слегка опешил я, испугавшись, что мы могли превысить допустимый вес. – Здесь каждый грамм на счету! Я проверяю, наполнив бабочку 7,5 грамма, и если ее собственный вес 45 граммов, то мы превышаем норму на целых 2,5 грамма!
– Ой, да. Каких-то 2,5 грамма, – довольно спокойно отреагировал Женя, – это ж не критично!
Поняв, что дальнейший разговор без конкретных цифр бессмыслен, я решил пойти и взвесить наше изобретение.
– 44, 65 грамма… – себе под нос проговорил я…
– Гриш, все в порядке? – поинтересовалась у меня Юлия.
– Юля… Мы превышаем максимальный вес…
Моя коллега всегда умела быстро реагировать на возникшие трудности, так что и здесь она не растерялась, быстро предложив план действия:
– Думаю, что в таком случае необходимо собрать всех, в особенности Вячеслава Сергеевича, и уточнить, насколько критично то, что мы немного вышли за пределы установленного веса.
Через полчаса мы все полным составом уже находились в зале заседаний.
– Ребят, – довольно грозно и даже немного рассерженно начал вести с нами беседу Вячеслав Сергеевич, – это очень серьезно! Мы запускали множество различных аппаратов, чтобы понять, какие из них могут быть обнаружены. Даже с весом в 49,5 грамма процент обнаружения составил 25 %! А вы говорите, что наш продукт на обратном пути будет весить целых 52 грамма!
– Ну мне было сказано, что максимальный вес семян 7,54 грамма, – я такой и установил на встроенных весах! – занервничал Женя.
– Но ты же видел, что готовый объект должен быть не более 50 граммов?! – не сдержался я.
– Ну так бабочка и меньше! – не унимался мой оппонент.
– Так, ребята, – прервала нас Юлия, – давайте лучше подумаем, как будем решать возникшую проблему, а не искать виноватых.
После этого замечания все сразу же затихли, погрузившись в раздумья. Ошибки признавать трудно. Но да. Здесь был недочет как с моей стороны, так и с Жениной. Я ему не сообщил, что вес изобретения в нашем случае не должен превышать 43,46 грамма, а он не удосужился сопоставить то, что на обратном пути наша бабочка будет лететь далеко не только с собственным весом.
Вы только не подумайте, что мы с Евгением разругались. Вовсе нет. Ведь в любой команде, даже самой дружной и сплоченной, не обходится без споров по рабочим моментам. Главное, не переносить их в обычную жизнь, оставляя все эти недопонимания в стенах офиса. А уж это умение за столько лет совместной работы мы освоили довольно неплохо.
– Но я не могу уменьшить вес, я и так использовал самые легкие материалы, а внутри лишь все самое необходимое, – первым подал голос Евгений.
– Значит, – продолжила Юлия, – нужно уменьшить максимальный вес семян. Сколько это получится? 5,45 грамма?
– Нельзя, – выступил я, – если мы уменьшим вес, то рискуем не получить необходимое количество зерен.
– Но ведь при подсчете, – начал размышлять Андрей, – ты, Григорий, учел все риски и полученные цифры всего лишь гарантируют ожидаемый результат? Мы ведь его можем достигнуть, если наша бабочка будет переносить зерна меньшего веса? Так ведь?
– Так, – подтвердил я, – если убрать поправку на то, что не все бабочки вернутся или нам повезет с погодой… То, конечно, мы можем получить желаемые 42 килограмма пшена, но не факт. Я бы не рисковал.
– Ребят, – загрузившись возникшей проблемой, проговорил Вячеслав Сергеевич, – давайте все же постараемся выполнить тот сценарий, который нам гарантирует ожидаемый результат? Но если уж ничего не удастся придумать, то что ж, будем полагаться на удачу.
– А что, если, – начал озвучивать свою идею Андрей, – мы будем считать не по весу, а по количеству семян? Ты ведь, Гриша, высчитывал, сколько штук необходимо перевозить за раз?