Часть 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 пишет записку «Так как Разработчик был недостаточно лояльным и уволился, прошу выделить мне команду для поддержки этого приложения, а пока мы замораживаем все работы по нему».
Через полгода всё рассыпается и компания теряет много денег. Обвиняют во всём уже ушедшего из компании Разработчика и решают сделать новую систему, так как никто не понимает, как работает старая.
КОНЕЦ
При написании этого текста не пострадал ни один костыль.
Все совпадения с реальными людьми и событиями считать злонамеренными.
————————
Технический долг (также известный как долг кодинга) — это метафора программной инженерии, обозначающая накопленные в программном коде или архитектуре проблемы, связанные с пренебрежением к качеству при разработке программного обеспечения и вызывающие дополнительные затраты труда в будущем. Технический долг обычно незаметен для конечных пользователей продукта, а связан с недостатками в сопровождаемости, тестируемости, понятности, модифицируемости, переносимости. По аналогии с финансовым долгом, технический долг может обрастать «процентами» — усложнением (или даже невозможностью) продолжения разработки, дополнительным временем, которое разработчики потратят на изменение программного продукта, исправление ошибок, сопровождение и т. п. Хотя увеличение технического долга как правило негативно влияет на будущее проекта, оно может быть и сознательным, компромиссным решением, продиктованным сложившимися обстоятельствами. (с) Wikipedia
Изменено: 15.01.2019