Requiem for a Dream
Пролог
— Ты, главное, не ссы! Держись меня, делай как я, и все будет чики-пуки.
Сергея всегда бесил такой, колхозный, стиль общения, особенно у малознакомых людей. Не понятно, как реагировать. Вроде надо в лицо идиотом назвать, но мало ли, вдруг человек не всегда такой, просто не умеет эмоции словами выразить. Тем более, Сергей первый день на этой работе. На своей первой настоящей работе.
— Коль, давай посерьезнее. — Жанна строго посмотрела на круглую самодовольную рожу. Потом перевела взгляд на новенького. — Сергей, не слушай этого старого коня. Борозды он, конечно, не испортит, но и целины не поднимет.
Сергею пришлось улыбнуться — все-таки начальник пошутил, и вроде не совсем безнадежно.
— Мы на тебя возлагаем большие надежды, Сережа. Николай у нас под завязку загружен текучкой — ее очень много. Мы понимаем, что действуем неэффективно, где-то что-то упускаем, используем устаревшие технологии и подходы… Но у нас реально нет времени остановиться, подумать, посмотреть, поучиться. Как писал Кови — наточить пилу.
Сергей понимающе покивал головой. Он не знал, кто такой Кови, но метафору понял.
— Ты — молодой, целеустремленный, не обремененный обязательствами и связями, амбициозный, и очень умный программист. У тебя за плечами очная Бауманка. Мы ждем от тебя новой струи свежего вохдуха, скачка в развитии наших систем, прорыва облачных технологий. Так, и только так!
— Спасибо, Жанна Ивановна. Я буду стараться.
— Никакого отчества, просто Жанна! Велкам в нашу команду, Сережа!
Весна
— А что, мне нравится! Это я так сама могу настроить проверку в любой форме?
— Да, Жанна, почти. Форма не любая, а только для дата-объектов. Заказы, например, или товары. Любые проверки, по любым полям, с учетом всего доступного контекста, и все — без программирования.
— Серьезно? Это же шикарно! Раньше такие проверки мог только Коля делать. Помнишь, Коля, у тебя еще трудности постоянно возникали, когда при проверке надо не с примитивами, а с гвидами сравнивать.
— Помню, чего не помнить-то. — задумчиво почесал небритую щеку Коля. — Только это, трудности возникают лишь в первый раз, когда совесть еще не позволяет в коде гвид конкретный написать, в кавычках, и с ним сравнить, хе-хе-хе… Это как честь потерять, что ли…
— Как в грязи испачкаться. — поддержал Сергей. — Пока не испачкался — страшно, обходишь лужи за километр, кучу времени на это тратишь, зато ходишь чистеньким. А потом бац — и ты уже по самую макушку в грязи. И все, уже пофигу на грязь, можно шлепать по лужам — быстро и без напряга. Правда, уже не чистеньким.
— Так, я не поняла, а вот эта твоя штука с проверками… На чем ты ее сделал, я забыла? Реактор?
— Реакт. Строго говоря, я на реакт все наши формы переделал, в один компонент, а проверку уже сбоку прицепил — это другой компонент. Но это не важно.
— Окэ, реакт… Он что — про то, как по грязи ходить и не бояться?
— Нет, он убрал грязь вообще. Можно просто ходить, все тротуары чистые и красивые, вокруг весна и птички поют. Один код, один компонент, десятки и сотни разных форм. Выкинули десятки тысяч строк практически идентичного кода.
— Вот за это я и люблю этого парня! Давай, Сережа! И Колю подтягивай к современным технологиям! Коль, согласен?
— Дак, а чо, ну. Чо ж не подтянуться-то, если тема верная.
— Ну ладно, хорошо если так. Кстати, Коля, что там с бухгалтерией? Получилось закрыть в срок?
— Нет такого месяца, который бы я в 1С не закрыл. Получилось, ясен хер.
— Попрошу без выражений. Сам закрывал?
— Ну не их же, рукожопых, учить… Ой, сорян, вырвалось…
— Ладно, что ж теперь… Главное — в сроки отчетности уложился, а то бы нам не сдобровать, и никакие реакторы не помогут. Ну все, не отвлекаю, no pasaran!
Лето
— А в чем великий смысл, Сережа? Чем такой подход лучше?
— Жанна, это скорость обработки, степень автоматизации, устранение дублирования данных, управляемый транспорт справочной информации, затраты на администрирование, уникальность…
— И толстый-толстый слой шоколада… — Коля расплылся в улыбке.
— Колян, хорош. Я тебе вчера все показал и объяснил, ты был согласен, чего сейчас ёрничаешь?
— Да согласен я, нормальная тема. Только не взлетит ни хрена, да и гемора до жопы.
— Почему, Коль? Объяснишь? — Жанна, почему-то, пропустила очередную порцию французского мимо ушей.
— Да чего тут объяснять… Сейчас все работает, все системы засинхронены, операторы работают четко, ошибок мало. Чо ваще лезть туда?
— Блин, как чего? — Сергей начал терять терпение. — Тебя не парит хранение в пяти базах одной и той же, по сути, таблицы номенклатуры, но с разными ключами, составом полей, и даже, блин, наименованиями и артикулами?
— Не парит, есть же таблицы соответствий и обмены данными.
— Таблицы соответствий?! Которых вдвое больше, чем таблиц номенклатуры?! И они при этом еще и задачи своей не решают, потому что хранят соответствие точка-точка? А? Попробуй сопоставить номенклатуру с сайта и спецификации из PLM или PDM!
— Через 1С нормально сопоставляются, она знает соответствия с сайтом и PLM, с каждой по отдельности.
— Ты сам-то себя слышишь? Через 1С сопоставлять… Выгрузить из PDM новое изделие со спецификацией, загрузить в 1С, сопоставить комплектующие с 1Сными, создать недостающие позиции, установить для них соответствие, выгрузить на сайт, дополнить свойства, догрузить фотографию, вручную, тем же способом выгрузить из PDM 3D-модель, загрузить на сайт… Нормально?
— Не очень оптимально, конечно, но работает же, чо ты взъелся…
— Работает, чего же нет. ПФР тоже работает! А теперь внимание: конструктора поменяли болтик в спецификации, взяли вместо ГОСТовского DINовский. Что делать будешь? Заново всю спецификацию гнать?
— Нахера… Сбросят мне позицию, я быстренько поменяю руками во всех местах…
— Прям-таки быстренько? А не припомнишь, в прошлом месяце искали, кто закупил ящик закаленных пружинок на полтора миллиона, а в спецификации уже давно обычные прописаны?
— Это операторы накосячили. Теперь все изменения через меня проходят. У меня-то башка на месте.
— Я… У меня слов нет. Программист справочники ведет. При наличии десяти — ДЕСЯТИ — операторов, с суммарной зарплатой 250 тысяч рублей в месяц, не считая налогов, взносов, амортизации, затрат на управление…
— Ишь, сколько слов умных выучил… Да слова-то все русские, не реакты с ангулярами и редуксами… На пользу тебе пошла работа на заводе, да с таким правильным чуваком, как я. Говорил же, все чики-пуки будет.
— Так, хватит. — Жанна, до сих пор с интересом следившая за дискуссией, почувствовала приближение к опасной черте. — Сергей прав, но и Николай тоже. В любой системе есть неоптимальности, избыточность и поле для улучшений. Но попрошу не забывать, что мы не курсовую пишем, а выполняем задачи реального бизнеса, со всеми вытекающими…
— А разве реальному бизнесу не выгодно разогнать кучу бессмысленных сотрудников, которых можно заменить нормальной MDM-системой?
— Выгодно, сложно спорить. Но нужно понимать сроки и стоимость этого проекта. На словах все красиво звучит, но пока это только слова. Если я сейчас пойду к генеральному, предложу этот проект, то мы уже не сможем его не выполнить. Ты уверен, что учел все нюансы реальной жизни? Подводные камни, трудности перехода, саботаж при внедрении? Те же операторы и их начальник — как отнесутся к внедрению? Их силами ведь твой MDM заполнять. Насколько качественно они будут наполнять систему, которая их заменит?
— Ну, я не думал об этом, если честно. Но за технологии я готов поручиться, потому что видел исходники и их реальную работу. Та же CouchDB, с автоматической репликацией…
— Сергей, я поняла про технологии. Но одних технологий мало. У нас есть руководство, проекты, задачи, сроки. Премия в конце концов. Кстати, вы премию годовую получили?
— О да! Если встану в профиль, увидите, где она осела, хе-хе-хе…
— Да и смотреть не надо, по амбре можно догадаться, как ты вчера был рад. Вопросы есть?
— Да, если можно… Почему у Николая сумма вдвое больше?
— За помощь бухгалтерии в закрытии года и подготовке к налоговой проверке, которую мы успешно прошли.
— Учись, студент! Это тебе не в тапки ссать!
— А мои проекты? Рефакторинг сайта? Оптимизация производительности СУБД? Единый сервис авторизации? Микросервис сквозного ценообразования?
— Ну, это хорошие и полезные проекты, Сергей, я это прекрасно понимаю. Но я не знаю, как это объяснить руководству. Нужно считать экономический эффект, данные по метрикам собирать, и т.д. И лучше это делать до старта работ, чтобы иметь объективные данные. Ты ведь этого не сделал, правда?
— Я думал, польза этих работ очевидна… Не думал, что потом придется что-то доказывать…
— Сами собой только кошки родятся! Или как там… Да насрать…
— Жанна, я бы хотел понимать, как в дальнейшем подобные проекты…
— Все, мне нужно идти на совещание, Сергей, давай в другой раз.
Осень
— Сергей, на оперативке сегодня тебя хвалили, было очень приятно слышать.
— За что хвалили?
— За интеграцию 1С и Битрикса, которую ты сделал. Это очень нужное, своевременное и качественное решение. Особенно хорошо, что ты уложился в короткий срок, и не стал противиться, как… Как ты это делал раньше.
— Это не решение, а… говно, прошу прощения. Если за такое хвалят, то я не знаю…
— Улыбаемся и машем, улыбаемся и машем! — Колян был тут как тут. — Ты чо, валенок, сиди и молчи.
— Ладно… — Сергей как-то неуклюже заулыбался. — А кто хвалил?
— Коммерческий директор больше всех, для него было важно в этом квартале запустить интеграцию и интернет-магазин, это его план по стратегической сессии. Еще зам по снабжению, он теперь может быстро получать заявки от клиентов, не дожидаясь обработки в отделе продаж.
— Ха, надо с них магарыч стрясти, особенно с коммерческого! У него ж премия квартальная тыщ триста, и только благодаря тебе он ее получит. Давай, Серега, сходим, потрыдним с ним!
— Не знаю… Я думаю, эту систему надо будет переделать, там нужен рефакторинг. Я использовал типовые средства интеграции, которые Битрикс дает. Там такое говно… Собственно, как и сам Битрикс… Его бы тоже заменить — кто вообще решил на нем сайт делать?
— Это решение принято по результатам глубокого и всестороннего анализа существующих предложений по CMS и, вообще, платформам для разработки сайтов.
— Так это когда было? Тогда реально ничего другого не было, что можно назвать платформой или продуктом. Только голый html, php и т.д. Сейчас технологий, платформ и фреймворков десятки и сотни, и каждая на голову выше Битрикса. Давайте…
— Давайте без давайте! Ты странный, как ёжик в тумане. Какая к херам разница, на чем сайт и как он засинхронен с 1С, если все работает? Серьезные люди тебе благодарность высказали, прилюдно. Чего тебе еще надо, собака?
— Не, я согласен, что хорошо, когда работает. Просто… Я не знаю… Неправильно это все…
— Давай я за тебя тогда премию в этом квартале получу, раз неправильно! А ты дальше пойдешь своим рефакторингом заниматься, и курить фреймворки!
— Держи карман шире, лапоть. Мне премия самому нужна, у меня ипотека.
— Сергей, ты можешь более системно свое предложение сформулировать, по смене платформы сайта? Сроки, стоимость, необходимые компетенции. Ну и главное — проблематику, что там не так.
— Да там все не так, в основе, в фундаменте.
— Ну хотя бы мне можешь показать? Или Коле? Я постоянно пользуюсь и сайтом, и внутренним порталом, и не припомню, чтобы были какие-то явные ляпы или неудобства…
— Там в код надо смотреть, в метаданные, которых нет, в корявую СУБД, не подходящую для реальных крупных проектов. Я бы все там поменял. Нет, не так — просто заменил бы Битрикс, переделал сайт. Хотя, это работы на год, не меньше…
— Вот и я о том же, Сергей. Современные технологии — это хорошо, но мы работаем не в Google, а в реальном бизнесе, тут совсем другие потребности. Хотя, конечно, не стоит забывать о развитии.
— Тут понимаете, Жанна, надо иметь в виду не только текущие задачи, но и развитие, будущее наших систем. В текущем состоянии система становится все более тяжелой и зависимой, нет возможности вносить быстрые изменения.
— Ну ты же как-то сделал быструю интеграцию?
— Это, скорее, быстрый костыль, а не интеграция. Ну и типовая она. А если понадобится нетиповая интеграция, то быстро ее сделать не получится.
— Будем молиться, чтобы не понадобилась нам такая хрень! А если попросят — выбьем себе бюджетище! И наймем каких-нибудь бездарей, чтобы все нам переделали!
— Это называется аутсорсинг, Колян.
— Зинаю! Мы тоже не пальцем деланные!
— Ну да, так-то ты прав… Пусть подрядчики в заднице ковыряются, если понадобится…
— Сережа, что за выражения…
— Да, прошу прощения, Жанна. А что, реально за эту интеграцию премию получить?
— Конечно, без вопросов. Сегодня же займусь этим вопросом, под хорошее настроение начальства. Генеральный ведь тоже на оперативке присутствовал. Ты только не ходи и не рассказывай на каждом углу, что с Битриксом что-то не так.
— Ясен хер, не первый год замужем.- бодро, с напускным энтузиазмом выкрикнул Сергей.
— Заметано! Я — тоже могила!
Зима
— Здорово! — Колян оторвался от монитора, и посмотрел на довольного Сергея. — Ты где пропадал? По бабам ходил?
— Можно и так сказать, чо. В бухгалтерии сидел.
— Полдня? Не утомили они тебя там? Их же десять человек, одна краше другой.
— Это наш с ними секрет будет, чего мы там делали… — Сергей изобразил улыбку ловеласа.
— Так, хватит подобные темы при мне обсуждать. Серьезно, Сергей, что делали?
— Месяц закрывали, чего еще в бухгалтерии делать. Сидел, проводки проверял, оборотку сводил.
— Нафига, ты чо, блин. — Колян вспылил. — Я в этом квартале их две недели учил, как закрывать месяц, достали ведь уже, даже меня. Пусть сами закрывают, мы ж все-таки программисты, а не бухгалтера.
— Ну иди, докажи им, что ты программист, а они сами справятся. Ни хрена они не умеют. Глазки красивые большие сделали, «Сережа, помоги, мы тут что-то нажали, и все сломалось».
— Слушай, ну я от тебя такого не ожидал. Кто все время орал, что заниматься бухгалтерией, и вообще 1С — недостойно приличного программиста?
— Не знаю. Я, наверное. Вообще, отвали-ка для разнообразия. Я нам премию обеспечил, почет и уважение. Через неделю налог на прибыль, если ты забыл.
— Ты нашу могилу углубил на полметра! Я ж тебя, придурка, слушал, даже поверил немного, что херней занимаюсь, начал их учить, автоматизировал некоторые проверки у них, чтобы больше не доставали!
— Ишь ты, воскрешение Лазаря… Или прозрение слепого… Ладно, не ори, в следующий раз сам пойдешь, будешь у них над душой стоять, чтобы сами все делали.
— Пойду, и тебя не спрошу! Прям щас пойду, устрою им разнос, вообще охренели! Сидят, десять коров, отвлекают приличных людей от правильной работы!
— Николай, постой, не надо никуда ходить. Не тот момент.
— Какой «не тот момент», Жанна? Я тут пять лет работаю, и все момент не тот! Два состава бухгалтерии сменилось, а все момент не тот! Все откладываем, откладываем, все потом, все после отчетности, а как квартал заканчивается, так некогда, дела накопились, бла-бла-бла… Мне надоело этой сраной бухгалтерией заниматься, я хочу реально полезные системы создавать, а не черное с красным схлопывать!
— Ну так не занимайся бухгалтерией, кто тебя заставляет. — недобро улыбнулся Сергей. — Я буду заниматься. А ты ковыряй фреймворки, смотри гитхаб и пулл реквесты засылай таким же правильным пацанам, как ты.
— Ты ж не 1Сник, Сергей. — Жанна была в смятении. — Твои ключевые компетенции вроде в веб-программировании лежат.
— Пусть лежат, жалко что ли. Как будет задача по веб-программированию, так и займусь. А пока предприятию надо отчетность сдавать, или прайсы из файлов загружать, или вай-фай директору настроить, я буду заниматься именно этим.
— Ну… В общем-то, я рада это слышать. И тебя, Николай, прошу не забывать, что на первом месте всегда стоят потребности реального бизнеса, а не саморазвитие. У нас не университет.
— Да какое саморазвитие, Жанна! Я ж для предприятия и стараюсь, не для себя! Просто хочу сделать так, чтобы нам, программистам, не надо было заниматься всякой ерундой. Мы не для этого учились, и ты не для этого нас на работу взяла!
— Позволь уж мне судить, для чего я вас на работу взяла… Я слышу тебя, понимаю, твою обеспокоенность, но, еще раз: проблемы бизнеса — на первом месте, всегда. Если надо, я и сама занимаюсь подобной работой.
— Да не слушайте вы его, Жанна. У Коляна, похоже, несварение. Опять говно без ложки ел, хе-хе-хе…
— Да иди ты, приспособленец чертов…
— Так, все, хватит! Я не допущу разлада в команде! Вы оба правы, оба радеете за родное предприятие, хоть и расходитесь во взглядах. Но сейчас, в тяжелые кризисные времена, надо наступить на горло своей песне и думать только о благе предприятия.
— И о себе не забывать, чо уж там… Колян, ладно, извини, не психуй.
— Я не «психуй», дорогой Сережа. Жанна, я к тебе сегодня зайду, нам надо серьезно поговорить.
— Хорошо, ты знаешь, где мой кабинет.
Эпилог
— Ты, главное, не ссы! Держись меня, делай как я, и все будет чики-пуки.
Виктора всегда бесил такой, колхозный, стиль общения, особенно у малознакомых людей. Не понятно, как реагировать. Вроде надо в лицо идиотом назвать, но мало ли, вдруг человек не всегда такой, просто не умеет эмоции словами выразить. Тем более, Виктор первый день на этой работе. На своей первой настоящей работе.
— Сереж, давай посерьезнее. — Жанна строго посмотрела на тощую самодовольную рожу. Потом перевела взгляд на новенького. — Виктор, не слушай этого старого коня. Борозды он, конечно, не испортит, но и целины не поднимет.
Виктору пришлось улыбнуться — все-таки начальник пошутил, и вроде не совсем безнадежно.
— Мы на тебя возлагаем большие надежды, Виктор. Сергей у нас под завязку загружен текучкой — ее очень много. Мы понимаем, что действуем неэффективно, где-то что-то упускаем, используем устаревшие технологии и подходы… Но у нас реально нет времени остановиться, подумать, посмотреть, поучиться. Как писал Кови — наточить пилу.
Виктор понимающе покивал головой. Он не знал, кто такой Кови, но метафору понял.
— Ты — молодой, целеустремленный, не обремененный обязательствами и связями, амбициозный, и очень умный программист. У тебя за плечами очная Бауманка. Мы ждем от тебя новой струи свежего вохдуха, скачка в развитии наших систем, прорыва облачных технологий. Так, и только так!
— Спасибо, Жанна Ивановна. Я буду стараться.
— Никакого отчества, просто Жанна! Велкам в нашу команду, Витя!