Об ответственности софтверного производителя

После аварии на Саяно-Шушенской ГЭС стало модным говорить о грядущих изменениях в положении производителей софта, которые, нехорошие такие люди, наконец-то, обязаны будут ответить за каждый баг (в самых воинствующих интерпретациях даже смыть каждый из них кровью). Это, конечно, вполне возможно... Только выиграют ли от этого пользователи?

Баги (сиречь ошибки) есть в любых программах - это, скажем так, одна из аксиом программирования. Как справедливо замечают те, кто негодует из-за отказа производителей программного обеспечения от ответственности за последствия использования их продукции, большая часть софта сегодня распространяется на условиях "AS IS" (дословный перевод на русский - "как есть"). Производители программ не гарантируют пользователю их безошибочную работу - собственно, именно это положение лежит в основе отказа от ответственности за последствия их использования.

Любимый аргумент тех, кто против такого порядка вещей, - это что производитель автоматизированной системы управления, скажем, атомной электростанцией, не гарантирует того, что в результате работы его системы станция не взлетит на воздух. "Зачем тратятся такие большие деньги на разработку или покупку программ, если они всё равно не способны правильно работать?" - любят спрашивать они. Контраргумент - червивые яблоки. "Покупая яблоки, вы не можете потребовать от их поставщика гарантии, что ни в одном из них не окажется червей", - говорят те, кто понимает, что невозможно требовать от производителей программного обеспечения полного отсутствия в нём каких бы то ни было ошибок. Не так уж важно, чья позиция вам ближе - дело в том, что требования заставить производителей программного обеспечения нести ответственность за последствия его использования относятся к разряду чего-то совершенно фантастического.

Дело здесь, в общем-то, даже не в возможных ошибках. Пользователи, которые работают, скажем так, с обычными программами, слабо представляют себе уровень надёжности программного обеспечения, обеспечивающего работу тех же электростанций, железных дорог и тому подобных объектов. Дело в том, что производитель программного обеспечения не может гарантировать правильность его использования. После каких-либо инцидентов, пусть даже и не столь трагичных, как тот, который произошёл на Саяно-Шушенской ГЭС, производителю программного обеспечения будет сложно доказать, что какой-либо сбой произошёл из-за нарушения инструкций по его использованию, даже если действия пользователя (или, правильнее сказать, оператора) тщательно протоколируются самой программой).

Сложно даже представить, насколько окажутся загруженными суды, если принцип "AS IS" перестанет действовать и пользователи, потерявшие данные в результате программного сбоя, смогут подавать иски к производителям "обидевших" их программ. Сколько пользователей, случайно удаливших собственные данные, обвинят программу в сбое?..

Как видите, единственное, чего позволит добиться отмена принципа "AS IS", - это непроизводительные траты времени и дополнительная нагрузка на судебную систему. Поэтому предложение его отмены - это просто "перекладывание с больной головы на здоровую" в самом что ни на есть явном виде.

Вадим СТАНКЕВИЧ

Версия для печатиВерсия для печати

Номер: 

35 за 2009 год

Рубрика: 

Software
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!

Комментарии

Страницы

Аватар пользователя Логик
НЕ программист > Это вы получаете тысячи долларов и делаете обычное гавно! Вы все! За что вам платят?

Стоимость труда определяется спросом - как и любого другого товара - СПРОСОМ И ПРЕДЛОЖЕНИЕМ.

Если простой НЕ программист выпускает автомобили, которые можно условно назвать автомобилями или которые НИКТО не покупает - то этого простого НЕ программиста только жаль.

Аватар пользователя mike
>ЕСТЬ места и ЕСТЬ алгоритмы и ЕСТЬ примеры и ЕСТЬ разработчики, которые пишут такой софт, который с САМОГО НАЧАЛА НЕ СОДЕРЖИТ НИ ОДНОГО БАГА!

Да, ЕСТЬ места, где самородки с фунт весом ЕСТЬ. :)

Аватар пользователя Вадим Станкевич
Логик, может быть. Честно говоря, с таким софтом не сталкивался и мало что знаю о его разработке.
Аватар пользователя Логик
Вадим Станкевич > Логик, может быть. Честно говоря, с таким софтом не сталкивался и мало что знаю о его разработке.

Во. Надо бы, наверное, ознакомиться и читателей ознакомить, что ЕСТЬ СОФТ БЕЗ БАГОВ! - Я о таком лет 5-7 назад слыхал.

Аватар пользователя mike
>Я о таком лет 5-7 назад слыхал.

"А ты едал?" -- "Не едал, но слыхал, что кто-то видал, как барин едал." (Любимая присказка моей бабушки.)

Аватар пользователя Narthex
>>но во Франции компания разработчик ПО для управление движением электропоездов в метро ГАРАНТИРУЕТ, что в этом их ПО НЕТ ОШИБОК

На самом деле существуют методологии, которые позволяют снизить количество багов или даже исключить их появление. Например, Agile и Test Driven Development, когда сначала пишутся тесты для кода, который будет написан впоследствии. Подобные разработки действительно очень качественные и с гарантией, но и стоят дороже, поскольку программист пишет в 2 раза больше кода. Хороший менеджер должен чаще использовать подобные подходы для своих команд разработчиков, даже если нужно каждому отдельному программисту это разжевать. Но факт в том, что сейчас даже солидные произодители ПО экономят на ресурсах и преследуют лишь скорость создания ПО (все же конкуренция), поэтому у программистов нет стимула совершенствоваться, ведь их просто накажут, если они будут писать в 2 раза медленнее, но с высоким качеством через TDD.

Аватар пользователя Логик
mike (old student) > "А ты едал?" -- "Не едал, но слыхал, что кто-то видал, как барин едал." (Любимая присказка моей бабушки.)

По любому - барин то что-то ЕДАЛ, и это что-то было ОТЛИЧНО от того, что едим МЫ. - Не так ли, mike?! ;-)

Аватар пользователя Логик
Narthex > На самом деле существуют методологии, которые позволяют снизить количество багов или даже исключить их появление. Например, Agile и Test Driven Development...

Нет, речь не об этих методиках вовсе идет. - Эти методики не позволяют довести число багов до нуля! - Точнее, следуя этим методикам нельзя сказать, что у меня багов нет вовсе. - Все что можно сказать, это то, что при разработке я использую методику Agile и Test Driven Development и ... все. - Но о числе оставшихся багов в ПО, в этом случае, нельзя сказать НИЧЕГО конкретного.

ПО метро во Франции (а сейчас построили и в Саудовской Аравии - полностью автоматическое метро) разрабатывается СОВСЕМ по ДРУГИМ методикам.

Аватар пользователя Инкогнито
И не надейтесь, что Станкевич вам расскажет, кто его подкармливает и оплачивает такую писанину. Я вообще не понимаю, как можно так нагло завираться, работая в одном издании с такими прекрасными, журналистами, как Демидов. Вадим, тебе есть у кого поучиться. Но кормить читателей подобными опусами, конечно, проще, чем учиться писать у тех, кто действительно умеет это делать.
Аватар пользователя Narthex
>>Все что можно сказать, это то, что при разработке я использую методику Agile и Test Driven Development и ... все.

Если весь функционал покрыт тестами (несколько тысяч), то проект не сбилдится, если хоть один тест (Unit тест) упадет. А тесты проверят все - от входных данных до времени выполнения куска кода. Поэтому в данном случае возможно полное отсутствие багов(для небольших приложений). Это как пример формализации задачи уменьшения багов, причем вполне успешной. Если задачу можно формализовать, то значит и можно измерить и точность результатов.

Страницы