September 13th, 2008

Изобрести велосипед

Не мог удержаться и не перевести эту статью :)

Оригинал статьи - http://thedailywtf.com/Articles/Classic-WTF-The-Complicators-Gloves.aspx

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

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

В корпоративной сети одной ИТ компании был форум, в котором разработчики могли делиться идеями или искать ответы на свои вопросы. Однажды один из разработчиков запостил следующее:

Офф-топик: улучшение велосипеда.

- Пока я ехал на работу на своем велосипеде, я подумал, почему до сих пор никто не придумал систему, подогревающую руль? Сегодняшним утром эта система была бы очень кстати. Кто-нибудь когда-нибудь о чем-нибудь таком слышал?

Первый ответ пришел от другого разработчика в том же отделе (по какой-то непостижимой случайности, именно этот разработчик был ответственным за участок кода, приносящий всем остальным больше всего головной боли):

- Гугл о таком ничего не знает, но мне кажется, это просто фантастическая идея! Давайте сделаем такую штуку! Я уже мысленно набросал дизайн - поставить динамо, провести провода через раму в руль, а в накладках для рук разместить нагреватели.

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

- О, супер идея! А давайте найдем применение теплу тела, выделяемому и бесполезно рассеиваемому в атмосферу! Тогда систему можно будет использовать и для пеших прогулок!

- Да, класс! Нужно взять легкую ветровку и провести гибкие трубочки от запястий к талии (там всегда тепло), к трубочкам присоединить входной и выходной клапаны, а к ним - сеть более мелких трубочек для обогрева рук. Благодаря клапанам вода будет циркуллировать по системе лишь благодаря движениям во время ходьбы или езды на велосипеде. При желании, можно добавить нагреватель, работающий от батареи и возможностью подсоединения внешнего генератора при езде на велосипеде для дополнительного нагрева воды.

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

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