Когда я изучал разработку программного обеспечения, нас учили, что настоящее «программное обеспечение без ошибок» математически невозможно ни для чего, кроме самых тривиальных программ. С точки зрения математики, очень просто увидеть, как базовые вещи, такие как количество возможных входных данных и изменчивость платформ, делают отсутствие ошибок не только невозможным (в реальном времени), но и экономически глупым для всего, кроме ядерной энергетики.
Однако я постоянно слышу, как деловые люди говорят: «Понятно, что в программном обеспечении не будет ошибок, и если не все, то ошибки будут исправлены бесплатно». Обычно я отвечаю: «Нет, мы исправим все ошибки, обнаруженные в период UAT (x) недель», где x определяется договором. Это приводит к множеству споров и потере работы для людей, которые совершенно готовы пообещать невозможное.
Кто-нибудь знает (или может выразить это) хорошее объяснение того, почему «отсутствие ошибок» НЕ реалистично ИЛИ стандартно - что может понять ваш средний менеджер среднего звена?