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