Законы Мерфи применительно к компьютерам и электронике.
Принцип IBM
- Машина должна работать, человек - думать.
- Если это не работает - назовем это бета-версией.
Законы ненадежности
- Компьютеры ненадежны, но люди еще ненадежнее.
- Любая система, зависящая от человеческой надежности, ненадежна.
- В поиски повышения надежности будут вкладываться средства до тех пор, пока они не превысят величину убытков от неизбежных ошибок
или пока кто-нибудь не потребует, чтобы была сделана хоть какая-то полезная работа.
- Все постоянные на самом деле являются переменными.
- Если назначается специальный человек для контроля за чистотой исходной информации, то найдется изобретательный идиот, который
придумает способ, чтобы неправильная информация прошла через этот контроль.
- Если программа закончена в срок, значит просто еще не все ошибки выявлены.
Искусство обнаружения и исправления ошибок
- Число ошибок, которые нельзя обнаружить, бесконечно в противовес числу ошибок, которые можно обнаружить,- оно конечно по определению.
- Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось,
царят красота и совершенство.
- Если отладка - процесс удаления ошибок, то программирование должно быть процессом их внесения.
- Патч - это программа, заменяющая старые ошибки на новые.
- Ошибаться человеку свойственно, но окончательно все запутать может только компьютер.
- Компьютеры бесподобны: за несколько минут они могут совершить такую грандиозную ошибку, какую не в состоянии сделать множество
людей за многие месяцы.
- Никогда не выявляйте в программе ошибки, если не знаете, что с ними дальше делать.
- Как только вы соберетесь похвастаться перед кем-нибудь вашей программой, в ней тут же возникнут ошибки. Когда вы позовете другого
программиста, чтобы он взглянул в чем дело, ошибки исчезнут.
- Компьютер - устройство разработанное для ускорения и автоматизации человеческих ошибок.
- Многозадачная работа допускает совершение нескольких ошибок одновременно.
- Исправление ошибок в два раза сложнее, чем написание программы. Следовательно, если вы приложили максимум стараний к
написанию программы, ваших способностей не хватит, чтобы исправить в ней ошибки.
- Ошибка? Это не ошибка, это системная функция.
- Сложность программы растет до тех пор, пока не превысит способности программиста.
- Неточно спланированная программа требует в три раза больше времени, чем предполагалось. Тщательно спланированная - только в два раза.
- Любая программа, которая успешно прошла тестирование, устаревает.
- Все компоненты устаревают.
- Скорость, с которой они устаревают прямо пропорциональна их стоимости.
- Не имеет значения, насколько крутой компьютер вы приобретете. Через год он будет стоить в два раза меньше.
- Независимое программное обеспечение не будет работать с ЛЮБЫМ программным обеспечением.
- Работающая над программой группа питает отвращение к еженедельной отчетности о достигнутых результатах,
поскольку она (отчетность) слишком явно свидетельствует об отсутствии таковых
- Увеличение числа участников при подготовке опаздывающей программы только замедляет процесс.
- К моменту, когда вы в совершенстве овладели какой-либо программой, выходит новая версия.
Следствие: - Та функция, которая вам нужна больше всего, в новой версии либо изменена либо отсутствует.
- Генерация случайных чисел - слишком важный вопрос, чтобы оставлять его на волю случая.
- Не позволяйте компьютеру догадаться, что вы спешите.
- Создайте систему, которой сможет воспользоваться даже дурак, и только дурак захочет ею пользоваться.
- Если программа полезна, это необходимо изменить.
- Если программа бесполезна, это необходимо задокументировать.
- Ценность программы обратно пропорциональна объему выводимых ей данных.
- Если программа работает, это значит, что в ней остались только необнаруженные ошибки.
- Когда неполадки с "железом" вызывают программный сбой, техник будет во всем обвинять программиста.
Следствие: - Когда из-за ошибок в программе выходит из строя электроника, программист свалит всю вину на техника.
- Вероятность аппаратного сбоя компьютера напрямую зависит от того, как далеко от него находится специалист-электронщик.
Закон непрерывного совершенствования
- Мощности вашего компьютера всегда недостаточно для решения ваших задач.
Следствия:
- Новейшие программные разработки требуют больше ресурсов, чем в состоянии предоставить новейшие электронные технологии.
- Как только вы приобретете компьютер, на котором новая программа будет "летать", появится более новая программа,
которой этих ресурсов будет мало.
- Чем быстрее ваш компьютер, тем быстрее он сломается.
- Приобретя крутую программу, вы обнаружите, что для ее работы недостаточно оперативной памяти.
Следствия:
- Как только вы поставите больше памяти, обнаружится, что теперь не хватает места на жестком диске.
- Если и памяти и места на диске достаточно, гарантировано - программа скоро сбойнет.
- Если она все еще работает, значит нужный момент пока не настал.
- Никто не в состоянии выявить недостатки программы, кроме пользователя.
- Число ошибок в программах, созданных генератором программ, всегда будет больше, чем в самом генераторе.
- Чем сложнее код программы, тем меньше вероятность того, что она будет делать то, что задумано.
- Поломка жесткого диска происходит только тогда, когда данные не были отрезервированы.
Трактовка Постоянной Мерфи применительно к компьютерной технике
- Тяжесть сбоя прямо пропорциональна важности потерянных данных.
Примеры:
- Чем больше вероятность того, что сбой программы уничтожит ценную информацию на диске, тем меньше вероятность, что у вас имеется
резервная копия этих данных.
- Чем опаснее вирус и чем больше он производит разрушений, тем больше вероятность его подцепить.
- Чем больше объем программы, загружаемой из интернета, тем больше вероятность, что она вам не понравится или не запустится.
- Лучший способ увидеть своего босса - зайти в интернет (другими словами: - Стоит вам зайти в интернет, как тут же появляется босс.)
- Единственная программа, в любой ситуации работающая без ошибок, это вирус!
- Чем чаще вы меняете пароль, тем скорее вы его забудете.
- Каждая серьезная программа содержит как минимум одну ошибку.
- Любую серьезную программу можно слегка упростить хотя бы одной строкой кода.
Вывод из обоих законов: - Любую серьезную программу можно упростить до одной строки кода, которая будет содержать ошибку.
- Компьютер - это средство эффективно тратить время.
- Компьютер не ошибается. Все, что он делает - запрограммировано.
|
|
|