«Две тропинки идут рядом: путь жизни и путь смерти… Люди не идут никаким путём, ни путём жизни, ни путем смерти. Вихрь носит их, как солому.»
Густав Майринк, «Голем»
В офисе было тихо и темно, лишь стук клавиш и редкие щелчки мыши нарушали едва различимое жужжание кулера, да широкоформатный монитор освещал измождённое лицо regular developer'а Миши. Сторонний наблюдатель мог бы подумать, что идёт обычная рабочая ночь с пятницы на субботу. Так оно и было для тысяч других разработчиков по всему миру, но только не для Миши. Поставив очередную пустую бутылку под стол, он внезапно почувствовал, что граница, отделяющая его от гордого титула «senior developer», не так уж и далека.
«Я встаю не раньше полудня, работаю до двух часов ночи и выпиваю за раз до трёх литров пива. Наверное, я становлюсь профессионалом», — подумал Миша, и в этот самый момент почувствовал на себе чей-то тяжёлый взгляд. То, что он увидел, подняв глаза от монитора, заставило его замереть от ужаса. Две фигуры в серых балахонах стояли по обоим сторонам его стола. Лица, скрытые низко надвинутыми капюшонами, смотрели сурово, и в то же время безразлично. Страшно было пошевелить хотя бы пальцем или вздохнуть, а сознание отчаянно отказывалось верить в реальность происходящего — ведь Миша узнал этих двоих. Старшие коллеги рассказывали ему, что всякий раз, когда кто-нибудь подбирается к мистической грани между простым разработчиком и старшим, к нему приходят эти двое, чтобы посвятить в свои мрачные тайны.
Миша сглотнул и тихо спросил дрожащим голосом:
— Тим-лид Коля? Проджект-менеджер Изя? Рабочий день уже давно закончился, что вы здесь делаете? И к чему весь этот маскарад?
— Михаил, ты и сам знаешь, зачем мы здесь, — бесстрастным голосом ответил Коля, — должность рядового девелопера стала мала тебе. Пришло твоё время, Михаил.
— Время инициации, — так же бесстрастно и сухо продолжил Изя, — пойдём за нами, и мы покажем тебе две стороны разработки — светлую и тёмную. В эту ночь ты узнаешь достаточно, чтобы сделать выбор.
— Я покажу тебе светлую сторону разработки, о которой мечтает любой инженер. А Изя покажет тебе изнанку, тёмную сторону, от которой у программистов мурашки по коже идут.
— Дарк-сайд, это называется дарк-сайд, — поправил его Изя.
— Да, многие родные слова на тёмной стороне заменяются транскрипцией иностранных терминов. Ну ничего, Миша, ты привыкнешь. Собирайся.
Сказав это, Коля и Изя развернулись и пошли по направлению к выходу. Собирать Мише было нечего, поэтому он поднялся со своего рабочего кресла, и, с трудом переставляя ватные ноги, пошёл следом.
Когда Миша догнал их около лифта, Коля, не оборачиваясь, заговорил:
— Для начала тебе придётся принять горькую истину. Цель разработки ПО — получение прибыли. Да, все наши архитектуры, базы данных, алгоритмы и фреймворки — это сайд-эффекты бизнеса. К счастью, в чистом виде ни тёмная, не светлая сторона не встречаются. Иначе в первом случае ПО перестало бы существовать, потому что никто бы его не делал, а во втором — потому что разработка длилась бы бесконечно. Да, только не нужно приравнивать светлую и тёмную сторону к добру и злу. Ведь если разобраться, мы все служим одному и тому же…
— Любая организация существует только за тем, чтобы её руководитель мог купить себе Порш-Кайен, — перебил его Изя, и они оба дружно захохотали. Тут Мишу впервые посетила мысль потихоньку слинять от этих двоих, но, словно прочтя его мысли, Изя обернулся к нему:
— Оставь свой страх — сегодня тебе нечего бояться, ведь над землёй плывёт особенная ночь, мы её называем «Лель-Кодиим».
Миша мало что понял из этих слов, но желание убежать куда-то исчезло, тем более что лифт уже приехал.
Внутри лифта царил приятный полумрак. Откуда-то сверху лилась ненавязчивая приятная музыка. «Кажется, это Брайн Ино», — подумал Миша. Привычных кнопок с этажами не было. Вместо них была небольшая панель из гладкого светлого металла. В верхней части был изображён силуэт надкусанного яблока, в нижней — единственная кнопка без каких-либо надписей.
— Какой странный лифт, никогда не видел таких, — удивился Миша, — Как же он узнаёт, куда мне надо?
— Миш, это очень современный лифт, — несколько раздражённо ответил Изя, — его создатели лучше знают, куда тебе нужно ехать.
С этими словами Изя нажал на кнопку, двери плавно закрылись, и лифт поехал. По слегка возросшей силе тяжести Миша понял, что поехали они вверх, и при этом с приличной скоростью.
Светлая сторона
Двери лифта открылись и Мишу ослепил яркий свет. Такого яркого света он не видел ещё ни разу в жизни. Но раздался хлопок и свет погас.
— Блин, опять лампочка лопнула. Глянь там, остались ещё? — спросил голос из темноты.
— Ну сколько раз говорить, нету, и мы сейчас не можем себе это позволить, — ответил ему другой голос, — вот когда запустим in-app purchase, тогда сразу лампочек купим.
— Смотри внимательно, Михаил, это стартап, — торжественно сказал Коля, выходя из лифта и обводя грязное полуподвальное помещение рукой. У дальней стены друг напротив друга стояло две школьные парты, на каждой из которых стояло по компьютеру. За первым компьютером сидел бородатый мужчина неопределённого возраста в потёртых брюках и старом свитере. По пятнам на свитере можно было получить примерное представление о его диете. Человек за соседним компьютером выглядел чуть более опрятно — на нём были тренировочные штаны и малинового цвета водолазка. Вместо мышки у него был графический планшет. Рядом с лифтом стоял продавленный диван, на котором сидел третий участник стартапа — на нём были искусно порваны джинсы, клетчатая рубашка и очки в роговой оправе. На коленях у него лежал ноутбук.
Миша сделал шаг из лифта и услышал, как под подошвой его ботинка хрустнуло стекло лампочки. От неожиданности он вздрогнул. Все трое посмотрели в сторону Миши.
— Не бойся, они не видят нас, сегодня мы не инстанциированы и существуем только в виде абстракций, — быстро заговорил Коля, — ты, наверное, сейчас спросишь меня, почему мы ехали на лифте вверх, а попали в подвал? Понимаешь, это только самое начало, так происходит у многих. Предвосхищу и другой твой вопрос — зачем мы здесь, в этом подвале? Стартап в таком виде, основанный на чистом энтузиазме — это самый дальний край светлой стороны разработки программного обеспечения. Дальше стартаперов-энтузиастов на светлую сторону ещё никто не заходил. Светлая сторона ориентирована на разработку как можно более качественного программного обеспечения. На светлой стороне пребывают практически все стартапы. Оно и понятно — бюджеты там либо отсутствуют, либо сравнительно небольшие. Для получения прибыли здесь нужны не отчёты и собрания, а конкретный продаваемый продукт. А на фоне высокой конкуренции привлекательнее всегда выглядит более качественный товар. Такие стартапы, как этот, удовлетворяют потребности, естественным образом сформированные ещё до появления стартапа. Например, потребность общаться с друзьями, потребность прогнозировать погоду и пробки, потребность делать заметки, да что перечислять, тысячи их! Вот эти трое гиков за компьютерами — и есть вся компания. У них нет никакого руководства кроме здравого смысла и желания делать качественные программы.
Коля замолчал, чтобы немного перевести дух. По нему было видно, что он восхищается этими ребятами.
— А что потом будет с ними? — несмело спросил Миша, — Не всю же жизнь им сидеть здесь, в подвале?
— Да, ты прав, — ответил Коля, — обычно стартапы живут вплоть до первой сдачи 4-ФСС. Вот этот, в малиновой водолазке, который сейчас что-то рисует в фотошопе — он станет дизайнером, хотя рисовать он так и не научится. Вот этот, с ноутбуком, единственный, у которого обувь чистая — будет внедрять 1C. А тот, бородатый… про него даже говорить не хочется.
Словно услышав, что речь зашла о нём, бородатый встал из-за стола и, сладко потянулся.
— Я наконец-то сделал то, что так давно планировал. Теперь вся логика взаимодействия потоков покрыта юнит-тестами. Какая-же всё-таки хорошая штука этот JUnit, — сказал он, кашлянул и вышел из комнаты.
Миша хотел было подойти к компьютеру, что бы хотя бы мельком взглянуть на то, как с помощью JUnit тестировать многопоточные приложения, но Изя одёрнул его:
— У нас мало времени. Ночь коротка, а мы ещё не побывали на дарк-сайде. Пойдём же из мрачного подвала светлой стороны в просторный кондиционированный офис!
Тёмная сторона
Изя зашёл в кабину лифта последним и нажал единственную кнопку. Когда двери закрылись, он оберулся к Мише:
— Итак, сейчас ты увидишь дарк-сайд софтваре-девелопмента. Сразу предупреждаю, он устроен намного сложнее, чем светлая сторона. Все ваши структуры данных и алгоритмы — детские шалости по сравнению с распилами и откатами. Боюсь даже, ты не поймёшь большую часть из того, что увидишь, но, по крайней мере, тебе стоит разобраться, почему дарк-сайд тебе представляет именно проджет-менеджер, а не тестировщик или какой-то другой ресурс.
Фраза «какой-то другой ресурс» задела Мишу, но, прежде чем он нашёлся, что ответить, раздался мелодичный звонок, и двери лифта бесшумно распахнулись. Выйдя вслед за Изей, Миша и Коля оказались посреди огромного и безупречно чистого помещения, разделённого пластиковыми перегородками на небольшие секции. В каждой такой секции стояло около пяти столов с креслами. Что интересно, компьютеров почти нигде не было.
— Изя, почему на тёмной стороне разработки ПО нет компьютеров? У них у всех что, ноутбуки? Или планшеты? — спросил Миша.
— Твой вопрос указывает на непонимание базовых принципов дарк-сайда, — отозвался Изя. — Но ничего, я постараюсь дать тебе объяснения. То, что ты видишь перед собой — это не офис. Это масштабируемое офисное решение. Сделано оно таким из-за специфики кадрового менеджмента. Проще говоря, хайринг ресурсов происходит в моменты минимальной стоимости, а файринг — в моменты убыточности содержания. Кстати, обрати внимание на перегородки. С ними связана любопытная история. Раньше под каждую единицу ресурса сооружалось что-то типа кабинета из четырёх загородок. Но после того, как Коупленд выпустил в свет свою макулатуру, мы стали делить опен-спейс на более крупные фрагменты, или даже вовсе экономить на перегородках.
— Хайринг ресурсов? Ты имеешь ввиду приём на работу сотрудников, программистов? — переспросил Миша.
— Нет, на дарк-сайде нет людей, здесь только менеджеры и ресурсы, которые они распределяют! — глаза Изи полыхнули недобрым огнём и в воздухе еле уловимо запахло серой, — запомни это, и не позволяй себе больше таких вольностей.
— Хорошо, — тихо ответил Миша и вжал голову в плечи.
— Так-то лучше, — Изя немного успокоился, — итак, продолжим. Если коротко, то дарк-сайд софтваре-девелопмента — это законный способ изъятия денег у заказчика. Дарк-сайд ориентирован на как можно более некачественный и затянутый девелопмент. Казалось бы, как такое может быть? Но, как ни странно, на дарк-сайде больше компаний, чем можно себе представить. Доход такая компания получает за счёт сапорта своих некачественных продуктов. Ибо если продукт качественный — как же его сапортить? Поэтому компания все силы прикладывает к тому, что бы сделать продукт некачественным, но при этом таки выпустить его. Это раньше, во времена мейнфреймвов, романтиков и стримеров целью разработки программы было получение результатов вычисления. Сейчас же время смарт-девайсов, прагматиков и облаков, а программы создаются с целью создания у заказчика ощущения того, что всё хорошо. Как ты думаешь, Миша, что будет, если ты сразу напишешь работающую программу? Тебя уволят, так как работы для тебя не будет. Ты сам себя лишишь работы! — Изя недобро засмеялся, — Но я отвлёкся. Потребности, которые удовлетворяют написанные здесь программы, сформированы маркетологами. До написания программы такой потребности не было. Жили же люди когда-то без комплексных корпоративных решений, и неплохо жили! — Изя опять засмеялся, — Характерным признаком тёмной стороны является оверстафинг — наём большего количества сотрудников, чем это необходимо. Возникает он довольно просто. В основу системы кладётся неподходящая архитектура. Из-за неконтролируемого роста сложности развитие системы даётся всё тяжелее. Видя, что разработка затягивается, руководство нанимает ещё сотрудников. Новые сотрудники, плохо разбираясь в системе, ещё более увеличивают её сложность, что ещё более замедляет разработку. Профит очевиден. С ростом штата растёт значимость каждого руководителя, от ведущих разработчиков до директоров, растут и счета, выставляемые заказчикам. Но только до тех пор, пока заказчик готов оплачивать весь этот цирк. В один прекрасный момент заказчик говорит «с меня хватит!» и прекращает сотрудничество. А компания увольняет большую часть сотрудников. Кстати, вот наш весьма ценный ресурс.
За одним из столов сидел уже немолодой мужчина. Он был невысокого, если не сказать маленького, роста, а огромный живот и второй подбородок выдавали в нём любителя пива и футбола по телевизору. Он сосредоточенно смотрел в монитор поверх небольших квадратных очков и что-то набирал на клавиатуре короткими толстыми пальцами, периодически нервно хихикая.
Неизвестно откуда у Изи в руках появилась глубокая тарелка, полная печенья. Изя поставил её на стол, и мужчина, не отрывая взгляда от монитора, взял с неё несколько штук и положил себе в рот. Миша поймал себя на мысли, что точно так же хозяева дают корм домашним животным. Изя поймал его взгляд и улыбнулся:
— Это один из бенефитов дарк-сайда. Имей ввиду, когда будешь делать выбор.
И снова рассмеялся.
— Смотрите, уже рассветает, — сказал Коля, — пора уже заканчивать нашу экскурсию. Миша, ты выбрал, к кому присоединишься? Ну же, ты выбрал?
Коля встал на колени и принялся целовать Мише руки, а Изя подошёл сзади и, обхватив руками, начал сдавливать Мише грудную клетку. В ушах у Миши зазвенело, и он почувствовал, что он теряет сознание. Последнее, о чём успел он подумать, так это то, что ему дико хочется в туалет…
Утро
Когда звон сделался невыносимым, Миша поднялся с кровати, при этом столкнув с груди Изю. Изя недовольно мяукнул и попытался снова забраться в тёплую постель. Коля сидел рядом и, жалобно поскуливая, лизал Мишины пальцы, всем своим видом показывая, что его пора вести на прогулку. Миша выключил назойливо звенящий будильник и открыл окно. Его сразу обдало прохладным, ещё не наполненным выхлопными газами, утренним воздухом. Лёгкий ветерок чуть шевелил разложенные на столе чертежи и строительные сметы.
Миша потянулся и пробормотал себе под нос:
— Эх, ну и приснится же иногда. Хорошо, что я в своё время поступил на архитектурный, а не на мехмат.
Этот рассказ, вместе со многими другими, можно прочесть в книге IT AS IS