Помощь - Поиск - Пользователи - Календарь
Полная версия: This is how things work in Information Technology
Diver's forum > Дайвинг > Флейм
Lt_Flash
Автор неизвестен
происхождение — FIDONET

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

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

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

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

О, канадский программист это особый тип. Он, ни на минуту не задумываясь, как рыцарь без страха и упрека, бросится фиксить самый свирепый баг китайского кода. Этот Баг живет там уже три года, и китайцы уже четырежды (каждый по разу) сообщали начальству, что он пофиксен. Hо Баг каждый раз возвращался, как Бетмен в свой Готхем.

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

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

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

http://www.delphikingdom.com/asp/viewitem.asp?catalogid=860
Лягух
QUOTE(Lt_Flash @ 13.01.2006 - 13:54) *
Автор неизвестен
происхождение — FIDONET


Этот текст умалчивает о том, что было дальше. А дальше, судя по моим 18 годам работы в ИТ будет вот что:

Придет sales rep со словами о том, что продукт давно продан в отбрэнченной версии без Бага, но неработающей. Ну не то, чтобы продан, но договор уже подписан и деньги перечислены. При этом, sales будет рассказывать об этой продаже, как о крупнейшей сделке века в ИТ и будет в принципе не в состоянии воспринять мысль о задержке в связи с исправлением ошибок. Ибо тендер выигран исключительно за счет скорости поставки. Ну и комиссионные sales уже получил и левак наличными представителю заказчика передал.

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

ИТ-персонал заказчика, в свою очередь, попытается систему использовать по прямому назначению, как оно было изложено в ТЗ. Результат будет далек от требуемого. ИТ-персонал заказчика сообщит об этом немцу - менеджеру проекта со стороны заказчика. Тот потребует от исполнителя исправления ошибок. Состоятся несколько раундов жестких переговоров, в ходе которых исполнитель будет убеждать заказчика, что в ТЗ не было требования о работоспособности программы и, тем более, об отсутствии Бага. Поскольку обе стороны проходили тренинги по жестким и манипулятивным преговорным технологиям, переговоры закончатся боевой ничьей: исполнитель устранит ошибки за полгода и дополнительную оплату со стороны заказчика. Кроме того, исполнитель возьмется сопровождать написанный код за смехотворную сумму - 30% от стоимости контракта в год + оплата перелетов, пропитания, проживания и телефонных переговоров консультантов.

Поскольку немцу - менеджеру проекта абсолютно не захочется рисковать своим годовым бонусом и срывать сроки проекта (а также отдавать уже потраченный левак), он постарается убедить маркетолога-француза использовать купленный неработающий продукт AS IS для предоставления Услуги клиентам заказчика по временной схеме, поскольку это позволит улучшить time to market и повысить average revenue per customer. ИТ-директор заказчика также не захочет рисковать своей долей левака и годовым бонусом и на очередном митинге устроит презентацию на тему: "outsourcing, как средство сокращения total cost of ownership".

Через полгода будет построена технологическая цепочка по психологической помощи клиентам заказчика, которые так и не смогли воспользоваться Услугой. Цепочка будет состоять из call center со штатом в 200 человек и тремя линиями поддержки, в которых праведный гнев клиентов будет теряться, как вода в песке. Маркетолог-француз сделает презентацию на тему "customer-oriented approach, как средство повышения лояльности клиентской базы".

Представители исполнителя (четыре китайских и один русский программист) практически переедут жить к заказчику, пытаясь устранить Баг в описанном ранее стиле. Поскольку им будут идти командировчные и обеспечено проживание в 4-звездочном отеле, они будут просто счастливы. Придется время от времени их менять, ибо другим китайским и русским программистам тоже захочется простого человеческого счастья. Впрочем, контракт на сопровождение будет приносить исполнителю неплохую прибыль и в очередном годовом отчете будет упомянут отдельной строкой в графе "экспансия на новые рынки".

Финские студенты, попытавшиеся получить у заказчика Услугу и убедившись, что ее получить невозможно, повторят разработку, базируясь на бесплатном программном обеспечении с открытым кодом. Ибо зимой в Финляндии больше делать все равно нечего. И будут раздавать свою разработку на условиях GNU Public License через Интернет.

Некоторые молодые немецкие и английские клиенты заказчика перейдут на бесплатную разработку и организуют демонстрации в поддержку бесплатности программ и услуг. С распиванием пива и публичным сжиганием чучела Билла Гейтса.

- Как ты думаешь, почему эта бунтующая молодежь не хочет воспользоваться нашей Услугой и что-то кричит о высоком качестве бесплатных разработок? - спросит ИТ-директор заказчика у ИТ-директора исполнителя во время еженедельной игры в гольф. - Ведь наше партнерство действительно привело к прорыву в ИТ и наши клиенты, в основном, счастливы тем, как мы предоставляем нашу Услугу на основе вашей разработки!
- Молодежи всегда свойственны бунтарский дух и некоторая маргинальность, - ответит ИТ-директор исполнителя. - надо будет подумать, как это использовать для расширения Услуги на молодежный сегмент рынка.

Интервью с двумя ИТ-директорами под названием "Патнерство исполнителя и заказчика и использование ИТ-технологий завтрашнего дня позволили добиться невиданных успехов" обойдет все крупный компьютерные издания и станет источником вдохновения ИТ-менеджеров по всему миру.

(с) мой
Lt_Flash
Супер продолжение! Так и есть, согласен smile.gif
Лягух
QUOTE(Lt_Flash @ 13.01.2006 - 14:52) *
Супер продолжение! Так и есть, согласен smile.gif


Спасибо за комплимент! Как бы, опыт, сын ошибок трудных... wink.gif
Это упрощенная версия форума. Для просмотра полной версии нажмите нажмите сюда.