Пьеса «Технический долг»: типичный случай из жизни разработчика Часть 0 В пустой комнате стоят Разработчик (Р) и Менеджер (М). М: Я собрал нас тут, чтобы рассказать пренеприятнейшее известие: система КРОТОПОН, которая работает на продакшене, заглючила, и мы потеряли кучу денег. Кроме того, нет никого, кто знает, как она работает. Поэтому (с придыханием) наш СЕО дал мне священную миссию — написать новую систему. Как ты думаешь, за два месяца справишься? Р: А что делать-то нужно? М: Да там немного, всего лишь пару десятков систем связать и рюшечки навесить. Р: Эй, да это же на год работы! И вообще требования будут? М: (В телефон) Да, конечно, за полгода справимся. (Разработчику) Ну ты тут пока начинай, а я тебе требования потом донесу. Менеджер уходит. Р: Но тут же… Разработчик тяжело вздыхает, затаскивает в комнату инструменты и начинает что-то сооружать. Часть 1 Через 2 месяца. В комнате сидит Разработчик и что-то строгает. Забегает радостный Менеджер и протягивает Разработчику большую папку. М: Знаешь, что я принес? Это требования к системе, составленные нашим главным писателем. А еще нашим проектом заинтересовался СЕО, так что мы релизимся на месяц раньше! Р: (ошарашенно) Но ведь у нас всё рассчитано на полгода! М: Не волнуйся, вот посмотри, я подробные требования принёс, всё получится! Разработчик смотрит требования. Р: Но ведь это отстой, мы вообще об этих требованиях не слышали! М: А, это? Это попросил сам СЕО, так что нужно обязательно сделать. Р: Но я же не успею! М: Не волнуйся, я что-нибудь придумаю. Менеджер убегает. Разработчик начинает разбирать собранное в центре комнаты. Часть 2 Через месяц, Разработчик собирает что-то совершенно не похожее на сооружение из предыдущей сцены. Входит Менеджер. М: Радуйся, я привёл нам помощь! Р: О, кто-то ещё будет разрабатывать этот продукт? Тогда мы справимся! М: Не совсем. Знакомься, это наш Скрам-мастер! Входит Скрам-мастер (С). С: Здравствуйте, дети! В смысле, приятно познакомится! М: Он поможет тебе лучше распределять время между задачами, повысит производительность нашей команды. Р: Но я же один в команде… С: Не волнуйся, я только что прочитал об особом виде СКРАМ, который как раз подходит для команд из 3-х человек. Менеджер уходит, Скрам-мастер сдвигает сооружение, сделанное разработчиком, в угол комнаты и начинает рисовать графики. Часть 3 Месяц до релиза. Скрам-мастер сидит в центре комнаты в позе йога, Разработчик пытается соединить всё в углу комнаты. Входит Менеджер. М: О, я вижу, у вас всё готово? Хорошо! Р: Оно не идеально, но к началу тестирования я успею закончить. М: А, ты про это… У нас не будет тестирования. Р: Что? М: Я поговорил с ВИПами, и они хотят видеть всё за 2 недели, как мы покажем всё СЕО. Так что тестирование отменяется. Р: Но ведь у меня нет времени укрепить всё к этому показу! М: Не проблема, подопри костылями и прибей гвоздями. Р: Оно не будет работать, и мне стыдно будет показывать такой код! М: Не волнуйся, мы всё исправим после релиза. Менеджер уходит. Разработчик начинает прибивать костыли к сооружению, в результате чего оно становится похожим на ежа. Часть 4 Неделя до релиза. В окне мелькает молния, в углу стоит противотанковый ёж из костылей. Рядом спит Разработчик. Вбегает Менеджер и будит Разработчика. М: Надо всё переделать! Р: Как? Что? Оно же работает! М: Наш проект посмотрели ВИПы, и вот список доделок, которые нужно сделать до показа СЕО. Менеджер выходит из комнаты и ввозит тележку заполненную бумагой. Р: Но… как? (Смотрит на первую попавшуюся бумажку из кучи) Это же соврешенно не так, как было написано в требованиях! М: Забудь про требования, надо сделать так. Р: Но ведь Скрам-мастер говорит, что мы не будем принимать новые требования! С: Ты знаешь, новые требования принимать нельзя, но если очень хочется, то можно переключиться на особый вариант аджил для котов, и там это допустимо. Кстати, меня уже позвали помочь соседнему проекту, я пойду. Скрам-мастер уходит. М: Не знаю, как ты, но я собираюсь сегодня ночевать в офисе. Обещаю хорошую премию по результатам! Менеджер демонстративно садится напротив Разработчика и начинает на него смотреть. Р: Ладно, я попробую что-нибудь сделать, но после релиза нужно будет всё исправить! М: Да, конечно, у тебя будет время на это после релиза. Разработчик начинает разбирать бумаги в тележке, Менеджер на него смотрит. Часть 5 В углу комнаты стоит, покачиваясь, неустойчивая конструкция, рядом среди стаканчиков из-под кофе спит Разработчик. Входит Менеджер. М: (Оглядываясь вокруг) Хорошо поработали. (Тормошит разработчика) Ты знаешь, наш проект хорошо оценили. Так и сказали, что я мастер управлением персоналом, что смог вытащить этот проект за такой малый срок. Так что меня повысили. Знакомься, это твой новый менеджер! Входит Менеджер 2 (М2), Менеджер раскланивается с ним и выходит. М2: (смотрит на полу-спящего Разработчика) Привет! Надеюсь, ты полон сил и решимости работать на благо нашей компании? Р: (с трудом садясь) Да, надо подчистить технический долг после релиза… И Менеджер обещал мне премию… М2: Странно, мне он забыл об этом сказать. Я спрошу его. А пока, раз ты полон решимости, мне нужна помощь с другим проектом. Менеджер 2 выходит и вкатывает телегу с говном. Р: Это же куча говна! М2: Нет, это очень важный проект, который сделал наш Гуру. Тебе нужно всего лишь исправить пару маленьких недоделок внутри, тогда и поговорим о премии, кстати. Менеджер 2 уходит. Часть 6 Разработчик сидит и пытается починить колесо у телеги с говном, входит Менеджер 2. М2: Ну вот, отлично выглядит, а ты говорил, что куча говна. Р: Так можно мне премию? М2: Да, да, конечно. Я обо всём договорился. Только мы немного опоздали, и поэтому придётся ждать окончания следующего отчётного периода через 6 месяцев. Кстати, решено выпустить вторую версию этого замечательного продукта (оглядывает покачивающегося противотанкового ежа в углу комнаты). Р: (отряхиваясь от говна) Хорошо, наконец-то я смогу починить эти костыли! М2: Нет, на это нет времени. У нас есть куча новых требований. Р: Но приложение же нестабильно! Я не смогу добавлять новую функциональность, пока не исправлю старую! М2: Не бойся, я попрошу о помощи, начинай делать. Часть 7 Те же лица, Разработчик пытается что-то делать. М2: Возрадуйся, я договорился о помощи! Р: Надеюсь, не Скрам-мастера? М2: Нет, я привёл настоящего профи своего дела! Знакомься, Гуру. Ты уже видел его проект (кивает на телегу с говном). Входит Гуру(Г). М2: Гуру будет руководить доработками. Вопросы? Р: Но я же лучше знаю проект… М2: Да, покажи проект Гуру. Разработчик начинает показывать проект. Р: А тут у нас куча костылей, их планировали исправить до релиза. Г: (покачивая головой в разные стороны) Да, понимаю. М2: Ну как, разобрались, успеете? Г: Конечно, сделаем всё в лучшем виде. Начнём с самой важной части — платформы. Всё просто необходимо переделать согласно последним трендам. Р: Но… М2: (хлопая в ладоши) Ну вот и разобрались! Часть 8 Те же лица, Гуру втаскивает в комнату ещё одну телегу и водружает на неё противотанкового ежа. От ежа в процессе отрывается половина костылей и то, что к ним крепилось, и остаётся лежать на полу. Потом он бережно переливает говно из первой телеги в новую, покрывая остатки ежа. Г: Ну вот, я даже перевыполнил план, заодно добавил интеграцию с прошлой системой. Кстати, забыл сказать, я ещё работаю на 10 других проектах и моё время для этого проекта вышло, но я буду заходить и смотреть, что ты сделал. Дальше уже тривиально. Пока! Гуру выходит из комнаты. Р: Всё, меня всё достало, я увольняюсь! М2: Премия. Сразу после релиза. Р: Да мне уже больше предлагают! М2: Тогда ещё повышение зарплаты, тоже после релиза. И, вообще, ты профессионал или где? Уходить сейчас непрофессионально! Р: Ок. (начинает собирать костыли с пола) Часть 9, заключительная В центре комнаты стоит телега с говном и скульптурой из костылей, сидит Разработчик. Входят Менеджер 2 и Гуру. М2: Какие мы молодцы, что сделали эту систему! Особенно важна самоотверженность, с которой ты (обращается к Гуру) в условиях жёсткой нехватки времени идеально встроил новую платформу! Обязательно выдам тебе хорошую премию. Р: Надеюсь, вы не забыли про меня? М2: Нет, конечно, нет! Только у меня для тебя новость — я вместе с Гуру перевожусь в другой отдел, так что тобой займётся уже Менеджер 3. А вот, кстати, и он! Менеджер 2 и Гуру уходят, входит Менеджер 3(М3). Р: Давай поговорим о моей премии и повышении зарплаты, о которых я договорился с Менеджером 2! М3: Подожди, подожди, я слышал об этом, но мне кажется, что там повышение слишком большое. Тем более основную работу сделал Гуру. Давай поговорим об этом через 6 месяцев, когда я присмотрюсь к тебе. Сейчас мне всё равно не выделили бюджет на увеличение зарплатного фонда. Р: Да идите вы… (Разработчик пишет заявление ПСЖ и увольняется, уходит со сцены) Менеджер 3 пишет записку «Так как Разработчик был недостаточно лояльным и уволился, прошу выделить мне команду для поддержки этого приложения, а пока мы замораживаем все работы по нему». Через пол года всё рассыпается и компания теряет много денег. Обвиняют во всём уже ушедшего из компании Разработчика и решают сделать новую систему, так как никто не понимает, как работает старая. При написании этого текста не пострадал ни один костыль. Все совпадения с реальными людьми и событиями считать злонамеренными.