22 февр. 2007 г.

Невеселая сказка про аутсорсинг...

Работодатель думает, что программисты на периферии дешевые,
а столичные зажрались и дерут втридорога. Вооружившись модной нынче идеей
аутсорсинга, отдают свои ключевые проекты на сторону.
В одной из крупных компаний, с которой мне довелось сотрудничать, именно так и произошло.
Вместо того, чтобы мотивировать собственных сотрудников дополнительным заработком,
было принято решение отдать часть проекта в этот самый аутсорсинг. Быстро нашлись желающие.
Некоторые, узнав цену сразу отказывались, но на каждый товар есть свой покупатель.
Нашлись желающие заработать и такие деньги.
В результате программа на пару форм и десяток таблиц получилась эдаким корявым «квадзимордиком»,
сопровождение которого легло на, и без того загруженные, плечи штатных разработчиков.
То, что творили сие чудо люди далекие от программирования, было видно невооруженным глазом.
Дело, значит, было на Delphi и базе бесплатной, но добротной.

База данных не дотягивала не то, что до третей нормальной формы, а даже до второй.
Загрузка данных из боевой БД занимала чуть ли не час. Оптимизации хранения изображений вообще
никакой не проводилось, то есть, как было все в метровых битмапах, так все и вливалось в несчастную
базу, которая от этого быстро утрачивала стройность и росла как на дрожжах,
становясь неповоротливой и ленивой. А заказчики то ругались, пинали ногами безответную базу и
заставляли добрых молодцев программистов подставлять все новые и новые костыли.

А еще добры молодцы-разработчики недоглядели и написали кросс-платформенный клиент для этой
базы, задействовав для этого модули с приставками Q после чего к этому клиенту навеки прилепился
некрасивый паровоз в виде 4-метрового qtintf70.dll. Этот .dll он стал вынужден таскать за собой, потому
как ему резко «плохело» если того рядом не оказывалось.

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

Грамота у родителей клиента вообще хромала. Нет, она была хорошей, но хромала. Потому и писали
как могли, путая большие буквы с малыми, иногда строки уходили в бесконечность, за пределы экрана, иногда процедура своими корнями пробивала рабочий стол программера, а то и в подвал забредала.
В общем, слово «рефакторинг» было либо совсем им не ведомо или считалось страшным ругательством.

Кинулись пользователи импорт данных творить. Десять минут ждут, двадцать ждут. Устали. Ушли курить нервно да чаи гонять. Уж и чашки помыли, клиент все висит, да сервер «колбасит» неистово. Тут гром грянул, сверкнула молния тряхнуло компьютер от самого монитора до системника. Это добрый молодец электрик проводку чинил. Перегрузился бедный комп. Глянули бедные пользователи в базу, а там мусору – видимо-невидимо. Это часть данных перекочевала в базу да там и осталась.
А не делали бы господа разработчики «комит» после каждой записи, не трудили бы сервер – глядишь, оно бы и дело скорее делалось, и сказка скорее сказывалась. Да и мусор бы на базе при всяких форсмажорах не оседал.

Погоревали добры молодцы, штатные программеры. Ну да горю слезами не поможешь. Вооружились острыми ножничками, повязочки одели, чтобы духу дикого мяса не чуять и начали кромсать бедного клиента.
Где кровь дурную пустили, взрезав опухоль толстых битмапок перекроив на джипеги.
Где деструкторов дописали, чтобы клиенту аппетит поумерить. Пообрезали модульки с приставкой Q и
ампутировали злосчастный qtintf70.dll .

Клиент конечно красавцем не стал, но заметно похудел и окреп. Уже не спотыкался на ровном месте.
Да и база постройнела, сбросила вес и перестала страдать отдышкой. Кишечки конечно у нее перепутанными остались, ну да тут уже ничего не поделаешь, они ведь с клиентом, как сиамские близнецы, тронешь одного – и второму больно делается.

А заказчики то работы доброй не заметили, да и не видать ее за красивым личиком клиента.
Может, еще и отругают умельцев-штатников за потраченное рабочее время, за жалость над дитем ущербным.

Вот такая невеселая история буржуйского семени «аутсорсинг» взращенного и мутировавшего
на родной земле в сорняк не полотый...

А моралей этой сказке несколько. «Дешева рыбка, та погана юшка». От дешевизны страдает качество.
Умельцы с периферии дешево не возьмут, а неумехи хорошо не сделают. А те, что в столицу перебрались
оттого и недешевы, что дело свое знают.

Copyright Roman V. Babenko aka romb, 2007