Under the Simple World Assumption, programmers work normal hours and have reasonable schedules. They have the time and are given incentive to conduct code reviews and write tests. Therefore, whatever failing assertions are planted in the code will be fired by the unit and integration tests. Programmers test the code, debug it, make sure no assertion fails in comprehensive testing scenarios, and finally compile with NDEBUG defined and deliver a small and fast executable to their managers, who, in turn, take care of delivering it to a happy customer base. By the way, under the Simple World Assumption, managers are considered competent people who help the programmers do their job and add no undue stress or overhead. (As it turns out, the Simple World Assumption does not hold in practice.
-Credits : Andrei Alexandrescu