Предупреждение: у нас есть цензура и предварительный отбор публикуемых материалов. Анекдоты здесь бывают... какие угодно. Если вам это не нравится, пожалуйста, покиньте сайт. 18+

История №988199

Пьеса «Технический долг»: типичный случай из жизни разработчика.

Часть 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 пишет записку «Так как Разработчик был недостаточно лояльным и уволился, прошу выделить мне команду для поддержки этого приложения, а пока мы замораживаем все работы по нему».

Через пол года всё рассыпается и компания теряет много денег. Обвиняют во всём уже ушедшего из компании Разработчика и решают сделать новую систему, так как никто не понимает, как работает старая.

При написании этого текста не пострадал ни один костыль. Все совпадения с реальными людьми и событиями считать злонамеренными.

История пользователя DemetrNieA с Habrahabr
Тарас Сереванн, эксперт в области IT магии
+191
Проголосовало за – 389, против – 198
Статистика голосований по странам
Статистика голосований пользователей
Чтобы оставить комментарии, необходимо авторизоваться. За оскорбления и спам - бан.
26 комментариев, показывать
сначала новые

Попкин10.01.19 06:45

А есть ещё:
https://en.wikipedia.org/wiki/Six_phases_of_a_big_project
Переводить не буду, лень.

+0
ответить

mikololo24.12.18 03:42

Теперь с точки зрения менеджера
1) сроки назначают ориентируясь на "сроки выхода на самоокупаемость", пожелания клиента Иван Иваныча и прочие экономические и не очень переменные о которых разработчик знать не знает а если узнаёт то будет считать ересью. Хотя именно от этих переменных зависит его зря-плата.

2) есть прописная истина - что бы успеть нужно рабочим установить дедлайн в два раза короче реального. Успеют - экономия, не успеют - все равно уложатся в реальный дедлайн и опять же экономия на премия.

3) разработчики - илитка, им главное обсудить интересное решение или новую платформу. Об мирской суете типа повышения или окладе не беспокоятся, что просто замечательно

4) при всем вышесказанном продолжают упорно видеть в менеджерах людей недалеких а в себе - соль земли и " если я уйду все развалится".

5) когда уходят их на раз заменяют следующим кустарем-одиночкой с мотором в заднице

+0
ответить

васька ★★23.12.18 23:58

А бывает, что ставят задачу, которую невозможно решить без нарушения законов физики. И на все возражения кричат:"Да мы же озолотимся, если это сделаем! Нужно только решить вопрос, как это реализовать технически. Ты что, не хочешь работать в нашей компании?" Раз меня так достали таким наездом, что я сказал:
-Вот у меня есть проект. Если мы его сделаем, то действительно озолотимся.
-И что это? (с горячим интересом)
-Делать золото из говна. Рынок сбыта устойчивый, сырья полно. Нужно только решить, как это реализовать технически.
После этого меня уволили.

+8
ответить

ystervark23.12.18 20:22

Рассказ не полон, потому что Рахработчик показан одним лицом (кроме периода, когда ему помогает Гуру). На самом деле, разработчик многолик:

- собственно, Гуру, как описан
- разгильдяй, которому лишь бы быстрее сварганить хоть что-нибудь. Часто работает методом copy-paste, бывает хвалим за скорость работы, но делает много ошибок
- аккуратный, правильный програмист, чей код всегда работает, и читать его одно удовольствие, но который строчки лишней не напишет без особо острой нужды, а потому срезает очень много углов и, если можно не делать какую-то фичу, то и не делает.
- просто лентяй, который нифига не делает, а на прямой вопрос об успехах всегда выдает "Я уже почти закончил детальный дизайн"
- человек, который на самом деле уже почти закончил детальный дизайн
- человек, который ни строчки самостоятельно написать не может, зато читает все форумы и знает все имеющиеся продукты, а потому точно знает, какие две-три огромных пакета надо скачать из Интернета и слепить вместе, чтобы все заработало
- то же, но скачиваются не пакеты, а куски кода из Stack Overflow
- человек, который и на работу-то сюда устроился не за деньги, а чтобы написать строчку в резюме "Имею опыт работы с [тут следует название платформы]". Такие люди норовят в любой проект пропихнуть наиболее модную современную платформу, в чем похожи на Гур, хотя Гурами не являются (пока). Смываются после года-двух работы.
- человек, ничего не понимающий в производительности, который, например, чтобы найти минимальный элемент массива, отсортировывает его и берет первый элемент. Главное, чтобы программа работала, а быстро или медленно, неважно
- человек, который только о производительности и думает, в результате у него программа не работает, но делает это очень быстро
- новичок, ничего не знающий об алгоритмах и требующий постоянной опеки, но усердный
- формалист, который требует безоговорочного соблюдения процессов, например, требует юнит-теста для функции, которая складывает 2 и 2
- человек, котоырй плевать хотел на все вообще тесты и клал на все процессы
- дедок, который помнит еще, как редактировал (разрезаи и склеивал) пятидорожечную перфоленту на специальном станке, поэтому на все происходящее смотрит скептически, и говорит, что вот в его время все было по-настоящему
- ну и парочка обычных, ничем не выдающихся, незаметных парней (девушки тоже бывают), без каких-то идей или закидонов, которые все и пишут.

Так что не только на менеджера надо все валить.

+0
ответить

vas_vic ★★23.12.18 19:20

Сроки реализации проекта
КРАТКО, Для того, чтобы сказать, что история [1] хорошая или плохая, там внизу на Анекдотах есть "+" и "-" [это я критикам, в т.ч. Арсению]. Лично я нажал на плюс, но вот что меня поразило, так это то, что Разработчик изначально ориентировался на год, согласился на полгода и несмотря на мощнейшее сопротивление Системы Менеджмента пусть и с недоделками уложился в этот срок. По моему опыту если на программирование чего-либо Программисту хочется попросить некий период, то нужно сразу умножать эту цифру на 2, а лучше на 3. Тогда пусть и с недоделками можно рассчитывать предоставить хоть что-то, пусть и не прошедшее никакого тестирования кроме самого поверхностного в этот 3*х срок.

ПОЛНО. http://tula-it.ru/node/1215 или http://tula-it.ru/comment/4972#comment-4972

+0
ответить

ystervark➦vas_vic23.12.18 20:04

Да тут как раз просто. Во-первых, программист-то хотел сделать, как надо. Рарзаботать внутреннюю архитектуру системы, предусмотреть всякие средства контроля и регулировки, максимально облегчить развертывание и сопровождение, сделать полную систему тестов всех уровней. Теперь половину из этого похерили, типа по началу и так сойдет. Почему и называется технический долг.

Во-вторых, по-видимому втихаря сократили набор фич. Например, по-настоящему делать резервирование (переключение с упавшего сервера на рабочий) это очень серьезная задача, требует много усилий на разработку и отладку. А если поначалу обойтись без, то никто, может, и не заметит.

В-третьих, можно смухлевать с производительностью. Типа, у клиента будет миллион запросов в секунду, но не сейчас, а через год. А пока что сто тысяч. Ну так мы сто тысяч как-нибудь на коленке сделаем, а за год сделаем как надо. В реальности почему-то получается так, то как надо не делают, а приделывают новые заплатки на ту версию, что на коленке.

+1
ответить

korovino2004 23.12.18 17:07

История, знакомая до собственных слез. Но повторяется, увы, еще с тех пор, как первый человек придумал колесо, а может еще раньше, когда Уы-Ах-Р решил, что жареная мамонтятина гораздо вскуснее сырой.
Среди программистской братии ее очень красочно описал еще Ф.Брукс (автор OS/360 для IBM) в своей замечательной книжке "Мифический человеко-месяц..."

+1
ответить

ystervark23.12.18 15:24

А чего ополчились? Вполне правда написана.

Если за что автора и ругать, так это за элементы приукрашивания и лакировки.

+5
ответить

Clopodav23.12.18 15:21

Все правильно. А кто и зачем придумал SCRUM, сами поищите.

Но все таки надо сокращать ботву. Такой текст длинный...

+0
ответить

ystervark➦Clopodav23.12.18 17:45

Ну официальная-то история этого "движения" известна. А неофициальная, по-моему, такова. Все это - специфически буржуйская благотворительность, имеющая целью трудоустроить бездарность.

Есть люди, которые учились на программистов, но так и не выучились, т.е. диплом имеют, а код писать не могут. Такие есть на любых специальностях, но на других о них заботятся другими средствами. В России с ними проблем нет - если женщина, выйдет замуж, а если мужчина - пойдет планктоном в любую контору "купи-продай", где директор учит пользоваться унитазом. Ну или пойдет таксовать в Яндекс. В общем, вариантов много.

А вот у буржуев хуже. Там женщины, помимо выхода замуж, хотят трудоустроиться, и шли традиционно в интерьерные дизайнеры, агенты по недвижимости или после небольших курсов открывали салоны красоты. Мужчины же были вынуждены претендовать на роль девелопмент-менеджеров в программистских конторах, где совершенно не тянули, поскольку там приодилось принимать какие-то решения и за что-то отвечать. Тогда они шли в финансовые консультанты, агенты по продаже солнечных батарей, а годам к пятидесяти становились мелкими строительными подрядчиками. Но все эти вакансии, и мужские, и женские, заполнены, и устроиться становится все труднее.

И вот оно - решение. Скрам-мастер. Ничего уметь не надо, отвечать ни за что не надо, можно вести одновременно несколько команд. Мечта. Правда, и карьеры нет, ну так на то она и благотворительность. Хотя один шаг в карьере есть: можно открыть курсы и учить новых скрам-мастеров.

+-2
ответить

bellov ➦ystervark23.12.18 18:17

О,в точку! Как ни встретишь доебистого руководителя проектов или херового системного аналитика, при ближайшем сканировании всегда всплывает прошлое неудачного программера.

+-2
ответить

Соломон Маркович 23.12.18 14:32

Да.... не осилил Соломон.... А автор не Эдиссон))))

+1
ответить

Чатланин➦Соломон Маркович23.12.18 19:44

В истории я каждое слово в отдельности понял. А вот нить повествования не вяжется (((
Это о чем вообще было?!

+1
ответить

Соломон Маркович ➦Чатланин23.12.18 20:21

Я тоже не понеял)))

+1
ответить

Арсений 23.12.18 11:10

Братан, скоро в тебя полетят заряды вещества из телеги, упомянутого в части пятой (дальше ниасилил, извини), поэтому спешу тебе сказать: дело не в тебе. Ты-то писатель, ты так видишь. Виноват редактор, ведь в конце концов это его задача - чтобы текстовые версии вещества из телеги, упомянутого в части пятой, не достигали нежных читательских глазок. Это редактор опубликовал сие говно, подставив тебя под удары обиженных читателей.

Что касается текста, то тут ещё проще: это фиаско, братан. Не пиши больше о программистах, Agile, Scrum-е, а лучше - вообще не пиши. Попробуй поиграть в футбол. Попей пива. Попробуй освоить природную магию уральских шаманов. Хуже точно не будет.

+-4
ответить

Alexander_A ➦Арсений23.12.18 12:45

Напротив!
Следует как можно чаще высмеивать бесполезные, а иногда и - вредные, "изобретения" маркетологии, как то: эджайл, облако и т.д.

+1
ответить

Арсений ➦Alexander_A23.12.18 12:47

Во-первых, высмеивать может и стоит, но вот хохмы я тут не вижу, а вижу жутко длинный скучный высер. Хочешь узнать, как можно шутить о топчущих батоны смешно - почитай эхи фидошки прошлого века. Во-вторых, если у кого-то что-то не работает - это может означать, что "что-то" вредно и бесполезно, но может - и то, что у кого-то кривые руки.

+-3
ответить

Alexander_A ➦Арсений23.12.18 14:04

Ну да, в прошлом веке и трава была зеленее.
A Фидошкины эхи прошлого века мне читать не надо.
Я их писАл.
А история не про "топчущих батоны", а про идеологов всякой новомодной херни и ведущихся на неё руководителей.
Типа "А поддерживают ли наш факсы мультимедиа?"

А вот методология должна быть написана так, чтобы её процесс работал при чётком соблюдении требований и приводил к запланированному результату.
Если же требуются какие-то особенные руки, умение танцевать с бубном и прочее, то это профанация и попытка продать воздух.

+2
ответить

Арсений ➦Alexander_A23.12.18 14:36

Дык ты уж определись - ты за "прошлый век" или "новомодную херню" :)

+-2
ответить

Alexander_A ➦Арсений23.12.18 16:08

В отличие от тебя, я за всё хорошее против всего плохого - вне зависимости от срока изготовления.
И я категорически против таких, как ты, критивняшек, которые вместо прибыли приносят красивые презентации.

+1
ответить

vas_vic ★★➦Арсений23.12.18 19:22

СуперКРАТКО, Для того, чтобы сказать, что история [1] хорошая или плохая, там внизу на Анекдотах есть "+" и "-"

+0
ответить

Арсений ➦Alexander_A23.12.18 22:48

Кошмар, у меня аж сердце ёкнуло и в желудке что-то сжалось, когда я узнал, что ты против меня. А кто такие критивняшки?

+-2
ответить

Арсений ➦Alexander_A23.12.18 22:58

"которые вместо прибыли приносят красивые презентации" - кстати, там в соседней истории было про одного героя, который в первый месяц принес 110% прибыли. Через полгода развалилось всё, правда - но поначалу-то как шло, а!

+-2
ответить

Alexander_A 23.12.18 09:24

Ну... читается легко.
И цепочка Гуру-Г-Говно красивая.
Но боюсь, что текст будет очень скучен человеку "со сторону".

А разработчику передайте... Метастазы эджайла распространились уже и в такую консервативную отрасль, как банковское дело с его регуляцией и кучей разрешений.

+1
ответить

ystervark➦Alexander_A23.12.18 15:22

Так что значит "распространились"? В России Сбербанк один из основных продвигателей этого дела.

+-3
ответить

Общий рейтинг комментаторов
Рейтинг стоп-листов

Рейтинг@Mail.ru