2004 г.
Семёнов Ю.А. (ГНЦ ИТЭФ),
Интернет - это система сотрудничающих программ, а программы, как известно, пишутcя программистами. Некоторые мои студенты, правда, пытаются оспаривать этот факт и считают, что стоит как следует поискать в сети, и найдешь, то что нужно. Я сам являюсь программистом и мне близки эти проблемы. Предлагаю вашему вниманию мой перевод избранных законов Мерфи для программистов. Полный "свод законов" можно найти на сайте Законы Мерфи
- Любая работающая программа уже устарела.
Любая программа обходится дороже и требует больше времени, чем казалось в начале.
Если программа полезна, ее обязательно переделывают.
Если программа бесполезна, ее тщательно документируют.
Любая программа в конце концов занимает всю доступную память.
Ценность программы обычно определяется весом выдаваемой ею распечатки.
Cложность программы обычно растет до тех пор, пока не превысит способности программиста, призванного ее поддерживать.
Если утилиты, испытанные при инсталяции, работают идеально, все остальные функции будут работать не верно.
Если входной редактор спроектирован так, чтобы исключить неверный ввод, найдется изобретательный идиот, который изыщет метод ввести разрушительную команду.
Невежество - единственный язык, которым владеют все программисты.
Увеличение численности программистов, работающих над проектом, увеличивает сроки его выполнения.
Небрежно спланированный проект требует в 3 раза больше времени, чем ожидалось, а тщательно спланированный - только в 2.
В программе всегда есть еще одна ошибка.
Невозможно создать программу с полной защитой от дураков, ибо дураки крайне изобретательны.
Если все идет хорошо, вас вскоре ждут серьезные осложнения.
Если дела идут хуже некуда, вскоре выяснится, что это не так.
Если кажется, что все в порядке, вы просто что-то просмотрели.
Тестовые операции и результаты их выполнения должны быть воспроизводимы - они все должны давать одинаковые отказы.
Вы всегда найдете еще одну ошибку, если еще раз загляните в свою программу.
Терминал работает лучше, если его включить в сеть.
Если все не работает, читайте документацию.
Если вам не понятно какое-то слово в технической документации, игнорируйте его, смысл от этого не пострадает.
Не важно, много ли вы работаете, вы все равно работаете недостаточно.
То, чего вы не делаете, всегда важнее того, что вы делаете.
Всегда оставляйте место для объяснения того, почему ваша программа работает не так как планировалось.
Не существует ничего невозможного для человека, который не собирается ничего делать сам.
Если бы строители сооружали здания также, как программисты пишут свои программы, первый же дятел разрушил бы человеческую цивилизацию.
Программисты действуют рационально, лишь тогда, когда другие способы исчерпаны.