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