bash.im ithappens.me zadolba.li
8800

Непорочный крылатый бульдозер

Взгляд программиста на разработку:

1. Тебе объясняют, чего хотят (назовём это первичным техзаданием, хотя ТЗ сам себе обычно пишешь, ибо заказчик не в состоянии составить вразумительное).

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

3. Заказчик смотрит, говорит: «Круто. А можно ещё добавить вот такую вот фичу?»

4. Говоришь: «Нет проблем». Пыхтишь над прогой, побеждаешь ещё одну кучку глюков, приносишь заказчику программу, которая делает немного больше, немного умнее или выглядит немного красивее, но более жуткая в коде.

* * *

Проходит несколько итераций пунктов 3 и 4, и заказчик говорит: «Всё, готово». И ты с содроганием осознаёшь, что на свет произвёл очередного монстра, который ездит, летает, пыхает огнем, копает ямы, вышивает крестиком и изобретает велосипед. Красота кода — по хрену. Эффективность стремится к нулю. Код сложный, запутанный, куча шаманских костылей. Невзирая на то, что сам создал этого монстра, ты его боишься. Боишься тронуть даже что-нибудь незначительное и второстепенное — вся программа грозит осыпаться.

А всё почему? Нимб, крылья, ракетные установки и нож бульдозера надо планировать ещё на стадии первичного техзадания.