— Ладно, Лян Вэй, если так настаиваешь. Ты неглуп и должен понимать, что делаешь. Постараюсь всё устроить. — По лицу Айлинь видно, что она с философским видом раздумывает, а не выйдет ли ей это боком.
Глава 21
Возвращаюсь в комнату и с головой погружаюсь в поиски исходного кода программы. Перерываю весь интернет, все закоулки даркнета. И, к своему удивлению, таки нахожу заветные файлы! Похоже, утечка произошла стараниями одного из незадачливых интеграторов.
Но тут же возникает другая проблема — а на чём, собственно, кодить? Нет у меня с собой никакого компа. Конечно, можно смотаться в магазин, приглядеть что-нибудь. Но это сколько времени уйдет — выбрать, купить, настроить. Так и выходной пройдёт.
Взгляд падает на чехол от ноутбука, небрежно торчащий из сумки Ли Миньюэ. Недолго думая, строчу ей сообщение в WeChat, и вскоре получаю добро на использование девайса.
Годится. Подключаюсь к вайфаю общаги, скачиваю исходники CRM-ки, открываю. Передо мной разворачивается полотно из сотен строк кода. Посмотрим.
Работу прерывает звонок телефона, на экран номер Ли Джинг.
— Лян Вэй, твое присутствие на сегодняшнем показе критически необходимо, — голос стилиста звучит нервно и суетливо. — Только скажи сразу — сможешь или искать кого-нибудь другого?
— Смогу.
С одной стороны, выходной накрывается медным тазом. С другой, работа равно деньги, а мне ещё скорее всего комп покупать.
— Замечательно! — облегченно выдыхает Ли Джинг. — Жду тебя в шесть вечера. Не опаздывай!
Бросаю взгляд на часы, в запасе десять часов. Вновь погружаюсь в код.
— Вот ты где… — бормочу, находя нужный фрагмент, отвечающий за обработку клиентских данных.
Внимательно изучаю функцию. Неэффективная работа с базой, куча повторяющихся запросов, жуткие костыли в самом коде. Тут работы на добрый месяц, не меньше.
У китайцев и индусов зачастую очень «грязный» код. Простую команду, которую девелопер из наших краёв записывает в одну строчку, они растягивают на двадцать — формально заказчик получает рабочую программу, но позже выясняется, что она глючная и неэффективная.
Тянусь за кофе и решаю начать с малого — с улучшения интерфейса.
Пара часов пролетает незаметно. Удалось изменить внешний вид приложения, получается даже сделать его более интуитивно понятным. Упростил главную панель управления: вместо большого количества мелких кнопок разместил несколько крупных, отвечающих за ключевые функции.
Не без внимания остались формы для ввода данных — настроено автозаполнение, чтоб ускорить процесс.
Напоследок тщательно прохожусь по всем формам, проверяю логику полей, улучшаю контрастность цветов. Глаз должен радоваться, а не слезиться от кислотных расцветок при любом освещении. Мелочь, а приятно.
Тестируя обновленную CRM-ку, замечаю странную штуку. Каждые несколько минут система втихаря сливает какие-то данные на левые сервера, не имеющие к функционалу никакого отношения. Причем инфа чувствительная: списки клиентов, время их брони, финансовые показатели.
Нехило. Голословно обвинять кого-то рано, но интересные мысли уже возникли. Надо глубже покопаться. Даже интересно, сколько ещё сюрпризов обнаружу.
Раздаётся стук в дверь. Открываю, чтоб столкнуться лицом к лицу с Ли Миньюэ и администратором.
— Лян Вэй, бегом за мной! — командует Чэнь.
— Куда? Зачем?
— Ты же хотел навести неформальные мосты? Вот для неформала сейчас самое время.
— Ты про управляющего? — быстро соображаю. — Ты что договорилась? Так быстро?
Она кивает.
— Спасибо большое.
Перевожу взгляд на ноут. Кроме изменённого интерфейса, мне и продемонстрировать ему пока что нечего. Хотя очень нужно.
— Можно, возьму для презентации? — обращаюсь к Ли Миньюэ, кивая на лэптоп.
— Бери, — пожимает плечами она.
— Господин Минь наведывается от силы раз в неделю, — уже в лифте поясняет Айлинь. — Лучшего момента, чем сегодня, боюсь, долго не будет — он редко бывает в хорошем настроении. Считай, тебе повезло: бухгалтерия такое пропихнула, у меня волосы дыбом встали. Иди рассказывай.
С ноутом подмышкой захожу в ресторан. Айлинь тычет пальцем в угол зала, где за столиком восседает мужик в пиджаке.
— Здравствуйте, господин Минь. Вам про меня рассказывала Чэнь Айлинь, я с предложением касательного улучшения вашего CRM.
Не отрываясь от бумаг, управляющий молча кивает и жестом предлагает присесть:
— Цель беседы?
— Небольшая самопрезентация, — признаюсь честно. — Потом — вопрос, возможно, переходящий в предложение.
Пристраиваю ноут на краю стола, разворачиваю экраном:
— Я переделал интерфейс. — По глазам вижу, собеседник предупреждён о моей работе с программой. — Теперь ключевые функции собраны на одной странице, без лишних иконок и сложных меню, — показываю обновленную главную панель. — Также, добавлены автозаполнение и всплывающие подсказки. Сотрудники будут меньше тыкаться, больше делать. На этот рефакторинг у меня ушло часов шесть от силы. — Если он в теме смыслит, должен оценить.
Минь Бо смотрит на экран, временами кивая:
— Ещё?
— Есть нюанс — шифровка, я бы над ней хорошо поработал. Прежний кодер не уделил особого внимания безопасности данных. Чревато.
— Соглашусь, внешняя оболочка выглядит лучше оригинала. В чём суть предложения?
— Я исправил лишь малую часть ошибок, самое лёгкое и быстрое. Задача была — при минимуме времени и сил произвести на вас максимальное впечатление. К сожалению, кроме производственной части здорово влияет ваше настроение: вы здесь и бываете нечасто, и подходить к вам, говорят, нужно вовремя.
— Это не предложение, а прелюдия. К чему?
— Будь у меня больше времени, я бы смог сделать больше. Не знаю, насколько она вам актуальна, но программа может работать значительно плавнее, без тормозов и глюков.
— Допустим. Ты же понимаешь, что сейчас должен меня чем-то заинтересовать? Чем-то более существенным, чем то, что продемонстрировал? Да, приятно, когда твои сотрудники умны и неравнодушны, но ты сейчас отнимаешь моё время, а я пока не вижу, зачем это мне, — он по-свойски перегибается через стол. — Говоря цинично, удобство сотрудников меня волнует не в первой строке приоритетов.
— Позвольте взглянуть на договор с разработчиком. Он же не секрет?
— Что ты там рассчитываешь обнаружить?
— Не хотел бы заранее.
— Я здесь ещё четверть часа, попроси администратора. — Собеседник явно утрачивает интерес к разговору, впрочем, жестом просит Айлинь заняться мной.
* * *
— Посмотрел? Нашёл что-нибудь интересное? — управляющий явно думает о чём-то своём и неформальный стиль изображает исключительно из вежливости.
— Есть вопрос, переходящий в предложение. Я могу сделать то же самое, что прописано в договоре в целях и задачах, но в три с половиной раза дешевле.
— Для нас расход — сущий пустяк. Бюджет позволяет. Перескакивать с кого-то на тебя — это большой риск. Оно мне надо? Предложение неинтересное, копеечная выгода за огромный риск.
— Дело не только в деньгах, но и в качестве. Сейчас ваша CRM-ка имеет целое множество дыр, которые разработчик не особо спешит исправить.
Достаю из кармана исписанный лист.
— Вот примерный список уязвимостей, вот риски. Не моё дело, но…
— Риски? Ты о чем?
— Хотя бы об этом, — тычу пальцем в одну из строчек. — Личные данные клиентов утекают. Куда и зачем — пока не ясно, но вашей компании оно и неинтересно. Если это нормально — просто скажите, не буду лезть не в своё дело.
Минь Бо надолго замолкает. По лицу вижу — задумался всерьез.
Наконец кивает:
— Это неформально обозначалось на старте и тогда мы были не против. Тебе кто-то помогал советом?
— Нет. Просто добросовестно поколупался сам. Так вы знали об этом?
— Скажем, раньше у нас было меньше возражений, без подробностей… Ты удачно попал, — менеджер поднимает глаза. — Не буду в деталях, это был совместный пилотный проект. Возможно, сейчас время чуть разойтись краями.