Глава 89. Основы Разработки Структуры Программного Обеспечения(1)

Техническое задание (ТЗ) — это основа основ для разработки программ. Этот документ должен быть грамотно составлен, и всё пункты чётко сформулированы, чтобы разработчики могли определить спецификации аппаратного обеспечения и выбрать, какие системные требования поставить, какое обслуживание оборудования необходимо.

Разработка любого софта начинается с создания этого документа. Рядовые разработчики крайне редко могли принимать в этом участие. В Корее только РП (Руководитель Проекта) допускали до работы с такими вещами.

И сейчас Ёнхо принимал участие в собрании.

— Значит вы хотите получать видео, а не фотографии человека?

— Да. Это так. На данный момент веб-сервис, который предоставляет Шинсеки, требует в целом восемь фотографий от человека. Следовательно, требуется сделать восемь снимков, чтобы управлять приложением. Как же это неудобно! — бурно выразил своё мнение Кеннет. И он был прав. Если бы удалось снизить необходимость манипуляций с экраном с восьми до одного, пользователям однозначно стало бы удобнее.

Однако обработка изображений лежала в другой области. Ёнхо даже не имел представления, возможно это или нет. Дэйв и Джеймс чувствовали себя не лучше.

Они использовали только те свои знания, которые вынесли с учёбы в университете, получили в первые дни работы или от некоторых знающих людей.

— Разве обрабатывать видеофайлы легко? Почему бы нам не продолжить идти в уже выбранном направлении… например, обрабатывать все фото одновременно…

Ёнхо тоже чувствовал себя очень неуверенно. Он совсем не разбирался в этой сфере, поэтому он не очень уверенно говорил.

И спросил сидящего рядом с ним Брэда.

— Специалиста по обработке изображений еще не нашли?

— Да уж… я подал заявку, но это будет непросто.

Одной из лежащих в основе сервиса функций являлась обработка изображений.

Чтобы приблизить виртуальное пространство к реальности, им необходим был специалист по обработке изображений, но найти такого человека не так-то просто.

— Давайте поговорим об этом позже.

В конце концов, у Кеннета не осталось иного выбора, кроме как перейти к следующей части. В целом им необходимо было обсудить больше сотни требований.

Больше всего сидящий в конференц-зале Ёнхо переживал о том, что будет, когда собрание закончится.

До сегодняшнего дня он сам выбирал время окончания, потому что сам его и вёл. Но сейчас всё было иначе.

Ёнхо находился здесь в роли слушателя. К тому же, человек по имени Кеннет, которого взяли на должность СА (Сервисный Архитектор), был старше Ёнхо.

Он даже выглядел как «начальник».

— Я отправлю вам оставшиеся части в JIRA, так что, пожалуйста, проверьте.

JIRA назывался прототип одного из инструментальных средств управления проектами, который был сконструирован, чтобы повысить продуктивность работы проекта. Когда работник открывал проект, он мог зарегистрировать всех работающих над ним сотрудников.

Когда возникала необходимость, через него можно было отправить письма на почту им всем. В виду того, что эту программу разработали в США, её запатентовали, и теперь весь мир также пользовался ей.

Кеннет коснулся только нескольких важных тем, затем сказал, что отправит оставшееся через JIRA и объявил собрание оконченным.

— А?

Всё закончилось так внезапно, что Ёнхо мог только сидеть и недоумевать. Большая часть группы уже закрыла свои ноутбуки и собиралась уходить.

— Ты идёшь? — Дэйв, который сидел всё это время рядом, похлопал его по плечу. В любом случае, хорошо, что всё так быстро закончилось.

Если бы он был в Корее, собрание бы всё еще тянулось.

Ёнхо вышел на улицу, чтобы провериться и придать ясность мыслям. Когда он присел на лавочку и рассказал своим друзьям и коллегам как собрания проходят в Корее, Джесси пробормотала:

— Что, правда?

Кажется, ей это казалось совершенной глупостью.

— Я думаю, они тратят больше, чем полдня на этих собраниях…

Насколько он помнил, большая часть его начальников в Корее только и делало, что устраивало собрания.

После того как сотрудники просиживали на них целый день, до работы они добирались уже к ночи. Такой порядок дел неизбежно приводил к переработке.

Иногда случалось и так, что собрание назначали на двенадцать ночи. Подобный график можно было назвать чистым безумием.

— Только первое собрание всегда длинное, потому что на нём знакомят с общим положением дел в компании, дают развёрнутый инструктаж…, а после всё в основном делается через JIRA. Или заканчивается быстро, как сегодня.

Ёнхо облегчённо выдохнул, когда осознал, что ему не придётся участвовать в «марафоне» собраний.

Вернувшаяся в офис Джесси расклеивала по стенам самоклеящиеся листочки с напоминаниями. Ёнхо уже видел подобное в Шинсеки, и поэтому знал, что она делает.

«Похоже на agile-методологию или что-то в этом роде». (Гибкая методология разработки (англ. Agile software development, agile-методы) — серия подходов к разработке программного обеспечения, ориентированных на использование итеративной разработки, динамическое формирование требований и обеспечение их реализации в результате постоянного взаимодействия внутри самоорганизующихся рабочих групп, состоящих из специалистов различного профиля).

Ёнхо относился к этому скептически. Он думал, что подобные методики докажут свою бесполезность, потому что плохо сочетаются с графиком работы.

Он уже однажды это видел и не думал, что здесь что-то будет иначе.

— Ёнхо!

Стоящий перед доской Дэйв позвал его. У него был очень предвкушающий вид. В руках Дэйв держал одну из бумажек, которые дала ему Джесси.

— У меня есть работа, Ёнхо тоже нужно начать! — сказал Дэйв, размахивая листочком. На маленькой самоклеящейся бумажке был написан длинный список того, что нужно сделать.

План дизайна для сервиса и скрипт для выбора шрифта.

Прочитав содержимое листочка Дэйва, он подошёл к Джесси.

Теперь он мог различить написанное на доске.

Вертикально было написано «то, что нужно сделать», «в процессе» и «завершено», а горизонтально располагались имена людей, которые отвечали за определенный тип работы.

Джесси кинула взгляд на изучающего написанное Ёнхо.

— Этот проект будем делать по методологии гибкой разработки ПО.

— Гибкой? — Ёнхо показалось, что он слышал что-то такое раньше, но он не очень понимал, как оно работает.

— Ну, разработчикам не стоит особо волноваться об этом. Вот, это то, что нужно сделать тебе.

Прочитав слова на бумажке, он сглотнул слюну.

«Разработка структуры каждой части программы».

— Сколько времени тебе нужно? — спросила Джесси, не зная, о чём он думает.

— Д-два или три дня… нормально? — отозвался Ёнхо, не подумав. У него в компании уже сформировался определённый «имидж». И благодаря этому имиджу, он сам испытывал отвращение к тому, чтобы тратить на задание больше дня.

Хотя на стороне Ёнхо был Дэйв, не все сотрудники компании считали так же, как он.

Ёнхо хотел быть не человеком, которого порекомендовал Дэйв, а собой, Ли Ёнхо.

И поэтому он сам ставил себе рамки — он должен делать всё быстрее и лучше, чем кто бы то ни было.

И эти рамки только подгоняли его уплотнить собственный график.

— Правда? Я думала, тебе понадобится хотя бы неделя. Ты действительно особенный, Ёнхо, — пока Джесси говорила и кивала собственным мыслям, Ёнхо ругал свой длинный язык. Его похлопали по плечу.

— Разве я не говорил? Что Ёнхо — особенный.

Хотя он и хотел что-то ответить Дэйву, который говорил ему такие тёплые слова, он сдержался. Ему было чем заняться.

«*Вздох*… И как мне теперь попросить о помощи?»

Он не знал, как ему обратиться к Джеффу. Ёнхо никогда нормально не занимался разработкой архитектуры приложения. Он всегда работал на передовой — программировал.

Как-то он сделал маленькую функцию для приложения — это был единственный раз, когда он сделал программу полностью.

***

Для начала Ёнхо отправился в компанию, где работал Джефф. Если он хочет решить своё задание за два дня, то он должен попросить о помощи Джеффа, а не идти сидеть в библиотеки — к такому выводу он пришёл.

— Пожалуйста, научите меня.

— Зачем мне это делать? Я правда занят.

— Я решил для вас проблему в прошлый раз.

— Разве я не начал заниматься с вами алгоритмами?

— Тогда давайте сделаем так. Я снова решу какую-нибудь проблему для вас.

Джефф посмотрел на Ёнхо. В его глазах отчётливо читались сомнения. Он уже неплохо изучил Ёнхо и знал на что тот способен пока он учил его алгоритмам.

То, что Ёнхо нашёл ошибку в его программе в прошлый раз, нельзя было назвать ничем иным, кроме как чудом.

Чтобы решать алгоритмы, у человека должен быть определённый склад ума. Нужно уметь решать математические задачи в уме практически мгновенно.

Но Ёнхо решил его проблему исключительно благодаря собственным усилиям и усердию.

Пока Джефф занимался с ним, он так и не смог понять, как тот решил проблему с производительностью.

— Хм…

— Вам нечего терять.

— Есть. Показать тебе мой код будет большой «потерей».

Услышав ответ Джеффа, Ёнхо почувствовал, как в груди клокочет гнев. Но сейчас он был всего лишь скромным просителем и не мог делать то, что хочет.

Пожалев Ёнхо, в разговор вклинился Джонатан.

— Джефф, почему бы тебе не дать ему попробовать? Ты же сам сказал, что он нашёл ошибку в экране-прототипе, который ты сделал в прошлый раз?

Джефф показал Ёнхо экран своего ноутбука, словно уже сдался.

— Я сделал несколько библиотек, но из-за ошибки я не могу ими пользоваться. Так как пока мне они не очень нужны, я отложил решение этой проблемы. Если справишься, я помогу тебе или дам совет насчёт дизайна.

Выражение лица Ёнхо, который, казалось, уже вот-вот был готов умереть, мгновенное просветлело. Он уже испугался, что ему придётся идти в библиотеку и читать гору книг о разработке ПО, если Джефф откажется помогать.

А он и так практически не спал по ночам и на полном серьёзе сомневался, что поймёт написанное.

— Спасибо. Считайте, что вы только что спасли человека от смерти, — сказал Ёнхо, проверяя окно багов, которое всплыло перед экраном ноутбука.

К счастью, там всплыла ошибка и то, как её исправить.

— Какой компьютер мне нужно использовать?

— Сколько это займёт?

— Думаю, минут двадцать?

Джефф засомневался еще сильнее. Он маялся больше часа, но безрезультатно. Там было установлено несколько библиотек, связанных между собой по определённым принципам.

Чтобы решить проблему, ему пришлось бы исправлять каждую библиотеку по отдельности, поэтому он пока отложил это на потом.

А Ёнхо сказал, что с лёгкостью решит эту проблему за 20 минут, словно уже был уверен в успехе.

— Тогда используй мой компьютер. Я пока отойду.

— Тогда всё просто.

Когда Джефф ушёл, Ёнхо снял сумку, положил её на пол, стянул свою куртку и кинул её поверх сумки.

А после закатил рукава и сказал.

— Ну поехали!

Он лучше, чем кто бы то ни было знал, что результат уже гарантирован, и

просто начал что-то печатать на клавиатуре. Джефф хотел выйти проветриться, но не успел.

— Джефф! Всё готово! Можете вернуться и проверить!

Не прошло и двадцати минут. Когда Джефф вернулся из уборной и хотел надеть свою куртку, Ёнхо сказал, что проблема решена.
Закладка