#7301: Стоит винда? Не вытащишь ты рыбку из пруда
13:00 20.09.2011, IT happens
На одном предприятии на стыке веков заказали делали очень крутую и умную АСУ. Естественно, это стоило немерено баксов. В рамках поддержки отечественного производителя заказали у наших.
Через год началось внедрение и параллельная доработка. И дорабатывать было что: ставилась система с бубном, BSoD был нормой жизни. О том, что ПО требовало административной учётки[1], можно даже не говорить. За год поголовье багов не уменьшилось. Заказчики стали очень сильно волноваться и грозить погромистам анальными карами.
Вдруг число багов резко пошло на убыль. Так планомерно и равномерно, что не прошло и полугода, как всё предприятие уже работало в АСУ. Секрет оказался очень прост: исполнители наняли нового руководителя проекта. Последний всё сменил кардинально: выкинул большую часть уже написанных велосипедов и заменил их на свободные аналоги, а остатки заставил переписать почти с нуля по жёстким гайдлайнам. Его уже хотели было уволить из-за того, что он выгнал из команды нескольких очень уважаемых специалистов по WinAPI и заменил их спецами по Лиспу, но число багов говорило само за себя. Цель таких изменений открылась позже: проект тупо переписали под FreeBSD.
На сдаче проекта заказчики поинтересовались, чем был обусловлен выбор ОС. Оказалось, руководитель никогда не работал в винде и просто ужаснулся тому коду, что понаписали виндопрограммисты.
АСУ благополучно работает до сих пор. А мораль сей басни такова: если у вас глючное основание, то и от надстроек не следует ожидать высокого качества.
#7302: Честные картонные спрайты
13:00 20.09.2011, IT happens
Ни для кого не секрет, что качество кода программиста напрямую зависит от его добросовестности, умения, а главное — от желания максимально глубоко вникнуть в предметную область.
Однажды мне попался на глаза код не слишком сложной игрушки, который поразил меня своей структурированностью и простотой: все данные и алгоритмы были прописаны так лаконично и просто, что, казалось, просто невозможно что-то добавить или убавить. Важно отметить, что графика в программе была полностью программной: все объекты игрового мира отрисовывали себя сами по довольно интересным законам, не загружая какой-либо информации извне.
Через некоторое время судьба даровала мне личное знакомство с человеком, написавшим этот код. Разумеется, речь зашла об игре.
— Ах, это… — сказал мой знакомый, расплываясь в улыбке. — Действительно, красиво получилось, мне самому понравилось.
Задумавшись на минуту, он продолжил:
— Знаешь, самым сложным во всём проекте для меня было написание графического движка: сам я с детства не умею рисовать, и понять, как это делается, для меня было непросто.
— Но ведь в игре не такая уж и сложная графика, — заметил я.
— Несложная, — согласился он. — Однако для того, чтобы понять, как к ней правильно подойти, я три месяца ходил в художественную школу и консультировался у художников. К сожалению, записаться на занятия в моём возрасте и с моими способностями не получилось, так что приходилось приставать с вопросами, конспектировать, представлять, пробовать. Я бы и дальше ходил туда, но меня в конце концов перестали пускать: из-за меня они не могли заниматься своими собственными делами. Боюсь, из-за этого добиться полного совпадения с оригиналом у меня всё же не получилось: меня не покидает ощущение, что некоторые вещи художники, стиль которых мне пришлось копировать, нарисовали бы иначе.
Ранее я был уверен, что не имеют меры лишь отрицательные человеческие качества — например, разгильдяйство. Однако в тот день я понял, что не только они, но и добросовестность может порой не знать границ. Почему? Потому что речь шла об игре по известному всем мультсериалу «South Park», в точности копирующей оригинальную графику.
#7303: Пол-литровая мышь и пятнадцатидюймовый кот
15:00 20.09.2011, IT happens
Работал в бригаде техподдержки на одном большом заводе. Меняли мониторы — старые трубки на LCD. Заходим с напарником в один из отделов с кучей «клуш».