Про ответственность

Раз заговорили про ответственность, давайте глубже.
За кадром в интересах другого эссе оставлю тему «а за что же отвечает-то программист», ибо велика она, необъятна и по всей поверхности обмазана программистами, не желающими ни за что отвечать. Предположим, что общественность содрогнулась разумом и смогла сформулировать эти зоны. Скажем, раз ты эту строчку кода написал, ты за неё и отвечаешь. Раз ревьюирующий её вмёржил в мастер, он ТОЖЕ отвечает. И так дальше по цепочке до руководителей, пустивших код в продукт наружу. Утопия прям, ага.
Предположим, что в УК ввели статьи, предусматривающие наказание от 1 года до 15 лет за решёткой. А также ввели в культуру производства штрафы за то, что в УК не уместилось. Тут важно уточнить, что введут именно про программистов и для программистов, так-то и сейчас можно залететь на общих основаниях, если под режимом или по хитрому договору. А предположение затронет всех и везде. Твой код убил людей? Садись. Твой код привёл к простою завода на сутки? Штраф на пару пожизненных. Твой код продолбал миллион полезных чисел? Ну вот миллион и плати. Жёстко, угрюмо, но для модели самое то. К чему это приведёт?

Разработка разделится на две части: «сажабельная» и «всем пофиг». Произойдёт распределение кадров между потоками, подавляющее большинство прыгнет в ту, где риска меньше. Так же распределятся и входящие в профессию. Образуется и пограничная область «не посадим, но штрафами ушатаем», но её судьба после десятка громких дел категории «Петя поставил лишний плюсик, а его за это в рабство! Ироды! Сатрапы!» будет равна «сажабельной».
И да, первые громкие дела будут болезненными. Мало внести изменения в УК, надо воспитать поколения, привыкшие к ответственности. Пока воспитываются новые, будут страдать старые, ползущие в будущее на старой инерции. Бунты будут проходить под лозунгами «мы всегда так делали!», «деды не тестировали и мы не будем!», «все ошибаются, сажайте страну!»
В «сажабельной» оклады будут выше. Просто потому, что кадров у них будет намного меньше. А во «всем пофиг» оклады могут упасть, т.к. они в свою очередь испытают резкий рост кандидатов, готовых работать даже с понижением (лишь бы не посадили). Но не сразу. Долгий период игры и контрактов по новым правилам. Не все работодатели и не сразу осознают, что уже через сутки без дополнительной мотивации у них вообще никто на работу не выйдет, потом от испуга задерут оклад до небес, потом индустрия обвыкнется и нормализует. Но эти качели с дикими индивидуальными случаями войдут в легенду.
Резко скакнёт вверх рынок сертификаций как софта, так и людей. Законодательство может не сразу успеть за практикой, но подтянется (уж что, а регулировать государства любят). Если можно будет делегировать ответственность на других, появятся как другие, так и плата за их услуги. Хотите использовать последнюю версию MongoDB? Либо на свой страх и риск используйте, либо ждите, пока сертифицирующий центр её проверит, поставит штампик «ОТК принял», после чего и. И даже если баги там окажутся, и даже если из-за них нанесён ущерб, вы уже не отвечаете, ответит центр.
Людей тоже начнут сегрегировать. Если Игорю во «всем пофиг», всем пофиг. А вот если в «сажабельную», работодатель захочет больше гарантий того, что ты не просто хипстер с клетчатой рубашкой, но действительно знаешь. Потому сертификации, тесты, экзамены по всем областям. Потому каждый год подтверждение квалификации. Это несколько формализует рынок труда и переведёт его в область «докажи дипломом, а не языком».
Программисты научатся говорить «нет», а бизнес научится их слышать. Тут в целом начнётся интересный психологический сдвиг. Одно дело со стороны рассуждать о том, что тебя не касается и не коснётся. Другое дело не встретить сегодня на работе Васю потому, что он в суде приговор выслушивает. А через месяц увидеть offline у Вани, который в бегах в тайгу подался, дабы не выплачивать огромный штраф. Пока снаряды за горизонтом, сарказьм сарказьмирует, но тут-то они в окошко постучат, сразу интереснее жить и думать.
Так вот. Нет досрочной выкатке в продакшены. Нет нарушениям цикла. Нет работе с низкоквалифицированными коллегами. Нет поблажкам на собеседованиях. Нет внедрению непроверенных решений. Нет «у нас сроки горят, потому катим как есть». Повторю, всё очень просто: если неудачная выкатка подведёт Игната под статью, Игнат предпочтёт потерять работу, отказавшись от выкатки, но не свободу. Если эта же выкатка тянет за собою по цепочке в посадку и руководителей, руководители начнут внимательнее слушать разработку.
Но так будет не со всеми. В Китае 46 преступлений, за которые смертная казнь (от коррупции до наркотиков), всё равно 5000 казней в год. В новой разработке тоже найдутся камикадзе. Первыми падут те, кто не понял, что шутки кончились. Ребята, которым надо пять раз сказать «не влезай, убьёт», а они всё равно на шестой раз влезут, т.к. надо было сказать семь раз. Падут оставшиеся под стрелой за бабло, но без умения обеспечить качество. Падут случайные и племяши знакомых, которых не успеют вычистить руководители. Также падут и руководители, переоценившие уровень своей разработки и решившие, что с той же пионерской бригадой можно жить в новом мире. Жатва будет собираться ежегодно, прореживая контингент.
Разделение пойдёт и в области прогресса. Чем толще регламент, тем медленнее повозка. Бойцы из «всем пофиг» так и будут выпускать по десять фреймворков в год, а вот «сажабельные» бойцы начнут осторожничать и предпочитать проверенные годами решения. Соответственно, снова захватится и рынок. Часть вакансий и кандидатов с условно устаревшим стеком, часть с опережающим здравый смысл. Более того, не все технологии пройдут сертификацию, потому и стек «сажабельных» будет заметно меньше. Правда, это компенсируется нуждой в хороших знаниях.
Возможно, активизируется рынок «заградительных» решений. Более тонкие анализаторы кода, многослойное автоматическое тестирование, автоматические проверки безопасности, легко разворачиваемые стенды проверки на отказоустойчивость. Это тоже может породить свою нишу, в которой специализированные конторы смогут предоставлять недорогие облачные решения и сервисы, прохождение которых тоже могут прикрутить к сертификату качества.
Но всё равно ошибки будут. Меньше на пару порядков, а просочатся. Каждый такой случай будет вызывать шумиху в прессе и в тусовочке, раз за разом поднимая волну. Но общество, обнаружившее, что в каждом углу по десять программ (от прошивки утюга до «прошивки» Боинга), за сбои в работе которых наконец-то можно кого-то наказать, будет так же раз за разом эту волну гасить.

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

Про ответственность: 15 комментариев

  1. Фигасе, аналитика!
    На самом деле, на первый взгляд выглядит утопично, но уверен, что подобные практики уже используются, только в очень узком спектре отраслей. Но с другой стороны(конечно, в зависимости от страны, но в частности, про РФ), «а судьи кто?», как бы не получилось так, что «мажор» запилил баг, его отмазали, посадив/оштрафовав вместо этого ккого-нибудь другого, у кого нет «мохнатой лапы». И да, это несмотря на то, что есть инфа в CVS и пр.

    Лично я бы предпочел работать в «сажабельной» конторе, с ответственными коллегами, понятной сферой ответственности и астрономической зп

  2. В принципе, потенциально «сажабельные» отрасли программирования уже есть. В automotive (автомобилестроении), или в авиации, автор серьезного бага, приведший к авариям / смертям например, можно вполне поговорить с прокурором… Компании тоже достанется на орехи, если что-то накопают и докажут причастность софта.

    Немного соприкасался с automotive, там большая часть процессов при разработке как-раз посвящена размазыванию ответственности, дескать, мы все делали по процессам, а оно тут само… Разработка становится медленной, бюрократической процедурой. Курить ISO26262, если интересно

    • С авиацией вообще чудеса, похоже, судя по истории с тем, как мучительно в США новое военное клепают.

  3. Перегибаете палку. ИМХО, и посылка неверная, и выводы: с одной стороны — введение репрессий до конечного исполнителя невозможно (невозможно доказать злой умысел, если его там не было), а единственно возможный их результат — «наказание невиновных,награждение непричастных».
    С другой — если бы это произошло (разделение разработки на «сажабельную» и «всем пофиг»), то «сажабельная» — это мечта для всех Ваших Петь,Лёш и Паш из статьи «Элита» — можно важно надувая щёки спокойно ковырять в носу и нифига не делать.
    Моё мнение, что ответственность за хреновый код должна лежать на бизнесе, который (имхо, опять же) даже культивирует снисходительное отношение общества к бажному софту.

    • Хм. При чём тут злой умысел? Развитие уже давно существующих и действующих статей за халатность (293 УК РФ).

      • Тут ключевое слово — доказать. По 293 УК РФ можно преследовать «должностных лиц»(является ли разработчик должностным лицом?), и опять же _доказать_ причинно-следственную связь между Васиным говнокодом и последствиями.
        Впрочем, я о другом. О том , что эффективность судебного преследования конечного кодера никакая.

      • По существующим статьям разработчик никем не является. При «развитии уже давно существующих» статей вполне может оказаться.
        Доказать… Честно говоря, не вижу особой проблемы. При расследовании аварий с ракетами и спутниками комиссии вполне докапываются до причин. После чего смотреть, верно ли была поставлена задача. Если в задаче «сделать a + b», а Вася написал в коде «a — b», причина в Васе и его же ответственность. Если неверно поставлена задача, карать постановщика, по пути выяснив, входит ли в Васины обязанности осмысление и верификация задач. Если да, ну, рикошетом кара и по Васе пройдёт.

      • >Доказать… Честно говоря, не вижу особой проблемы. При расследовании аварий с ракетами и спутниками комиссии вполне докапываются до причин.
        доказать нужно причинноследственную связь в юридическом смысле. О чем Вы написали — это назначение козла отпущения. Вы почему-то игнорируете третью сторону — Васиного работодателя, его ответственность и его интересы.

      • (читает эссе): «И так дальше по цепочке до руководителей, пустивших код в продукт наружу».

        (читает ответ): «Вы почему-то игнорируете третью сторону — Васиного работодателя».

        (пожимает плечами, уходит)

  4. Ну вот у врачей (там) почти так. И что? Только цена на профессиональные страховки выросла и жёстко зарегламентирована процедура диагностики. И никто никого не сажает.

  5. Подобные практики действительно уже используются — в тех же АСУТП, например. Там и в программной документации указывается имя автора/проверяющего/утвердившего, и языки стандартизированы всякими IEC и не меняются десятилетиями, и методологии вылизаны до блеска (старый добрый ватерфол живее всех живых), и разработка ведётся по куче технологических норм и стандартов, и FAT-тесты длятся месяцами, и по анализу логов/архивов после техногенной аварии следственные органы могут подать запрос на привлечение фирмы-разработчика к ответственности (были случаи). В общем практически «сажабельная» зона.

    Результат — одни из самых низких зарплат в отрасли с примерно такой же квалификацией разработчиков.

    • Посмотрел вакансии в Москве. 60К..120К — это одни из самых низких? Или на самом деле столько не платят нигде?

      • Где-то платят, но в среднем меньше, чем «классическому» программисту даже работающему на внутренний рынок, не говоря уже об аутсорсе.

Добавить комментарий