Тёмные времена программирования. Чем программист похож на средневекового эскулапа?

Мне кажется, сравнение программистов с врачами выглядит достаточно любопытным. Только в качестве пациента выступает не отдельный человек, а чей-то бизнес. Если учесть, что основной задачей прикладного программирования является автоматизация процессов (с которыми до автоматизации вполне успешно справляются люди), становится понятно, что, как и лечение болезни, внедрение новых разработок несёт вместе с собой «определённые неудобства». Однако, после «выздоровления» «пациент» чувствует себя гораздо лучше. Почему же я сравнил современных разработчиков со средневековыми врачами? Во многом потому что, в отличие от современной медицины, нет никакой гарантии, что разрабатываемые новые технологии и продукты принесут какую-то пользу. Рынок информационных технологий очень юн и рискован, как и средневековая медицина (хотя и современная тоже далеко не идеальна), ввиду отсутствия стандартов и общепринятых практик. Можно провести несколько интересных аналогий между миром информационных технологий и средневековой медициной. 1.

— Доктор, у меня болит нога — У меня точно такая же нога, но она не болит. Ничем не могу Вам помочь.

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

— Доктор, мне завтра надо срочно выписаться и попасть на очень важную встречу. — Но у Вас воспаление лёгких. Вам необходимо соблюдать постельный режим ещё неделю. В противном случае у Вас могут возникнуть осложнения с возможностью летального исхода. — Доктор, вы ведь профессионал, да? Сделайте, чтобы я был завтра на встрече!

Еще хуже, когда менеджеры, вспоминая своё программистское прошлое и всё услышанное о предмете оптимизации, предлагают и настаивают на своём варианте решения проблемы.

— Доктор, раз проблема в лёгких, то удалите мне их и дело с концом, чтобы завтра я был здоровым.

3. Ввиду довольно агрессивного маркетинга различных инструментов со стороны компаний очень часто теряется их суть, а именно: когда и для чего эти инструменты лучше всего использовать? Например, сейчас модные NoSQL решения, такие как MongoDB, применяются при любом удобном поводе. Иногда причина неверного использования технологий ещё банальнее: незнание других инструментов, применяемых в этой области.

— Доктор, меня насморк мучает, горло болит и температура мучает. Что мне делать? — Знаете, ко мне на прошлой неделе пациент приходил с болью в желудке. Так мы ему аппендикс вырезали, сейчас выписываем. Вот и Вам нужна такая операция.

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

— Доктор, а какую операцию вы мне будете делать? — Сейчас вскроем и узнаем!

Вообще, следование инструкциям не является сильной стороной программистов. Но вы, скорее всего, откажетесь от операции без наркоза, да еще и в грязном помещении. Тогда почему можно править скрипты на боевом сервере? 5. Каждый из нас так или иначе занимался самолечением с различными степенями успеха, однако это не даёт вам права лечить других больных. Равно как и свёрстанный на коленке десяток сайтов не сделает никого квалифицированным программистом.

— Ээээ… Какой ты замученный!!! Аж пожелтел весь!!! На, выпей настоечки – полегчает. — Идиот, гепатит это! Нельзя мне пить!

Я думаю, у каждого инженера программного обеспечения найдётся ещё не одна история, чтобы дополнить этот отнюдь не веселый список. Я понимаю, что подобные явления вполне объективны и многие профессии проходили похожие этапы становления. Но всё же хочется, чтобы накопленный человечеством опыт помог скорее закончится этим тёмным временам. Чтобы на смену технологичному хаосу пришли стандарты, а шарлатанам и самоучкам-эскулапам лицензированные инженеры.

Поделиться
This entry was posted in Programming, Society. Bookmark the permalink.

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>