Когда начинались компьютеры (а я уже в те времена уже находился во вменяемом возрасте и ездил в Ленинскую библиотеку (г.Москва) читать журнал Electronics), они были настолько экзотическими устройствами, что программы для них писали сами пользователи, а профессия разработчика программ называлась «математик-программист». При чём тут математика, никто сейчас понять не может, а пошло это ещё от аналоговых вычислительных машин, которые решали системы интегральных уравнений. Вот там математика была нужна. Вы, наверное, тихо офигеете (кто в теме), но я разрабатывал аналоговый вычислитель на первых интегральных операционных усилителях.
Пока сами пользователи писали программы, естественно, они сами делали в них ошибки и сами за них расплачивались. Пролетел спутник мимо Луны из-за одной неправильно написанной строчки на Фортране – претензии предъявлять было некому, кроме как себе любимому.
Потом программное обеспечение стало товарным продуктом и его начали продавать. Но всё же, без него можно было обойтись, и поэтому те, кто покупали программы, давали своё добровольное согласие стать подопытным кроликом. За свои же деньги (как я стал им в своё время с Windows 1.0), потому что в лицензионном соглашении оговаривалось условие полного отсутствия какой-либо ответственности разработчика за ошибки в программе. Да, собственно, Windows 1.0 и не работала – это был такой фэйк (фикция) для шибко продвинутых гиков. Разводка на деньги красивой идеей.
И вот шли годы, и лицензионные соглашения с течением времени изменялись. В сторону нет, не ответственности разработчика за ошибки в программе, а в сторону бесправия пользователя. Сегодняшние лицензионные соглашения уже никто не читает, чтобы не расстраиваться, увидев право производителя поиметь всю информацию пользователя и его самого в особо извращенной форме (см. лицензионное соглашение Windows 10, например).
А что же с ответственностью разработчика? Её как не было, так и нет. А компьютеры, и соответственно, софт для них тем временем стали использоваться не только для ведения электронных таблиц, но и в разных критических для жизни человека местах – для управления энергетикой, оружием, поездами и самолётами. Много раз катастрофы с человеческими жертвами происходили из-за того, что программное обеспечение было слеплено криворукими говнокодерами.
Чуть случается нетипичная ситуация, шаг влево-вправо от инструкции – и софт начинает вытворять с техникой нечто такое, что даже перевод в режим ручного управления уже не поможет. Вот скажите, отказ одного из двух датчиков должен привести к падению самолёта? А ведь это реальность. Программа не рассчитывала на такой поворот событий и стала выдавать пилотам совершенно дикие показания приборов. (В обтекаемых фразах, отредактированных отделом PR, это будет звучать примерно так: «вводящие в заблуждение сигналы включающегося и выключающегося предупреждения о сваливании, противоречащие реальному пространственному положению самолёта, могли стать факторами, значительно затруднившими анализ ситуации экипажем»).
Да те же банковские программы – сколько раз в месяц вы видите предложение срочно обновить приложение из-за «обнаружения критической уязвимости»? Как правило, «критическая уязвимость» есть результат применения Agile (Agile она же Агиля) и выявляется после того, как со счетов клиентов были украдены сотни миллионов денег.
И что, хоть раз посадили лет на двушечку разработчика или заставили банду говнокодеров компенсировать убытки? Сами знаете, что нет. Потому что в лицензионном соглашении вы сами согласились освободить разработчика от какой-либо ответственности.
Естественно, как и всегда, отсутствие ответственности за чужие потери стимулирует к сокращению затрат на тестирование и разработку методик обеспечения надёжности программ. Майерс с его фундаментальной книгой «Надёжность программного обеспечения» забыт намертво.
И сейчас мы подошли к той критической черте, когда вся наша жизнь определяется софтом, в котором количество ошибок увеличивается с каждым годом геометрически, и критичность сфер применения ПО — тоже.
Так вот, сдаётся мне, джентльмены: пока государства не введут законы об ответственности разработчиков за потери пользователей программ от разгильдяйства разработчиков (хотя бы для критических предложений), самой главной опасностью для нашего с вами существования будут ошибки ПО. Вы уверены, что завтра из-за ошибки в программе в вас не полетит весь арсенал ядерных ракет США или России? Мы все со страшной скоростью влетаем в жизнь, которой управляют программы, разработанные полоумными говнокодерами.
З.Ы.
22.05.2017. Написал эту статью 11.05.2017. А сегодня, через две недели, вижу интересную новость на Interfax.ru: «РФ предложила ввести ответственность производителей ПО за уязвимости»
© 2017, Ассоциация экспертов системного менеджмента «МихиКо». Все права защищены.
Leave A Comment
You must be logged in to post a comment.