Абсурдные законы мира программного обеспечения

Изображение кассетного плеера Commodore 64

Commodore 64 загружал программное обеспечение с кассетного плеера.

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

Моим первым компьютером был Commodore 64. Для системы было выделено почти 30 Кбайт ОЗУ, а 32 Кбайт для обработки текстов, игр, бухгалтерии семейного бизнеса и почти всего, что я делаю с компьютером 6 Гб, которым я владею. Это оставляет вопрос открытым Отвечает ли современное оборудование требованиям программного обеспечения или программное обеспечение использует больше аппаратных ресурсов, потому что они доступны?

Честно говоря, игры не те, графика не такого качества, и смотреть фильмы и слушать музыку было бы невозможно. Однако нельзя не думать, что есть программы, которые выпускают версии и потребляют все больше и больше ресурсов, не внося ничего нового.

Вот причины.

Закон Завинского

Разработчик Netscape Джейми Завински утверждал, что Каждая программа включает функции до тех пор, пока не сможет читать электронные письма. Если ему это не удается, его заменяет другой, способный на это.

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

Некоторые интерпретировали это как попытку слежения за пользователями. Но, вероятно, в человеческой природе есть что-то делать просто потому, что это возможно.

Принцип Петра применительно к программному обеспечению

Лоуренс Питер прославился тем, что заявил, что в иерархии человек достигает должности, для которой он крайне некомпетентен. Но он также успел кое-что сказать о сложных проектах:

«Сложный проект станет слишком сложным, чтобы его могли понять даже его собственные разработчики».

Принцип наименьшего удивления

Этот принцип, опубликованный в журнале IBM Systems Journal в 1984 г., гласит:

«Если необходимая функция вызывает большой сюрприз, возможно, ее необходимо переработать».

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

Жаль, что Shuttleworth не учел это при запуске Unity.

Закон кибернетической энтомологии

Первая ошибка в компьютерной истории была реальной. Мотылек влетел в одно из реле компьютера MARK II, вызвав неисправность.

Продолжая метафору, закон кибернетической энтомологии утверждает, что всегда будет еще одна ошибка.

Это то, что знают все пользователи компьютеров. Независимо от того, сколько проверяется операционная система, всегда есть недостаток, который обнаруживается уже слишком поздно.

Закон Кернигана

Linux Adictos tiene instalado un complemento para asegurar que los autores escribimos en forma amigable para los motores de búsqueda. Lo detesté desde el primer día. Cualquier intento de escribir con un poco de vuelo literario es inmediatamente denunciado con un círculo rojo.  Con el correr del tiempo me acostumbré y son pocas las veces que tengo que hacer retoques.

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

Фотография с трех размеров дискет.

Более десяти лет гибкие диски были основным средством распространения программного обеспечения.

Следовательно, закон Кернигана гласит:

Отладка в два раза сложнее, чем написание кода в первую очередь. Так что если вы напишете код настолько умно, насколько это возможно, вы по определению недостаточно умны, чтобы отлаживать его ».

Правило 90/90

Любой, кто начал коммерческий проект в реальной жизни, знает, что каждый проект займет вдвое больше времени и будет стоить вдвое больше, чем предусмотрено в бюджете, чтобы получить половину ожидаемой прибыли.

В компьютерном мире есть свои варианты этого закона. Например, некий Том Каргилл сказал:

«Первые 90 процентов кода представляют собой первые 90 процентов времени разработки. Оставшиеся 10 процентов кода представляют собой остальные 90 процентов времени разработки.

Разве это не было ясно? Возможно, поможет закон Хофштадтера:

«Это всегда занимает больше времени, чем вы ожидаете, даже с учетом закона Хофштадтера».

Думаю, разработчики Ubuntu и Fedora должны это знать. Или хотя бы вспоминать об этом каждые 6 месяцев.

Закон Брука

Проекты программного обеспечения с открытым исходным кодом часто имеют две проблемы; финансирование и отсутствие сотрудников. Разве что второе - не проблема. По словам Брука:

«Добавление рабочей силы в программный проект, который отстает от графика, еще больше задержит его».

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

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


5 комментариев, оставьте свой

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

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

  1. Ответственный за данные: AB Internet Networks 2008 SL
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.

  1.   Хесухадин Перес сказал

    Отличный текст. Понятное, философское и литературное. Один из лучших, что я читал с сервера Linux. Я поздравляю вас.

  2.   Диего Герман Гонсалес сказал

    Большое спасибо за ваш комментарий

  3.   Мануэль Отзой сказал

    Все очень реально, много лет назад я был программистом и пережил многие из этих ситуаций. Поздравляю. Из Чикаго я слежу за тобой.

    1.    Диего Герман Гонсалес сказал

      Большое спасибо

  4.   ФАММ сказал

    Принципы применимы практически к любой работе