Любой русский программист, после пары
минут чтения кода, обязательно вскочит и
произнесет, обращаясь к себе: переписать
это все нафиг. Потом в нем шевельнется
сомнение в том, сколько времени это займет,
и остаток дня русский программист потратит
на то, что будет доказывать самому себе, что
это только кажется, что переписать это
много работы. А если взяться и посидеть
немного, то все получится. Зато код будет
красивый и правильный. Hа следующее утро
русский программист свеж, доволен собой и
без единой запинки докладывает начальству,
что переписать этот кусок займет один день,
не больше. Да, не больше. Hу, в крайнем случае,
два, если учесть все риски. В итоге
начальство даст ему неделю и через полгода
процесс будет успешно завершен. До той поры,
пока этот код не увидит другой русский
программист.

А в это время, в соседних четырех кубиках,
будет ни на секунду не утихать работа
китайских программистов, непостижимым
образом умудряющихся прийти раньше
русского программиста, уйти позже, и при
этом сделать примерно втрое меньше. Эта
четверка давно не пишет ничего нового, а
только поддерживает код, написанный в свое
время индусом, и дважды переписанный двумя
разными русскими. В этом коде не просто
живут баги. Здесь их гнездо. Это гнездо
постоянно воспроизводит себя при помощи
любимой китайской технологии
реиспользования кода — copy/paste. Отсюда баги
расползаются в разные стороны посредством
статических переменных и переменных,
переданных по ссылке (ведь, китайский
программист не может смириться с
неудобствами вызванными тем, что он не
может изменить значение внешнего параметра).
Вспоминая об этих  переменных и ссылках,
русский программист, как правило, на время
теряет дар английской речи, и переходит к
какой-то помеси русского и китайского. Он
давно мечтает переписать весь кусок, над
которым работают китайцы, но у него нет
времени. Он уже переписывает два больших
куска, и доказал начальству необходимость
переписать третий. Кроме того, русский
программист боится обидеть китайцев. Они
могут решить, что он пытается вытеснить их с
работы. К слову сказать, напрасно боится,
поскольку китайцы уже так решили.

Hа китайцах висят серьезные баги, о
которых знает начальство и постоянно их
торопит. Китайцы уважают начальство и
потому перевешивают баги друг на друга
очень торопливо. Они знают, что все попытки
починить приведут к появлению новых багов,
еще худших. И в этом они правы. Разобраться в
том, в каком порядке меняются статические
переменные, и как приобретают свои значения,
способен только один человек на фирме —
индус. Hо он пребывает в медитации. Поэтому,
когда всю четверку уволят во время
сокращения… А кого еще увольнять? Русский —
еще не переписал свой кусок, а индус —
главная ценность фирмы — он редко обращает
внимание на проект, но когда обращает, все
понимают, что так как он, архитектуру никто
не знает. Так вот, когда китайцев увольняют,
у их кода возможны две основные судьбы.
Первая — он попадет к русским, и его
перепишут. Вторая — он попадет к местному,
канадскому программисту.

О, канадский программист это особый тип.
Он, ни на минуту не задумываясь, как рыцарь
без страха и упрека, бросится фиксить самый
свирепый баг китайского кода. Этот Баг
живет там уже три года, и китайцы уже
четырежды (каждый по разу) сообщали
начальству, что он пофиксен. Hо Баг каждый
раз возвращался, как Бетмен в свой Готхем.
Итак, канадский программист, воспитанный на
героической патетике американского
футбола — бросаться в бой головой вперед,
сделает то, чего китайцы не рисковали
делать в течении трех долгих лет. Он, при
помощи дебагера, отследит место, где
статическая переменная приняла значение -1
вместо правильного 0, и решительным
движением заведет рядом вторую переменную
с правильным значением. Баг погибнет в
неравной схватке с героем. Hо победа будет
достигнута тяжелой ценой. Работать
перестанет все, включая только что
переписанный русским программистом код.
Это повергнет русского программиста в
задумчивость на целых два дня, после чего он
сделает, в общем-то, предсказуемый вывод о
том, что дизайн с самого начала был
неправильным, и все надо переписать. Hа это
нам нужна неделя. Да, неделя, не больше.
Канадский программист смело бросится
налаживать все, и станет еще хуже, хотя
казалось бы… Эта суета выведет из
медитации индуса, который придумает и вовсе
гениальное решение — отбранчить код.
Согласно его плану, мы теперь будем
поддерживать две версии одного и того же
кода — одну работающую, но с Багом, другую
без Бага, но не работающую. Русский
программист, услышав об этом плане, сломает
линейку об стол и обзовет жену дурой, но на
митинге возразить не решится.

К счастью, все это не сильно влияет на дела
фирмы, поскольку продукт продается и так.
Поэтому менеджмент ходит в целом довольный
и не устает напоминать всем, что они
отобраны как лучшие среди лучших. И что мы
давно доказали свою способность выпускать
продукт тем, что выпускаем его иногда.

Оставить мнение

Check Also

Безопасность превыше всего. 9 простых трюков, которые сделают жизнь линуксоида секьюрнее

Жизнь обычных людей складывается из мелочей. Жизнь линуксоида складывается из множества ма…