Моя команда тоже, конечно, не просто сидела рядом и била баклуши. Напротив, мы работали с командой Уильяма, проверяя коды «Феникса» в тестовой среде. Потому что если все это не заработает в тестовом режиме, нам нужно будет молиться, чтобы запустить проект в реальный мир.
Мой взгляд перемещается с часов на стол. Брент и трое других инженеров совещаются с группой контроля качества. Они работали тут с 16:00 и уже выглядят измученными. У многих на ноутбуках открыты поисковики Google, другие систематически возятся с настройками серверов, операционных систем, баз данных и приложения «Феникс», пытаясь выяснить, как все собрать вместе, что, по словам разработчиков, было возможно.
Один из разработчиков пару минут назад вошел и сказал: «Слушайте, на моем ноутбуке все работает. Может, посмотрите?»
Вэс начинает ругаться, а два наших инженера и три инженера из команды Уильяма начинают сосредоточенно изучать компьютер разработчика, пытаясь понять, что в нем отличается от последней тестовой среды.
В другой части комнаты инженер громко разговаривает с кем-то по телефону: «Да, мы скопировали файлы, которые ты дал… Да, это версия 1.0.13… В каком смысле неправильная версия…Что? Когда вы ее поменяли?… Копирую еще раз, попробую снова… Ладно, слушай, это не будет работать… Думаю, это сетевая проблема…Что ты имеешь в виду, нужно открыть порт фаервола? Какого черта ты не сказал нам это два часа назад?»
Он бросает трубку и стучит кулаком по столу, крича: «Идиоты!»
Брент поднимает глаза от ноутбука разработчика, протирая глаза. «Дай-ка я угадаю. Внешний интерфейс не мог подсоединиться к серверу базы данных, потому что кто-то не сказал нам, что мы должны открыть порт фаервола?»
Инженер устало кивает головой и говорит: «Если честно, я просто не могу в это поверить. Я разговаривал с этим уродом по телефону двадцать минут, а ему даже в голову не пришло, что это не проблема кода. Это просто полная ЖОПА».
Я продолжаю молча слушать, но киваю, согласный с его прогнозами.
Я смотрю на часы: 19:37.
Самое время проверить менеджеров моей команды. Я собираю Вэса и Патти и оглядываюсь вокруг в поисках Уильяма. Он смотрит через плечо одного из своих инженеров. Я прошу его присоединиться к нам. На мгновенье он выглядит озадаченным, потому что обычно мы не имеем никаких совместных дел, но затем кивает и идет за нами в мой кабинет.
«Ладно, ребята, расскажите мне, что вы думаете об этой ситуации», – спрашиваю я.
Вэс первым берет слово: «Эти парни правы. Это полный кошмар. Мы все еще получаем неполные релизы от разработчиков. За последние два часа я уже дважды видел случаи, когда они забывали переслать нам какие-то необходимые файлы, без которых код просто не запускался. И, как ты сам видел, мы до сих пор не знаем, как настроить тестовую среду, чтобы «Феникс» заработал нормально».
Он снова качает головой: «Исходя из того что я видел за последние полчаса, мне кажется, что мы двигаемся только назад».
Патти просто качает головой с отвращением и мнет руки, ничего не добавляя.
Я говорю Уильяму: «Я знаю, до этого мы особо вместе не работали, но мне бы действительно хотелось узнать, что ты думаешь. Как это выглядит, на твой взгляд?»
Он смотрит вниз, потихоньку вздыхая, и говорит: «Если честно, я понятия не имею. Код меняется так быстро, что мы просто не успеваем за ним. Если бы я заключал пари, то ставил бы на то, что при запуске «Феникс» взорвется. Я пару раз разговаривал с Крисом о том, чтобы остановить релиз, но они с Сарой вообще не слушали, что я говорил».
Я спрашиваю его: «Что ты имеешь в виду «не успеваем»?»
«Когда мы находим проблемы в ходе тестирования, мы отправляем отчет разработчикам, чтобы они могли поправить ошибку, – объясняет он. – Затем они присылают нам новый релиз. Проблема в том, что на то, чтобы все настроить и запустить уходит где-то полчаса, и потом еще три часа, чтобы прокрутить весь дымовой тест. За это время нам приходит еще примерно три релиза от разработчиков».
Я усмехаюсь при упоминании дымового теста, таким термином обычно пользуются разработчики схем. Распространенная фраза: «Если ты подключил плату, и она не задымилась, значит, она, наверное, будет работать».
Он качает головой и говорит: «Нам все еще приходится делать это через такой тест. Меня заботит, что у нас до сих пор нет достаточно управляемой версии – мы уже устали просто отслеживать номера версий, которые мы запускаем. Каждый раз, когда они что-то исправляют, ломается что-то новое. Поэтому они присылают нам отдельные файлы вместо полного пакета».
Он продолжает: «Все в таком хаосе, что если бы случилось чудо и «Феникс» прошел дымовой тест прямо сейчас, я практически уверен, что мы не смогли бы повторить это, потому что слишком много частей двигались туда-сюда. – Снимая очки, он говорит обреченно: – Скорее всего, нам всем придется проторчать тут всю ночь. Я думаю, что есть серьезный риск, что мы ничего не запустим и к 8 утра завтра, когда откроются магазины. И это большая проблема».
Это очень мягкое выражение. Если мы не закончим релиз к 8 утра, системы продаж в розничных магазинах не заработают. А это значит, что мы не сможем проводить платежи на покупки.
Вэс кивает: «Уильям прав. Нам определенно придется остаться здесь на всю ночь. А результаты даже хуже, чем я мог предположить. Нам нужно, по крайней мере, еще двадцать серверов, чтобы осуществить загрузку, и я понятия не имею, где мы найдем их прямо сейчас. Несколько моих людей сейчас ищут запасное оборудование. Возможно, нам придется даже разбирать какие-то серверы».