Законы программирования в юридической реальности
Развитие современной IT-индустрии привело к тому, что был открыт целый ряд законов, точно также как в 17 веке упавшее на голову Ньютона яблока привело, согласно легенде, к открытию закона всемирного тяготения.
Интересно, как многие из этих законов (которые иногда для простоты называют законами программирования), действуют в юридической иммиграционной практике.
Закон Брукса (Brooks’s law):
Добавление новых участников к уже отстающему от графика проекту как правило приводит к дальнейшему затягиванию сроков.
Происходит это из-за привнесенной таким образом сложности координации и обучения.
Это пожалуй самый наглядный и простой пример того, как закон программирования работает и в другой отрасли. В юридической практике происходит ровно то же самое: если к горящей задаче привлечь больше сотрудников, то или она затянется из-за связанных с этим сложностей, или пострадают другие задачи, временные ресурсы которых будут потрачены на преодоление сложностей.
Закон Гудхарта (Goodhart’s law):
Когда некий показатель становится целью, он перестаёт быть надёжным мерилом для оценки успеха.
Иными словами, когда иммиграционные власти ставят главной целью снижение сроков рассмотрения визовых заявлений, страдает остальное, и в первую очередь качество решений: больше необоснованных отказов, административных ошибок (больше нагрузка на федеральный суд и другие инстанции, пересматривающие такие дела). Сроки рассмотрения становятся короче, цель достигается, но в целом качество работы снижается.
Закон Хайрама (Hyrum’s Law):
Если систему используют большое количество людей, то почти любое поведение системы обязательно будет кем-то использоваться, даже если оно официально не предусмотрено.
Пояснительный пример: система (в контексте IT) согласно её официальной документации должна выдавать список файлов в случайном порядке, но на практике она выдаёт их не в случайном порядке, а в алфавитном. Пользователи замечают это и начинают строить свою работу, предполагая именно алфавитный порядок списка. Если система будет изменена, и список файлов будет выдаваться в произвольном порядке, работа многих пользователей будет нарушена.
Когда пользователи полагаются на недокументированные особенности системы, планомерное развитие такой системы сильно осложняется.
Пример из иммиграционной практики: всем известный flagpoling. Этот маневр не предусмотрен законодательством, но при этом он работал и успешно использовался тысячами заявителей в течение многих лет, пока не был отменён в конце 2024 года.
Ещё один пример – подача заявления на беженство при пересечении сухопутной границы вне пропускных пунктов. Иммиграционное законодательство не давало такой возможности тем, кто пересекал границу Канады законно, поскольку США считаются безопасной страной. Но нигде не было подобного запрета для мигрантов, которые пересекали границу в неположенных местах. В результате тысячи людей заходили в Канаду через печально знаменитую Roxham Road, что давало им возможность подавать беженские заявления.
Применительно к законодательству подобные вещи обычно называют лазейками (loopholes), но по сути это и есть закон Хайрама.
Закон Хофстадтера (Hofstadter’s law):
Выполнение любой задачи всегда занимает больше времени, чем вы ожидаете, даже если вы учитываете закон Хофстадтера.
Этот закон один из фундаментальных, в пояснениях он не нуждается – практика показывает, что он действует в большинстве случаев. Всегда возникают обстоятельства, которые влияют на ход вещей, и в результате делают выполнение задач более длительным.
Закон Кернигана (Kernighan’s Law):
[программный] код должен быть написан таким образом, чтобы его было легко читать и понимать. Ясность и простота кода важнее его краткости или сложной структуры, поскольку хорошо читаемый код облегчает сопровождение, отладку и дальнейшее развитие продукта.
То, как работает этот закон, видно на примере любых писем с аргументацией тех или иных аспектов иммиграционного дела. Можно заметить, как длинные, излишне подробные письма с многократными повторами и пояснениями имеют гораздо меньший положительный эффект, чем краткие и точные пояснения по сути вопроса. Простое и понятное “прошу выдать work permit обязательно с отметкой CUAET, поскольку это исключительно важно для получения медицинской страховки” работает надёжнее, чем подробный рассказ обо всех трудностях бытия, которые возникли у заявителя из-за отсутствия этой отметки. “Легко читать и понимать” – важнейшая основа любого письма, кроме поздравительного.
Принцип Ширки (Shirky principle):
Организации будут стараться сохранить проблему, для решения которой они существуют.
Примеров множество, взять хотя бы LMIA. Процесс получения такого разрешения был создан, чтобы защитить рынок труда Канады от излишнего проникновения в него иностранной рабочей силы. Тем не менее сегодня этот механизм существует лишь по инерции, потребляя существенные ресурсы государства и заявителей, но практически не выполняя своей основной задачи.
Даже официальный сайт IRCC вполне следует этому принципу: созданный для того, чтобы предоставить заявителям понятную и исчерпывающую информацию в доступной форме, сейчас он представляет собой громоздкий ресурс, который способен скорее запутать пользователей (особенно тех, кому нужно чуть более глубокое понимание предмета).