дата публикации 10-10-2003 12:03 Как работают в IT
Автор неизвестен происхождение — FIDONET
Любой русский программист после пары минут чтения кода, обязательно вскочит
и произнесет, обращаясь к себе: "переписать это все нафиг".
Потом в нем шевельнется сомнение в том, сколько времени это займет, и
остаток дня русский программист потратит на то, что будет доказывать самому
себе, что это только кажется, что переписать — это много работы. А если
взяться и посидеть немного, то все получится. Зато код будет красивый и
правильный. Hа следующее утро русский программист свеж, доволен собой и без
единой запинки докладывает начальству, что переписать этот кусок займет один
день, не больше. Да, не больше. Hу, в крайнем случае, два, если учесть все
риски. В итоге начальство даст ему неделю и через полгода процесс будет
успешно завершен. До той поры, пока этот код не увидит другой русский
программист.
А в это время, в соседних четырех кубиках, будет ни на секунду не утихать
работа китайских программистов, непостижимым образом умудряющихся прийти
раньше русского программиста, уйти позже, и при этом сделать примерно втрое
меньше. Эта четверка, давно не пишет никакого кода, а только поддерживает
код, написанный в свое время индусом, и дважды переписанный двумя разными
русскими. В этом коде не просто живут баги. Здесь их гнездо. Это гнездо
постоянно воспроизводит себя при помощи любимой китайской технологии
реиспользования кода - copy/paste. Отсюда баги расползаются в разные стороны
посредством статических переменных и переменных, переданных по ссылке
(поскольку, китайский программист не может смириться с неудобствами,
вызванными тем, что он не может изменить значение внешней переменной
переданной в его функцию модулями, которые переписывает русский
программист). Вспоминая об этой функции, русский программист, как правило, на
время теряет дар английской речи и переходит к какой-то помеси русского и
китайского. Он давно мечтает переписать весь кусок, над которым работают
китайцы, но у него нет времени.
Hа китайцах висят серьезные баги, о которых знает начальство и постоянно их
торопит. Китайцы торопливо перевешивают баги друг на друга, поскольку знают,
что попытки их починить приведут к появлению новых, еще худших. И в этом они
правы. Разобраться в том, в каком порядке меняются статические переменные, и
как приобретают свои значения, способен только один человек на фирме -
индус. Hо он пребывает в медитации.
Поэтому, когда всю четверку уволят во время сокращения... А кого еще
увольнять? Русский - еще не переписал свой кусок, а индус - главная ценность
фирмы - он редко обращает внимание на проект, но когда обращает, все
понимают, что так как он, архитектуру никто не знает. Так вот, когда
китайцев увольняют, у их кода возможны две основные судьбы. Первая - он
попадет к русским и его перепишут. Вторая - он попадет к местному,
канадскому программисту.
О, канадский программист это особый тип. Он, ни на минуту не задумываясь, как
рыцарь без страха и упрека, бросится фиксить самый свирепый баг китайского
кода. Этот Баг живет там уже три года, и китайцы уже четырежды (каждый по
разу) сообщали начальству, что он пофиксен. Hо Баг каждый раз возвращался,
как Бетмен в свой Готхем.
Итак, канадский программист сделает то, чего китайцы не рисковали делать в
течение трех долгих лет. Он, при помощи дебагера, отследит место, где
статическая переменная приняла значение -1 вместо правильного 0, и
решительным движением заведет рядом вторую переменную с правильным
значением. Баг погибнет в неравной схватке с канадским программистом. Hо
победа будет достигнута тяжелой ценой. Работать перестанет все, включая
только что переписанный русским программистом код. Это повергнет русского
программиста в задумчивость на целых два дня, после чего он сделает, в
общем-то, предсказуемый вывод о том, что дизайн с самого начала был
неправильным, и все надо переписать. Hа это нам нужна неделя. Да, неделя, не
больше.
Канадский программист смело бросится налаживать все, и станет еще хуже, хотя
казалось бы... Эта суета выведет из медитации индуса, который придумает и
вовсе гениальное решение — отбранчить код. Согласно его плану, мы теперь
будем поддерживать две версии одного и того же кода — одну работающую, но с
Багом, другую без Бага, но не работающую. Русский программист, услышав об
этом плане, сломает линейку об стол и дома обзовет жену дурой, но на митинге
возразить не решится.
К счастью, все это не сильно влияет на дела фирмы, поскольку продукт
продается и так. Поэтому менеджеры ходят в целом довольные, и не устают
напоминать всем, что они отобраны как лучшие среди лучших. И что мы давно
доказали свою способность выпускать продукт тем, что выпускаем его иногда.
[Лирика]
Обсуждение материала [ 19-03-2008 07:01 ] 4 сообщения |