Читать книгу Сын технологий. Роман в пяти годах и тридцати главах. Книга первая - Сергей Березовский - Страница 13
ГЛАВА 4. ПОЕЗДКА
III
ОглавлениеТрудовые будни продолжались. Андрею нравилось разбираться с технической частью, но организация работы оставляла желать лучшего. После чётких и отлаженных процессов в Корпорации здесь ему всё казалось кустарным и несовершенным. Система учёта заданий отсутствовала, подсчёт времени – тоже, хранилище для текстов программ не предусматривалось, ни о каком порядке обновления программ не было и речи. В общем, всё делалось на коленке и абы как.
Ишаков привёз новый компьютер, более быстрый и современный. Андрей перебрался на него, а свой старенький использовал в качестве вспомогательного. Новый монитор так и не дали, а старый продолжал тускнеть. Развернуться на нём было совершенно негде, и работа превращалась в сплошное мучение. Экран даже уже начинал становиться предметом для шуток со стороны знакомых. С офисом по-прежнему всё было глухо. Работа и дом перемешивались, и эта неразделённость продолжала давить на психику.
Чуть позже Андрея всё-таки включили в электронную систему учёта заданий и рабочего времени. По сравнению с той, которая использовалась в Корпорации, она была более простой и примитивной. Тем не менее и там можно было писать тексты заданий, закреплять их за программистами и заполнять отчёты по отработанному времени. Андрея никто и никогда заполнять отчёты не заставлял, и он по привычке продолжал отмечать время на своих листиках.
Вскоре после включения в систему учёта он обнаружил, что ему выдали два новых задания. Оба задания написал Генрих Блёдер и пометил их как сверхсрочные, то есть требующие немедленного исполнения. Такому подходу Андрей мысленно улыбнулся. Неискушённого новичка подобное требование могло сильно напугать, но из опыта работы в Корпорации он знал, что никуда спешить и дёргаться не нужно. Для таких вещей как минимум сначала нужно ввести в курс дела, а это может занять не один день или даже не одну неделю. А Андрей с Шурой в это время занимались совсем другими вещами. Почему немец набросился с этими двумя непонятными заданиями, да ещё и в обход Шуры без соблюдения субординации, было совершенно непонятно.
– Что он мне там назначает? Даже непонятно, о чём речь идёт. Мне что, всё бросать и разбираться?
– Во даёт! Забей, тем более это уже сделали, но ему ещё не отдали.
Затем Шура сделал доступ в так называемое хранилище. По-научному это называется репозиторий, но в этой книге мы будем употреблять слово хранилище, чтобы не перегружать читателя техническими терминами. Хранилище предназначалось для хранения текстов программ. Кроме текстов, там хранилась полная история их изменений, то есть все ревизии, доработки, правки и редакции каждого отдельного фрагмента. Каждая правка снабжалась временной отметкой, когда эта правка была внесена. При желании можно было посмотреть историю развития программы за весь период её существования.
С использованием хранилища процесс разработки выглядел стандартно. Сначала из хранилища текст пишущейся программы забирался на рабочий компьютер. В него вносились правки, добавлялись новые фрагменты и тексты программ, что-то убиралось, а потом итоговый результат отправлялся назад в хранилище. С помощью централизованного хранилища с текстом одной программы могли работать люди в разных уголках планеты, достаточно было только подключиться к интернету.
Вот такое хранилище для программ и проектов немца Шура собирался организовать на своей основной работе. В Корпорациях под хранилище обычно выделялся отдельный компьютер в серверной, а иногда этот компьютер и вовсе располагался в стране заказчика. Но на компьютерах немца Шура заводить хранилище не рискнул, потому что за их безопасность отвечал некий польский инженер, который уже полгода никак не мог поставить защиту на канал обмена данными и обеспечить надёжность работы. Не доверяя вражеским инженерам, Шура хотел всё сделать сам, с нужным уровнем защиты и скорости работы, но времени для этого у него не было. А пока использовали хранилище, организованное Ишаковым где-то на своей работе в предприятии связи.
Технические читатели-специалисты к этому моменту уже прочувствовали весь масштаб разгильдяйства и отсутствия организации, с которыми пришлось столкнуться нашему герою на новом месте. А для неспециалистов добавим, что стандартные процедуры вроде подключения к системе учёта заданий, доступа в хранилище и прочие организационные моменты в нормальных компаниях занимают от силы несколько дней. Здесь же всё растянулось даже не на недели, а на целые месяцы со всеми вытекающими последствиями и неудобствами.
Единственная вещь, которую сделали более-менее вовремя, – это доступ на склад. В среде компьютерщиков он обычно называется файловым сервером, но в этой книге для простоты мы будем использовать слово склад. В отличие от хранилища, склад служил для хранения не только текстов программ, но и вообще любых рабочих документов, инструментов и материалов. Через склад шёл обмен проектной документацией, инструкциями к программам, аудиозаписями, вспомогательными программными блоками и многими другими вещами вплоть до рекламных видеороликов конкурентов и партнёров. До подключения к хранилищу Андрей обменивался с Шурой текстами программы именно через склад, хотя в современном мире разработки такой способ нигде и никогда не используется.
Закончив с предыдущими заданиями, Андрей перешёл к следующему, уже более интересному и содержательному. Новое задание заключалось в создании виртуального музыкального проигрывателя, или плеера. Плеер должен был быть похож на уже знакомый виртуальный магнитофон, но без возможности вести запись с микрофона. Его предстояло собрать из блока управления звуком, блока управления устройствами и соединить их в небольшую программу для будущего использования секретаршами. Секретарши с помощью этого плеера смогут прослушивать аудиозаписи, попутно набирая текст руками, а ногами нажимая на педали для воспроизведения или перемотки.
Требования к плееру также включали любопытную возможность «поменять ногу», то есть если секретарша была левшой, то педали перемотки менялись местами. Кроме того, педали должны были работать в двух разных режимах. В первом режиме для воспроизведения или перемотки аудиозаписи педаль удерживалась в нажатом состоянии. Во втором режиме достаточно было нажать на педаль один раз, а затем отпустить – и воспроизведение или перемотка продолжались сами, то есть в этом случае не было необходимости постоянно держать ногу на педали. Имелась также возможность ускорения процесса воспроизведения, то есть чтобы речь доктора в наушниках звучала быстрее, чем он изначально диктовал аудиозапись в микрофон. Таким образом существенно экономилось время секретарши: пятиминутную запись она могла прослушать за четыре минуты или даже быстрее. По окончании прослушивания должен был звенеть звоночек, который указывал, что текущая аудиозапись закончилась и можно переходить к следующей.
Шура продолжал радовать своим профессионализмом. Даже при выполнении сравнительно простых заданий Андрей всегда чему-то учился у старшего коллеги. От Шуры он узнал много разных тонкостей, необходимых для создания профессиональных компьютерных программ. Вообще говоря, Андрея поражало, как быстро и оперативно Шура реагировал на его вопросы. С любой, даже самой нетривиальной проблемой, он помогал практически мгновенно. В крайнем случае – быстро находил решение в интернете или подсказывал, в какую сторону нужно копать. Андрею было даже несколько неудобно отвлекать Шуру по разным мелочам, но по своему опыту он понимал, что задавание даже мелких вопросов – необходимая часть процесса обучения и включения в проект нового человека.
Плеер предстояло использовать клиентам из нескольких разных стран. Поэтому надписи на кнопках и других элементах программы нужно было переводить на разные иностранные языки. Для начала Андрей сделал набор надписей на русском и английском, но клиенты хотели ещё и немецкий вариант. Все слова и надписи, которые встречались в программе и требовали перевода, записывались в отдельную табличку. Эта табличка отсылалась немцу на перевод, тот вписывал туда соответствующие выражения на немецком, а затем присылал назад Шуре. Андрей смотрел в эту табличку, брал из неё переведённые надписи и переносил в нужные места по тексту программы. Так осуществлялся перевод программы на разные языки, что в среде компьютерщиков называется словом локализация.
Андрей очень увлёкся созданием плеера и к очередным выходным с этим заданием почти закончил. Оставалось ещё несколько мелких моментов, к которым планировалось вернуться в понедельник, но не тут-то было. Шура сказал, что немец хочет результат уже к воскресенью. Планы Андрея на отдых сорвались, он уткнулся в виртуальную комнату с друзьями и поспешил пожаловаться на несправедливость.
– Немец к воскресенью хочет плеер. Не получится у меня выбраться.
– Что значит к воскресенью? Слушай, если тебе дают задание «к воскресенью», срочно меняй работу. Совсем охренели.
– Да ладно, надо сделать. Неудобно перед Шурой. Ему же мозги будут компостировать.
Закончив, он ещё немного поигрался с плеером, полюбовался на своё произведение, послушал на нём музыку и решил отдавать на проверку. Например, в Корпорации проверкой программ занимались специалисты отдела контроля качества. На крупных проектах требовался даже не один специалист, а целая команда проверяющих. Их ещё называли тестировщиками, или тестерами, и в Корпорации было целое подразделение тестировщиков разного уровня. А вот были ли тестеры на новом месте, Андрей не знал и обратился с этим вопросом к Шуре.
– У нас этим кто-нибудь занимается или сами?
– Сами проверяем тщательно. Ну и немец смотрит. А потом пользователи. Если пользователи замечают сбой, сообщают немцу. А он передаёт нам.
Звучало слегка удивительно. Любой программист, конечно, многократно перепроверял своё творение перед сдачей, но наличие тестеров в проекте существенно экономило время и облегчало жизнь всем членам команды. Впрочем, на фоне общего бардака на этой работе отсутствию стандартного процесса проверки удивляться не стоило.
Хм… Интересно… И не надоедает немцу?.. Самому проверять всё… Ну а пользователям отдавать сбойный продукт вообще как-то нехорошо… Тем более в больницу… Хотя с другой стороны… Если там обнаружат ошибку – сразу же сообщат нам… И тут же видно будет, с какими они проблемами сталкиваются… Потому что обратная связь практически мгновенная… Да… Есть и свои плюсы в таком подходе…
Так или иначе, пилотным выпуском плеера все были довольны. Программа оказалась компактной, удобной, надёжной и быстрой.
Тем временем пришло время ехать в посольство за результатом. По дороге Андрей сильно волновался. Выстояв очереди и получив в окошке паспорт, он отошёл на пару шагов в сторону и судорожно принялся его листать. Дали – не дали? Заветный штамп быстро нашёлся на первых страничках. Он получил визу, и наступил следующий этап выездных хлопот. Но сперва – поделиться радостью в виртуальных комнатах.
– Дали шенген!
– Поздравляем. Купил уже себе фрак на церемонию? Дресс-код там и всё такое.
Последний раз он надевал костюм на школьный выпускной и государственные экзамены в университете. С тех пор костюм неприкасаемо висел в шкафу, а неотъемлемой частью повседневного гардероба были джинсы и свитер.
– Тут ребята пишут, смотрели фотографии прошлых лет. Фраков и вечерних платьев там нету, но костюмы с красивыми галстуками имели место.
– Они хотели сказать, что среди раздолбайских одёжек разглядели пару классических костюмов.
– Да уж, у меня и галстука-то никогда не было. И завязывать не умею.
– Посмотри видеоролики в интернете. Там уроки есть.
– Придётся.
– Можешь прийти в военной форме Вооружённых Сил СССР образца 1945 года. Или с табличкой «я стрелял в немецких солдат». Это будет намного хуже, чем без галстука.
Галстук нашёлся у знакомых, и после нескольких обучающих роликов и тренировок у зеркала необходимый навык был приобретён. Дальше нужно было раздобыть недостающую на поездку сумму денег. После выкупа билетов на автобус Андрей хотел иметь запас средств не только на жизнь, но и «на погулять», и на непредвиденные случаи вроде «шёл пьяный с неофициальной части, угодил в местный опорняк и получил штраф». По удивительному стечению обстоятельств все друзья или ждали зарплаты, или заплатили за аренду квартир, или сами были на нуле, а то и вовсе в долгах. Поэтому после долгих раздумий было принято решение обратиться за помощью к отцу.
Обращаться к отцу он жутко не хотел. Это означало признать собственную несостоятельность, а Андрей этого очень не любил, как и вообще признавать свои слабости. Особенно не хотелось беспокоить отца с учётом того, сколько помощи он оказал при выплате кредита за квартиру.
Отец приехал через два дня с ближайшей командировкой. Заскочил в гости и без лишних расспросов отсыпал шесть десятков монет. Андрей был благодарен и рад. Воодушевлённый такой поддержкой, он вспомнил о существовании Феди, про которого из-за его встреч с Галиной уже успел немного подзабыть. Федя получил зарплату и тоже оказал посильную финансовую помощь, а заодно у них был повод встретиться после долгого периода без общения.
Чтобы запечатлеть поездку для истории, помогли Андрею и с фотоаппаратом. Своего у него никогда не имелось, пришлось тоже на недельку одолжить у знакомых. Затем была пополнена банковская карточка, и наконец, полностью укомплектованный, он стал ждать дня отправления, а пока можно было сосредоточился на работе.
Продолжалось развитие программы-плеера, к нему требовались некоторые косметические доработки. Поправить внешний вид, улучшить дизайн, налепить логотип и название фирмы-производителя. Так Андрей наконец-то узнал, как называется фирма немца-заказчика. На логотипе вырисовывалось слово «Блеймсофт», причём буква «о» была стилизована под белый кружок с изображением чёрного черепа внутри. Доктора в клиниках, с учётом специфики их работы, наверное, отнеслись бы к такой картинке с должной долей юмора.
Шура поставил на программу защиту от несанкционированного распространения. Чтобы получить возможность работать с плеером, каждый пользователь получал персональный ключ. Подобно ключу от квартиры, которым нельзя открыть другие квартиры, ключ «открывал» программу для использования только на одном конкретном компьютере. Если при этом программу переносили на какой-то другой компьютер, использовать её было уже нельзя, потому что ключ на другом компьютере не подходил. Для другого компьютера требовался другой ключ. Этот ключ в виде совокупности букв и цифр вручался клиенту при покупке программы аналогично тому, как вручаются ключи покупателям квартир и автомобилей.
Иногда, впрочем, даже знакомые с законом об авторском праве западные пользователи обменивались незащищёнными программами между собой. Незащищённые программы работали безо всяких ключей и могли свободно кочевать с одного компьютера на другой. Узнав от Шуры о том факте, что доктора в заграничных клиниках обмениваются пиратскими программами, Андрей был очень удивлён. Если на родине использование пиратских программ считалось чем-то обыденным и естественным, то за границей с этим обычно было строго. Из опыта работы в Корпорации он знал, что в Соединённых Штатах за такое пиратство при желании могли наказать по всей строгости закона.
Затем в плеер попросили добавить ещё один вспомогательный блок. В мире информационных технологий это называется «кодек», но в этой книге мы будем для простоты использовать сочетание «блок-преобразователь». На преобразователях следует остановиться подробнее. Звуковой сигнал, как и любая информация в компьютере, кодируется набором цифр. Способ этого кодирования может быть разным, то есть один и тот же сигнал может представляться различным набором цифр в зависимости от способа кодирования. Некоторые методы кодирования превращаются в промышленные стандарты и используются производителями как программного обеспечения, так и аудиотехники. Например, тех же цифровых плееров и диктофонов. Поскольку многие доктора использовали в работе именно цифровые диктофоны, для записи человеческой речи в них применялся один из стандартных способов кодирования сигналов, адаптированный специально для человеческой речи.
Для кодирования и раскодирования звука и требовался блок-преобразователь, превращающий поток цифр в звуковой сигнал и наоборот. Блок управления звуком уже включал в себя несколько стандартных преобразователей, разработанных предыдущими программистами. Андрею же предстояло добавить ещё один и запрограммировать в нём новый способ кодирования. Этот способ кодирования, используемый как раз в диктофонах у докторов, позволял хранить не только звуковой сигнал, то есть надиктованную доктором речь, но и некоторую дополнительную информацию. Например, дату и время начала записи, дату и время окончания диктовки, имя и фамилию доктора и другие полезные данные.
Новые требования Андрей реализовывал с большим увлечением. В отличие от последнего проекта в Корпорации, где приходилось автоматизировать финансовую отчётность в виде немыслимых таблиц с неведомыми цифрами, которые предназначались непонятно для кого и для чего, на этой работе всё было максимально понятно и прозрачно. Он мысленно представлял себе доктора, который обследует пациента, говорит в диктофон, потом подключает диктофон к компьютеру и переписывает новую аудиозапись. Потом представлял себе секретаршу, которая берёт аудиозапись с центрального компьютера, загружает её в плеер, нажимает ногой на педаль, слушает речь доктора и попутно пишет текст в электронный документ. Такая ясность процесса позволяла глубоко прочувствовать, что именно нужно пользователям, как максимально оптимизировать их работу, сэкономить время и в конечном итоге облегчить людям жизнь.