Одна-единственная путаница в единицах стёрла из космоса зонд за 300 миллионов долларов, заглушила двигатели лайнера в полёте и оставила две половины моста на разной высоте. Это музей катастроф, который со смехом и горькими уроками доказывает: единицы и правда лежат в сердце науки. Пройдитесь по ним по порядку, от самой давней к самой свежей.
1492 Забавная история
Колумб и путаница с милями
В 1492 году Колумб отправился в плавание, убеждённый, что достигнет Азии, двигаясь на запад. Известное предание гласит, что при оценке расстояний он перепутал мили разной длины и недооценил размеры Земли, сильно занизив, как далеко на самом деле лежит Азия (историки толкуют источники по-разному).
Что пошло не так
Расстояния, приведённые прежними географами, были записаны в арабских милях, но, как говорят, Колумб прочёл их как более короткие итальянские (римские) мили. В сочетании со слишком малой Землёй, которую он насчитал, это привело к тому, что путь от Европы до Азии он оценил куда короче, чем он есть на самом деле.
Итог
Он достиг земли раньше, чем ожидал, и был уверен, что это Азия (Индии). Но на самом деле он добрался до островов Карибского моря — Нового Света, неизвестного Европе. По иронии судьбы просчёт привёл к «открытию», изменившему историю.
Урок
Единицы с одинаковым названием могут иметь разную длину в разных краях и эпохах — миля тому классический пример. Цитируя число, проверяйте, какое именно определение мили оно использует. И, как в этом рассказе, поскольку источники допускают разные прочтения, такие истории стоит излагать осторожно — как предания, а не как установленные факты.
В 1628 году военный корабль «Васа» — построенный, чтобы явить мощь Швеции, — опрокинулся и затонул вскоре после выхода из стокгольмской гавани в первом же плавании, настигнутый порывом ветра. Главной причиной была недостаточная остойчивость из-за слишком высоко размещённых тяжёлых пушек, хотя популярная версия винит ещё и использование разных «футов» при постройке.
Что пошло не так
Главной причиной опрокидывания стало то, что на верхних палубах разместили слишком много тяжёлых пушек, отчего центр тяжести поднялся, а кораблю не хватило остойчивости. К тому же позднейшее изучение корпуса позволяет предположить, что мастера могли использовать футы разной длины (шведский фут в 12 дюймов и амстердамский фут в 11 дюймов), отчего корпус вышел слегка несимметричным, — но это приводится лишь как версия о сопутствующей причине.
Итог
«Васа» прошёл едва около 1300 метров, когда первый порыв резко его накренил; при втором порыве вода хлынула через открытые орудийные порты, и корабль затонул, унеся много жизней. Корпус подняли почти целым в 1961 году, и сегодня его можно увидеть в отдельном музее в Стокгольме.
Урок
Даже при величественных цифрах и изящных чертежах всё рушится, если эталон ваших измерений не общий. Но суть этой трагедии — в том, что показную мощь и огневую силу поставили выше безопасности и остойчивости. Рассказывая историю, важно отделять заманчивую версию об «ошибке с единицами» от установленной главной причины.
В 1980-х годах A&W бросила вызов «Quarter Pounder» от McDonald's бургером с бóльшим количеством мяса — треть фунта — по той же цене. Но он провалился, ведь многие покупатели решили, что «три меньше четырёх», и сочли, что платят столько же за меньшее количество мяса.
Что пошло не так
Дело было не в единице, а в чутье на дроби. Глядя только на знаменатели 3 и 4, многие покупатели рассуждали: «раз 3 меньше 4, то одна треть должна быть меньше четверти». На деле треть фунта — это больше, но людям казалось, что за те же деньги они получают меньше мяса. Заметьте: это была A&W, а не McDonald's.
Итог
Хотя бургер давал больше мяса за ту же цену, продавался он еле-еле. Позднейшие маркетинговые исследования показали, что многие покупатели попросту перепутали дроби, и этот случай стал знаменитым примером того, насколько ненадёжной бывает наша интуиция в отношении чисел и количеств.
Урок
Верное число ничего не стоит, если оно не дошло. Часто полезнее сказать «на 33% больше» или «150 г мяса» вместо «одна треть», подстраиваясь под то, как люди мыслят на самом деле. Единицы и дроби выполняют свою роль лишь тогда, когда вы продумываете не только расчёт, но и то, как сообщение будет понято.
В 1983 году, сразу после перехода Канады с имперской системы на метрическую, у Boeing 767 авиакомпании Air Canada в полёте кончилось топливо из-за путаницы в единицах при заправке. Без двигателей капитан спланировал лайнер на заброшенную бывшую авиабазу в Гимли — и не погиб ни один человек.
Что пошло не так
Рассчитывая, сколько топлива заправить, экипаж перепутал фунты (lb) с килограммами (kg). Поскольку фунт — это всего около 0,454 кг, самолёт заправили примерно половиной действительно нужного топлива. Переход на совершенно новый тип машины и на метрическую систему совпали по времени, и ни одна из проверок не выявила ошибку.
Итог
Над Манитобой сначала один, затем другой двигатель заглохли из-за нехватки топлива. Капитан, опытный планерист, посадил огромный обесточенный лайнер в режиме планирования на полосу заброшенной авиабазы Гимли, к тому времени отчасти использовавшейся для автогонок. Никто не погиб, а самолёт позже отремонтировали, и он вернулся в строй.
Урок
Период перехода между системами единиц — как раз тот момент, когда аварии наиболее вероятны. Когда смешиваются старые и новые единицы, спасает привычка независимо проверять, имеет ли результат «примерно верный порядок величины». И, как показывает эта история, даже в худшем случае выучка и хладнокровие способны изменить исход.
В 1999 году аппарат NASA «Марс Климат Орбитер» не смог выйти на орбиту вокруг Марса и больше не вышел на связь. Причиной стало несоответствие единиц силы между наземным ПО и навигационным ПО Лаборатории реактивного движения (JPL) — одна из самых известных ошибок с единицами в истории.
Что пошло не так
Наземное ПО, созданное Lockheed Martin, выдавало тягу в фунт-секундах (lbf·s), имперской единице, а навигационное ПО JPL принимало эти числа как ньютон-секунды (N·s) в СИ. Пересчёт между ними так и не выполнялся, поэтому значения силы, задававшие траекторию, всю дорогу были ошибочны примерно в 4,45 раза.
Итог
Двигаясь по ошибочным навигационным данным, зонд снизился примерно до 57 км над Марсом — намного ниже расчётной высоты, — где, как полагают, был разрушен атмосферным давлением и нагревом либо «отскочил» и прошёл мимо планеты. Аппарат был потерян, а общая стоимость миссии составила около 327 миллионов долларов.
Урок
Границы, где системы передают данные друг другу, — это и есть рассадник аварий с единицами. Прописывайте единицы в спецификации интерфейса, снабжайте единицей каждое передаваемое значение и держите пересчёты в одном месте, где их можно протестировать. Один-единственный забытый пересчёт способен в мгновение стереть годы труда.
Около 2003 года Германия и Швейцария строили мост через Рейн сразу с обоих берегов — и высоты пролёта не сошлись. Обе страны брали за «нуль метров над уровнем моря» разные моря, а поправку на эту разницу к тому же применили с неверным знаком.
Что пошло не так
Германия отсчитывала от Северного моря (амстердамский уровень), а Швейцария — от Средиземного (марсельский уровень), разница составляла около 27 см. Инженеры знали об этом расхождении, но применили поправку в обратную сторону (с неверным знаком). Вместо того чтобы взаимно погаситься, разница удвоилась, и берега в итоге разошлись по высоте примерно на 54 см.
Итог
К счастью, ничего столь серьёзного, как обрушение, не произошло; берега соединили, срезав пролёт на швейцарской стороне. И всё же ошибка привела к лишним переделкам и расходам, а мост стал часто пересказываемой притчей о том, к какой путанице может привести несогласованный уровень отсчёта.
Урок
Единицей считается не только само число, но и то, относительно чего оно измерено. Одна и та же «высота над уровнем моря» означает разное в зависимости от опорной поверхности. Задайте единый уровень отсчёта, начало координат и направление (знак) для всего проекта и всегда проверяйте, не применили ли поправку наоборот.
Неужели космический аппарат и правда потеряли из-за ошибки в единицах?
Да. В 1999 году был потерян аппарат NASA «Марс Климат Орбитер»: наземное ПО выдавало силу в фунт-секундах (имперская единица), а навигационное ПО считывало её как ньютон-секунды (СИ). Поскольку пересчёт так и не выполнили, расчёты траектории сместились, и зонд вошёл в атмосферу Марса гораздо ниже запланированного и разрушился. Общие потери составили около 327 миллионов долларов.
Почему смешивать метрическую и имперскую системы так опасно?
Одно и то же число для силы или веса означает совершенно разное в зависимости от единицы. Именно похожие на вид единицы — фунты и килограммы, фунт-секунды и ньютон-секунды — легче всего перепутать, а забытый пересчёт всё равно даёт число, которое «выглядит правдоподобно». Когда вместе работают несколько команд или программ, решение — закрепить договорённость о единицах письменно (в спецификации интерфейса) и снабжать единицей каждое значение.
Можно ли сегодня полностью избежать таких ошибок с единицами?
Полностью устранить их трудно, но можно сильно сократить. Указывайте единицу у каждого значения, автоматически проверяйте единицы при передаче данных между системами, приведите всё к СИ (Международной системе единиц) и сосредоточьте всю логику пересчёта в одном протестированном месте. Самая надёжная защита — культура, где единица считается не украшением, а частью самого числа.