вторник, 31 мая 2011 г.

Решение одной проблемы созданием большей проблемы

Это перевод Solving one problem by creating a bigger problem. Автор: Реймонд Чен.

Часто люди даже не осознают, что их решение проблемы просто заменяет одну проблему другой. Остроумная шутка, приписываемая Jamie Zawinski, демонстрирует это:
Некоторые люди, встречаясь с проблемой, думают: "Я знаю: я использую регулярные выражения". Теперь у них две проблемы.
Например, в комментариях к постам вроде "Как мне написать .bat файл, который..." некоторые люди написали: "Во-первых, установите <perl|bash|monad|...>". Это не решает проблему; это заменяет одну проблему другой.

В частности, если решение начинается с "Во-первых, установите...", то вы уже сошли с пути. Решение пятиминутной проблемы за полчаса скачивания и установки программы - это чистый убыток. В корпоративных окружениях добавление программы к развёртываемому окружению стоит очень дорого. Вам нужно проконсультироваться с юристами вашей компании, чтобы будь уверенным, что лицензионное соглашение новой программы допустимо и не создаёт рисков с юридической точки зрения. Каков будет ваш план действий, если новая программа перестанет работать и ваша компания начнёт терять десятки сотен долларов в день? Вам нужно проводить тестирование на взаимодействие, чтобы убедиться, что программа не конфликтует с другими развёртываемыми программами (этот риск применим и не в корпоративных окружениях: устанавливаемая программа может конфликтовать с какой-то уже установленной программой).

Во-вторых, многие из этих "решений" требуют, чтобы вы выбросили частичное решение, которое вы уже написали к этому моменту и начали всё с нуля, переписав его в новой модели. Если вы инвестировали годы работы в развитие и разработку этого .bat файла и вам нужно сделать всего несколько небольших моментов, чтобы добавить требуемую новую возможность, а кто-то говорит: "Ах, да. Тебе надо выбросить этот .bat файл и переписать его логику на этом языке", то вы навряд-ли примете это предложение.

Поэтому будьте осторожны, когда вы предлагаете решение, которое имеет высокую стоимость активации. Конечно, есть вещи, которые решаются одной строчкой на perl и страницей кода на языке .bat файлов, но развёртывание perl на машинах - это навряд-ли "одностроковое решение".

Комментариев нет:

Отправить комментарий

Можно использовать некоторые HTML-теги, например:

<b>Жирный</b>
<i>Курсив</i>
<a href="http://www.example.com/">Ссылка</a>

Вам необязательно регистрироваться для комментирования - для этого просто выберите из списка "Анонимный" (для анонимного комментария) или "Имя/URL" (для указания вашего имени и ссылки на сайт). Все прочие варианты потребуют от вас входа в вашу учётку (поддерживается OpenID).

Пожалуйста, по возможности используйте "Имя/URL" вместо "Анонимный". URL можно просто не указывать.

Ваше сообщение может быть помечено как спам спам-фильтром - не волнуйтесь, оно появится после проверки администратором.