-Кнопки рейтинга «Яндекс.блоги»

 -Поиск по дневнику

Поиск сообщений в ppmax

 -Подписка по e-mail

 

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 22.04.2003
Записей: 7190
Комментариев: 37808
Написано: 52019


This is how things work in Information Technology.

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


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

Разобраться в том, в каком порядке меняются статические
переменные, и как приобретают свои значения, способен только один
человек на фирме - индус. Но он пребывает в медитации. Поэтому, когда
всю четверку уволят во время сокращения... А кого еще увольнять? Русский
- еще не переписал свой кусок, а индус - главная ценность фирмы - он
редко обращает внимание на проект, но когда обращает, все понимают, что
так как он, архитектуру никто не знает.

Так вот, когда китайцев увольняют, у их кода возможны две основные
судьбы. Первая - он попадет к русским и его перепишут. Вторая - он
попадет к местному, канадскому программисту. О, канадский программист
это особый тип. Он ни на минуту не задумываясь, как рыцарь без страха и
упрека, бросится фиксить самый свирепый баг китайского кода. Этот Баг
живет там уже три года, и китайцы уже четырежды (каждый по разу)
сообщали начальству, что он пофиксен. Но Баг каждый раз возвращался, как
Бетмен в свой Готхем. Итак, канадский программист сделает то, чего
китайцы не рисковали делать в течении трех долгих лет. Он, при помощи
дебагера, отследит место, где статическая переменная приняла значение -1
вместо правильного 0, и решительным движением заведет рядом вторую
переменную с правильным значением. Баг погибнет в неравной схватке с
канадским программистом.

Но победа будет достигнута тяжелой ценой. Работать перестанет все,
включая только что переписанный русским программистом код. Это повергнет
русского программиста в задумчивость на целых два дня, после чего он
сделает, в общем-то, предсказуемый вывод о том, что дизайн с самого
начала был неправильным, и все надо переписать. На это нам нужна неделя.
Да, неделя, не больше. Канадский программист смело бросится налаживать
все, и станет еще хуже, хотя казалось бы... Эта суета выведет из
медитации индуса, который придумает и вовсе гениальное решение -
отбранчить код. Согласно его плану, мы теперь будем поддерживать две
версии одного и того же кода - одну работающую но с Багом, другую без
Бага, но не работающую. Русский программист услышав об этом плане,
сломает линейку об стол и дома обзовет жену дурой, но на митинге
возразить не решится.

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


 

Добавить комментарий:
Текст комментария: смайлики

Проверка орфографии: (найти ошибки)

Прикрепить картинку:

 Переводить URL в ссылку
 Подписаться на комментарии
 Подписать картинку