Просмотров: 14921

Преступление и наказание в ИТ


Почему у многих серьёзных профессий есть своя, специфическая ответственность. Там пособничество всякое или злоупотребление служебным положением, разглашение чего не надо другим знать. Шаг сделал в сторону — расстрел. На каждую провинность — своя статья в УК. А программист пока стоит особняком, под первоапрельского дурачка косит — типа «это все проблемы на стороне государства железа». Кодит что хотит, в тиши своей берлоги создает прототипы ему одной известной криптоанархической хрени. Кто просчитывает последствия, как пытается предотвратить? Почему ответственные органы разрешили-проморгали?

Э, нет. Так просто, господа айтишники, соскочить не получиться. Будущее мира в наших руках, это я вам как упоротый солюционист говорю. Поэтому за принятие неправильных архитектурных решений, за от балды выбранные алгоритмические подходы, за каждый блудливый goto — придется ответить соплями кровью.

И чтобы мозги ваши сильно не грузить — сразу к факторологии. Видели ли вы как 0 делится на 0? Видели ли вы, как красиво горит гигантский авианосец? Знакомы ли вам эти характерные ощущения холодка по спине, когда ваш баг находят в системе, которая несет на борту ядерное оружие?

Читайте и более не грешите.

NewsPack 10 самые интересные ИТ-ссылки за прошлые недели обзоры новости блогератор

1. Деление на ноль

Ниже цитата из Википедии, взята отсюда:

Ночью 21 сентября 1997 года, в результате деления на ноль в компьютеризированной управляющей системе авианосца USS Yorktown (CG-48) Военно-морского флота США произошло отключение всех машин в системе, в результате чего двигательная установка корабля прекратила свою работу и корабль несколько часов оставался без контроля, результатом чего стал взрыв.

Ниже документальные свидетельства непосредственного результата деления на ноль (divide overflow in progress):

Преступление и наказание в ИТ ответственность роботы

Преступление и наказание в ИТ ответственность роботы

2. Машины-убийцы

Ещё два более современных примера-ссылки:

Далее выцедил интересный комментарий из последнего про то, что не стоит уж слишком полагаться на обработчик ошибок как на панацею от всех непредвиденных проблем:

Вспоминается история, рассказанная на производстве коллегой. На его прошлой работе как-то купили отличный пресс для кузнечного участка. Тонн то ли 50 то ли 100 (это усилие, которое он развивает, а не его вес). Он был крут, и имел систему аварийной остановки: когда в рабочую зону попадали руки работника, он останавливался. Через некоторое время кузнец (его оператор) начал всем демонстрировать весьма эффектное представление — махина несколько метров в высоту опускается на деталь, он туда засовывает руки и махина со скрежетом тормозит в паре сантиметров от ладоней.

А через месяцы и сотни демонстраций случилось что, что на ролике — махина не остановилась и от его рук осталась «пленка»...

Так вот. Аварийные системы НЕЛЬЗЯ использовать как штатные. В случае аварии система на вольво попробует помочь, и вероятно у неё получится, а может и нет — но выхода то всяко не было. А что происходит на демонстрациях, когда её пытаются применить не в боевых условиях, а продемонстрировать нечто — вы видели. Но эту идею вдолбить в головы покупателей, которых старательно превращают в дебилов той же рекламой, внедрить будет крайне сложно...

Эпоха всеобщего кода только начинается. Точка.

Сложность и глобальность ИТ-систем будет нарастать экспоненциально. Обыватель выполняет пассивную роль потребителя-пассажира, а вот рулить прогрессом, беря на свои плечи всю глубину ответственности, предстоит айтишникам.

3. Делегирование ответственности

Дружище, если ты пишешь код, нужно уже сегодня быть как-то поосторожней. Прежде чем работать на рынке ИТ будущего, тебе нужно reconsider yourself — переосмыслить себя. Необходимо осознание и ответственность сообразные тому, что ты делаешь. Как это водится, когда эндогенно это чувство ещё не сформировано, со стороны мироздания будет применен болезненный катализатор в виде нового законодательства.

По мере проникновения софта во все сферы жизни на Западе уже сейчас всерьёз обсуждают введение личной уголовной ответственности программистов за косвенные преступления и любые аномальные последствия действий автоматизированного оружия или любых других автономных систем с их кодом (ссылка 1, ссылка 2).

Военные как всегда несколько опережают эпоху, но суть всего сказанного касается и гражданских. Где гарантия того, что твой очередной исследовательский проект на гитхабе не будет стоить человечеству его будущего?

Роботизированных механизмов типа роботов-пылесосов становится всё больше, автомашины вон и те собираются сделать полностью автономными — а отвечать-то за эту роботехническую вакханалию кто будет, а? Вот эти серьёзные дяди подумали-и-порешали, что программистиков-то этих нужно срочно прижать к ногтю, «во избежание».

Политики так всегда делают: что бы не случилось — они ищут крайнего.

Так вот, скоро на Западе будут отдельные статьи. Айтишно-уголовные. Скобку не закрыл в нужном месте — статья такая-то, пункт такой-то. Будьте любезны «трешечку» отсидеть. Ещё не поздно соскочить с этого поезда. Подумай над этим сегодня вечером, когда придет время коммитить код . Эпоха лафы скоро закончится.

Преступление и наказание в ИТ ответственность роботы достоевский

twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru ya.ru pikabu.ru blogger.com liveinternet.ru livejournal.ru google.com bobrdobr.ru yandex.ru del.icio.us

Подписка на обновления блога → через RSS, на e-mail, через Twitter
Теги: , , , ,
Эта запись опубликована: Пятница, 1 апреля 2016 в рубрике ЛитдыбрМнения.

9 комментариев

Следите за комментариями по RSS
  1. Комментатор 255

    > Скобку не закрыл в нужном месте...

    Одновременно с этим развиваются компиляторы, статические анализаторы и т.д. Закрыть скобочку в нужном месте - невелика заслуга. А вот лень и отсутствие метода - это да.

    Байка.

    Работал пару лет разработчиком аналоговых СВЧ устройств в НИИ. Каждый этап сборки платы фиксировался соответствующими картами/таблицами проверки, разработка которых - это обязательная часть разработки "железа", без нее документацию просто не принимают. По этим картам, инженеры сами сидели и "прозванивали" каждый диод и транзистор, потом включали отдельные платы в специальную тестовую обвязку, проверяли работу всех АЦП, потом переходили к радиочасти, которую так просто не отдебажить (собсно, по сей день подстройка осуществляется лепкой индия вдоль СВЧ-дорожек, благодаря чему из платы можно выжать максимальный коэффициент передачи) - короче, производилось очень много действий. А причина проста: после настройки устройство запаивалось в металлический корпус при температурах 200-250 градусов, и официальными нормами допускается не более одного-двух вскрытий, после чего пригодность начинки ставится под сомнение, т.к. длительный нагрев разрушает СВЧ комплектацию. Соответственно, и разработчик, и настройщик должны делать свою работу с учетом того, что СВЧ характеристики "поплывут". Если вы это читаете, я почти уверен, что вам очевидно, что необходимо обеспечивать запас прочности изделий.

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

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

    Что интересно, исходный код бедолаги написан местами очень разумно, он явно в курсе, что существуют паттерны проектирования и всякое такое. Но продукта нет.

    Мораль, я думаю, очевидна: отсутствие инженерной культуры может быть незаметно сначала, но рано или поздно аукнется. Пожинать плоды этой культуры вы сможете только тогда, когда сами станете ее в себе воспитывать и сами за собой следить. До этих пор вы - дети. Может быть, гениальные.

  2. Можно не доверять инженеру, но по чему нужно доверять законодателям и чиновникам? Ошибки у них гораздо чаще и последствия их более катастрофичны. Принятие решений часто продиктованы личн6ыми интересами в ущерб обществу.

  3. учился на юриста

    Так это все уже ложится на существующее уголовное законодательство. В учебниках по уголовному праву типичная ситуация разбирается - гражданин, являющийся субъектом уголовного права, натаскивает на преступление ребенка несовершеннолетнего или недееспособного какого-нибудь, ну вот он совершает преступление, а так как на недееспособный - он вообще не субъект, а он рассматривается как ОРУДИЕ совершения преступления. И у нас в УК есть ряд составов, предусматривающих наказание за непредумышленные деяния. Так что по сути, если будет доказано, что допустим ты запрограммировал робота, а он в результае убил человека - непредумышленное убийство светит и тебе, и оператору робота

  4. А где про пожар на авианосце почитать? В Википедиях этих ваших пишут про остановку двигателя всего лишь.

  5. На фотографии горит авианосец Энтерпрайз, авария не была связана с ошибками в ПО: http://mosmonitor.ru/articles/army/bolshoy_pozhar_na_enterprayze

  6. SergeyS, Keroronsk - пост от первого апреля, вообще-то. Да, там рассказана лишь полуправда, но корабль один и тот же.

  7. Так много всего написано, а я дальше "соскочить не получиться" не читал..

  8. Ипполит Матвеевич

    Желающие покаяться программисты, милости просим сюда: http://www.codingconfessional.com/ :-D

  9. Непосредственную ответственность за изделие несут те кто его продаёт. Рядовые программисты - обычный пролетариат, крутят болт на 16 от забора до обеда. И ответственность такая-же что у рабочего перепутавшего полюсацию разъёма для упавшего Протона.

Оставьте комментарий!

Не регистрировать/аноним

Используйте нормальные имена. Ваш комментарий будет опубликован после проверки.

Зарегистрировать/комментатор

Для регистрации укажите свой действующий email и пароль. Связка email-пароль позволяет вам комментировать и редактировать данные в вашем персональном аккаунте, такие как адрес сайта, ник и т.п. (Письмо с активацией придет в ящик, указанный при регистрации)

(обязательно)


⇑ Наверх
⇓ Вниз