This is how things work in Information Technology...
Любой русский программист после пары минут чтения кода, обязательно
вскочит и произнесет обращаясь к себе: переписать это все нафиг. Потом в
нем шевельнется сомнение в том, сколько времени это займет, и остаток дня
русский программист потратит на то, что будет доказывать самому себе, что
это только кажется, что переписать это много работы. А если взяться и
посидеть немного, то все получится. Зато код будет красивый и правильный.
На следующее утро русский программист свеж, доволен собой и без единой
запинки докладывает начальству, что переписать этот кусок займет один
день, не больше. Да, не больше. Ну, в крайнем случае, два, если учесть все
риски. В итоге начальство даст ему неделю и через полгода процесс будет
успешно завершен. До той поры, пока этот код не увидит другой русский
программист.
А в это время, в соседних четырех кубиках, будет ни на секунду не утихать
работа китайских программистов, непостижимым образом умудряющихся прийти
раньше русского программиста, уйти позже, и при этом сделать примерно
втрое меньше. Эта четверка, давно не пишет никакого кода, а только
поддерживает код написанный, в свое время индусом и дважды переписанный
двумя разными русскими. В этом коде не просто живут баги. Здесь их гнездо.
Это гнездо постоянно воспроизводит себя при помощи любимой китайской
технологии реиспользования кода ? copy/paste. Отсюда баги расползаются в
разные стороны посредством статических переменных и переменных переданных
по ссылке (поскольку, китайский программист не может смириться с
неудобствами вызванными тем, что он не может изменить значение внешней
переменной переданной в его функцию модулями, которые переписывает русский
программист).
Вспоминая об этой функции русский программист, как правило на время теряет
дар английской речи, и переходит к какой-то помеси русского и китайского.
Он давно мечтает переписать весь кусок, над которым работают китайцы, но у
него нет времени. На китайцах висят серьезные баги, о которых знает
начальство и постоянно их торопит. Китайцы торопливо перевешивают баги
друг на друга, поскольку знают, что попытки их починить приведут к
появлению новых, еще худших. И в этом они правы. Разобраться в том, в
каком порядке меняются статические переменные, и как приобретают свои
значения, способен только один человек на фирме ? индус. Но он пребывает в
медитации.
Поэтому, когда всю четверку уволят во время сокращения... А кого еще
увольнять? Русский ? еще не переписал свой кусок, а индус ? главная
ценность фирмы ? он редко обращает внимание на проект, но когда обращает,
все понимают, что так как он, архитектуру никто не знает. Так вот, когда
китайцев увольняют, у их кода возможны две основные судьбы. Первая ? он
попадет к русским и его перепишут. Вторая ? он попадет к местному,
канадскому программисту.
О, канадский программист это особый тип. Он ни на минуту не задумываясь,
как рыцарь без страха и упрека, бросится фиксить самый свирепый баг
китайского кода. Этот Баг живет там уже три года, и китайцы уже четырежды
(каждый по разу) сообщали начальству, что он пофиксен. Но Баг каждый раз
возвращался,как Бетмен в свой Готхем. Итак, канадский программист сделает
то, чего китайцы не рисковали делать в течении трех долгих лет. Он, при
помощи дебагера, отследит место, где статическая переменная приняла
значение -1 вместо правильного 0, и решительным движением заведет рядом
вторую переменную с правильным значением. Баг погибнет в неравной схватке
с канадским программистом.
Но победа будет достигнута тяжелой ценой. Работать перестанет все, включая
только что переписанный русским программистом код. Это повергнет русского
программиста в задумчивость на целых два дня, после чего он сделает, в
общем-то, предсказуемый вывод о том, что дизайн с самого начала был
неправильным, и все надо переписать. На это нам нужна неделя. Да, неделя,
не больше.
Канадский программист смело бросится налаживать все, и станет еще хуже,
хотя казалось бы... Эта суета выведет из медитации индуса, который
придумает и вовсе гениальное решение ? отбранчить код. Согласно его плану,
мы теперь будем поддерживать две версии одного и того же кода ? одну
работающую но с Багом, другую без Бага, но не работающую. Русский
программист услышав об этом плане, сломает линейку об стол и дома обзовет
жену дурой, но на митинге возразить не решится.
К счастью, все это не сильно влияет на дела фирмы, поскольку продукт
продается и так. Поэтому менеджмент ходит в целом довольный и не устает
напоминать всем, что они отобраны как лучшие среди лучших. И что мы давно
доказали свою способность выпускать продукт тем, что выпускаем его иногда.
Автор:Anatolix