Некоторое время назад Карен Сэндлер (исполнительный директор в GNOME Foundation) был поставлен диагноз Гипертрофическая кардиомиопатия, что, если не вдаваться в медицинские подробности, существенно увеличивает вероятность смерти от проблем с сердцем. Ей была рекомендована установка кардиостимулятора. Испытывая законное любопытство, Карен спросила, что за программное обеспечение работает в нём и может ли она взглянуть на его код, перед тем, как доверить ему свою жизнь. После множества пожиманий плечами, смущенных взглядов и переводов стрелок, кот, наконец-то, был вынут из мешка.
Оказалось, что все медицинские устройства (в США?) сертифицируются организацией FDA (Food and Drug Administration), которая никогда не проводит ревью исходного кода, пока с устройством не случится некоторая проблема, которая явно связана с ПО. Вместо этого, FDA полагается на отчет производителя, в котором, конечно же, может быть написано всё, что угодно. Кроме общих стандартов по форматированию текста, никаких особых требований к этому документу нет.
Объясняется всё это следующим образом: каждое медицинское устройство уникально, FDA просто не в состоянии выработать какие-то общие требования ко всем устройствам, не упустив что-то важное, а создавать такие правила для каждого отдельного аппарата — слишком долго и дорого. Также, FDA, конечно же, не знакомо с аппаратным устройством создаваемой техники на уровне её производителя, а значит именно он (и только он) может решать, как именно должен быть построен софт, какие тесты он должен пройти и когда быть признан годным к уставновке в реальные устройства.
Мы все знаем, что любое ПО содержит баги. Software Engineering Institute говорит о среднем числе в 1 баг на каждые 100 строк кода. Сколько строк в ПО кардиостимулятора? Исследования показывают, что 98% случаев сбоев таких устройств, случающихся по причинам багов в ПО, легко можно было бы избежать при должном уровне тестирования кода. Отсутствие необходимых тестов, code review и прочих механизмов обеспечения качества приводит к смертям людей и нет никакого (или почти никакого) законодательного механизма борьбы с этим.
Мысль Карен проста. Роль программного обеспечения в нашей жизни изменилась. С простых задач типа редактирования текста или игр, современный софт вырос до чего-то, что существенно влияет на все аспекты нашей жизни, вплоть до самого факта её у нас наличия. А значит, мы должны иметь свободу доступа к коду такого ПО, дабы вовремя не дать ему совершить непоправимое.
Оказалось, что все медицинские устройства (в США?) сертифицируются организацией FDA (Food and Drug Administration), которая никогда не проводит ревью исходного кода, пока с устройством не случится некоторая проблема, которая явно связана с ПО. Вместо этого, FDA полагается на отчет производителя, в котором, конечно же, может быть написано всё, что угодно. Кроме общих стандартов по форматированию текста, никаких особых требований к этому документу нет.
Объясняется всё это следующим образом: каждое медицинское устройство уникально, FDA просто не в состоянии выработать какие-то общие требования ко всем устройствам, не упустив что-то важное, а создавать такие правила для каждого отдельного аппарата — слишком долго и дорого. Также, FDA, конечно же, не знакомо с аппаратным устройством создаваемой техники на уровне её производителя, а значит именно он (и только он) может решать, как именно должен быть построен софт, какие тесты он должен пройти и когда быть признан годным к уставновке в реальные устройства.
Мы все знаем, что любое ПО содержит баги. Software Engineering Institute говорит о среднем числе в 1 баг на каждые 100 строк кода. Сколько строк в ПО кардиостимулятора? Исследования показывают, что 98% случаев сбоев таких устройств, случающихся по причинам багов в ПО, легко можно было бы избежать при должном уровне тестирования кода. Отсутствие необходимых тестов, code review и прочих механизмов обеспечения качества приводит к смертям людей и нет никакого (или почти никакого) законодательного механизма борьбы с этим.
Мысль Карен проста. Роль программного обеспечения в нашей жизни изменилась. С простых задач типа редактирования текста или игр, современный софт вырос до чего-то, что существенно влияет на все аспекты нашей жизни, вплоть до самого факта её у нас наличия. А значит, мы должны иметь свободу доступа к коду такого ПО, дабы вовремя не дать ему совершить непоправимое.