Любой русский программист, после пары минут чтения кода, обязательно
вскочит и произнесет, обращаясь к себе: переписать это все нафиг. Потом
в нем шевельнется сомнение в том, сколько времени это займет, и остаток
дня русский программист потратит на то, что будет доказывать самому
себе, что это только кажется, что переписать это много работы. А если
взяться и посидеть немного, то все получится. Зато код будет красивый и
правильный. На следующее утро русский программист свеж, доволен собой и
без единой запинки докладывает начальству, что переписать этот кусок
займет один день, не больше. Да, не больше. Ну, в крайнем случае, два,
если учесть все риски. В итоге начальство даст ему неделю и через
полгода процесс будет успешно завершен. До той поры, пока этот код не
увидит другой русский программист.
А в это время, в соседних четырех кубиках, будет ни на секунду не
утихать работа китайских программистов, непостижимым образом
умудряющихся прийти раньше русского программиста, уйти позже, и при этом
сделать примерно втрое меньше. Эта четверка давно не пишет ничего
нового, а только поддерживает код, написанный в свое время индусом, и
дважды переписанный двумя разными русскими. В этом коде не просто живут
баги. Здесь их гнездо. Это гнездо постоянно воспроизводит себя при
помощи любимой китайской технологии реиспользования кода - copy/paste.
Отсюда баги расползаются в разные стороны посредством статических
переменных и переменных, переданных по ссылке (ведь, китайский
программист не может смириться с неудобствами вызванными тем, что он не
может изменить значение внешнего параметра). Вспоминая об этих
переменных и ссылках, русский программист, как правило, на время теряет
дар английской речи, и переходит к какой-то помеси русского и
китайского. Он давно мечтает переписать весь кусок, над которым работают
китайцы, но у него нет времени. Он уже переписывает два больших куска, и
доказал начальству необходимость переписать третий. Кроме того, русский
программист боится обидеть китайцев. Они могут решить, что он пытается
вытеснить их с работы. К слову сказать, напрасно боится, поскольку
китайцы уже так решили.
На китайцах висят серьезные баги, о которых знает начальство и постоянно
их торопит. Китайцы уважают начальство и потому перевешивают баги друг
на друга очень торопливо. Они знают, что все попытки починить приведут к
появлению новых багов, еще худших. И в этом они правы. Разобраться в
том, в каком порядке меняются статические переменные, и как приобретают
свои значения, способен только один человек на фирме - индус. Но он
пребывает в медитации.
Поэтому, когда всю четверку уволят во время сокращения... А кого еще
увольнять? Русский - еще не переписал свой кусок, а индус - главная
ценность фирмы - он редко обращает внимание на проект, но когда
обращает, все понимают, что так как он, архитектуру никто не знает. Так
вот, когда китайцев увольняют, у их кода возможны две основные судьбы.
Первая - он попадет к русским, и его перепишут. Вторая - он попадет к
местному, канадскому программисту.
О, канадский программист это особый тип. Он, ни на минуту не
задумываясь, как рыцарь без страха и упрека, бросится фиксить самый
свирепый баг китайского кода. Этот Баг живет там уже три года, и китайцы
уже четырежды (каждый по разу) сообщали начальству, что он пофиксен. Но
Баг каждый раз возвращался, как Бетмен в свой Готхем.
Итак, канадский программист, воспитанный на героической патетике
американского футбола - бросаться в бой головой вперед, сделает то, чего
китайцы не рисковали делать в течении трех долгих лет. Он, при помощи
дебагера, отследит место, где статическая переменная приняла значение -1
вместо правильного 0, и решительным движением заведет рядом вторую
переменную с правильным значением. Баг погибнет в неравной схватке с
героем. Но победа будет достигнута тяжелой ценой. Работать перестанет
все, включая только что переписанный русским программистом код. Это
повергнет русского программиста в задумчивость на целых два дня, после
чего он сделает, в общем-то, предсказуемый вывод о том, что дизайн с
самого начала был неправильным, и все надо переписать. На это нам нужна
неделя. Да, неделя, не больше.
Канадский программист смело бросится налаживать все, и станет еще хуже,
хотя казалось бы... Эта суета выведет из медитации индуса, который
придумает и вовсе гениальное решение - отбранчить код. Согласно его
плану, мы теперь будем поддерживать две версии одного и того же кода -
одну работающую, но с Багом, другую без Бага, но не работающую. Русский
программист, услышав об этом плане, сломает линейку об стол и обзовет
жену дурой, но на митинге возразить не решится.
К счастью, все это не сильно влияет на дела фирмы, поскольку продукт
продается и так. Поэтому менеджмент ходит в целом довольный и не устает
напоминать всем, что они отобраны как лучшие среди лучших. И что мы
давно доказали свою способность выпускать продукт тем, что выпускаем его
иногда.
(taken from from http://www.auto.ru/wwwboards/spb-club/0909/281276.shtml)