Все это выглядит так, как будто практика инженерного дела и дизайна намеренно заставляет людей совершать промахи. Длинные ряды одинаковых регуляторов — верный рецепт ошибки по сходству описания. Наличие у устройства внутренних режимов, которые не подписаны, непременно приведет к ошибкам режима. Бывает так, что во время работы человека часто прерывают, а дизайн при этом предполагает, что он должен сосредоточить все внимание на управлении устройством. В таких ситуациях неизбежны сбои памяти — и, несмотря на огромное количество ситуаций, когда нас отвлекают, на сегодняшний день нет никаких устройств, которые бы помогали человеку быстрее возвращаться к работе после того, как его прервали. У нас также нет никаких видимых напоминаний и каких-то подсказок относительно того, как выполнять редкие процедуры, которые чем-то напоминают те, которые мы выполняем часто. Это приводит к ошибкам фиксации, когда мы выполняем те действия, которые делаем чаще, вместо тех, которые нужно выполнить по ситуации. Алгоритмы надо составлять так, чтобы начальные шаги отличались друг от друга как можно больше.
Важная мысль состоит вот в чем: хороший дизайн должен предотвращать промахи и ошибки. Дизайн может спасать жизни.
К счастью, большинство ошибок не фатальны. Несчастные случаи часто происходят по целому ряду причин, ни одна из которых не является основной.
Джеймс Ризон объясняет это, используя метафору нескольких кусочков швейцарского сыра, который известен тем, что в нем много дырок (рис. 5.3)[48]. Каждый из кусочков показывает состояние, в котором выполнялось задание, но авария происходит только в том случае, если дырки во всех четырех кусочках выстроятся в линию. В хорошо спроектированных системах может быть много сбоев аппаратуры, много ошибок, но они не приведут к несчастному случаю, если все эти случайности не выстроятся должным образом. Любая утечка — проход через дыру, — скорее всего, будет заблокирована на следующем уровне. Хорошо спроектированные системы устойчивы к ошибкам.
Рис. 5.3. Модель Ризона «Швейцарский сыр», объясняющая происхождение аварий
Обычно у аварии есть множество причин, и, если хотя бы одной из них не было, аварии бы не произошло. Британский исследователь несчастных случаев Джеймс Ризон описывает это через метафору кусков швейцарского сыра: если дырки не выстраиваются в линию, аварии не происходит. Из этой схемы можно сделать два вывода. Первый — не пытайтесь найти единственную причину аварии; второй — мы можем уменьшить количество несчастных случаев и сделать системы более устойчивыми, если спроектируем дополнительные меры предосторожности против ошибок (добавим кусочки сыра), заложим меньше возможностей для промаха, ошибки или сбоя оборудования (меньше дырок в кусочке) и сделаем очень разные механизмы в совершенно разных частях (постараемся сделать так, чтобы дырки не выстроились в один ряд). (Рисунок сделан на основе схемы, нарисованной Ризоном, 1990.).
Поэтому попытки найти одну-единственную причину несчастного случая обычно обречены. Эксперты, которые расследуют происшествия, пресса, правительственные чиновники и обычные граждане любят простые объяснения несчастных случаев. «Смотрите, если бы дырка в кусочке сыра А была расположена чуть выше, несчастного случая бы не произошло. Так что давайте выбросим кусок А и заменим его». Конечно, то же самое можно сказать и о кусках Б, В и Г (а в настоящих авариях количество кусков иногда измеряется десятками и сотнями). Довольно просто найти такое действие или решение, что, будь оно немного иным, несчастного случая бы не произошло. Но это не значит, что именно оно послужило причиной аварии. Это лишь одна из многих причин: все кусочки пазла должны сложиться.