Неуклюжие попытки сгруппировать другие письма пришлось оставить, как только до меня дошло письмо Ивана Качинского. Он всю эту работу за меня сделал и все по полочкам разложил. Качинский так четко и емко отразил мнения многих других читателей, что будет справедливо назвать его соавтором настоящего разбора полетов и привести его письмо целиком (за исключением короткой преамбулы). Особенно если учесть, что единственное, в чем я с ним не согласен, – это в том, что его письмо каким-либо образом опровергает мои выводы. Вот что пишет Качинский.
К сожалению, в рассуждениях автора допущен целый ряд логических ошибок, на основании которых он делает совсем уж безрадостный прогноз. Кроме того, он не указывает на явные ошибки разработчиков системы, которые, скорее всего, будут раньше или позже исправлены. Я попробую разобрать некоторые спорные моменты и показать, что в целом ситуация не настолько мрачна.
Ошибка первая, фундаментальная. Существует нашумевшая в свое время теорема Гёделя, которую можно сформулировать так: любая[За несколькими тривиальными исключениями. – И.К.] формальная система неполна и/или противоречива. Под «неполнотой» можно понимать невозможность вывести из базовых правил (аксиом или конституции) все истинные утверждения (теоремы или законы). Неполна даже арифметика, что уж говорить о законах государства! Из теоремы Гёделя непосредственно следует[Не стоит, конечно, эту ссылку на теорему Гёделя понимать буквально; теорема все-таки относится к строго формализованным математическим объектам. – Л. Л.-М.], что ситуации, не описанные в законах, будут существовать всегда. То есть в любой системе управления должен быть заранее предусмотрен механизм обработки нештатных ситуаций. Очень плохо, что об этом не знают безвестные разработчики московской программы.
Ошибка вторая, причинно-следственная. Я не знаю, зачем в России вводится автоматизированная система управления государством, но в любом бизнесе любая АСУ вводится в первую очередь для того, чтобы избавить человека от рутинных операций и поднять производительность труда и, таким образом, увеличить выход продукта либо уволить ставший ненужным персонал. Решения все равно принимает или хотя бы контролирует человек! Этот же человек «разруливает» нештатные ситуации. В примере Горелишвили все пятеро чиновников обслуживают машину, являясь, по сути, продолжением устройств ее ввода-вывода…
Ошибка третья, архитектурная. Кроме реляционных (табличных) СУБД существуют и другие принципы представления данных, например теговые. Даже реляционные СУБД сами по себе не требуют обязательного заполнения полей; с некоторыми оговорками могут обрабатываться даже записи с дублирующимися (неуникальными) первичными ключами (в частности, пустыми)[По крайней мере, внутренние алгоритмы и структуры реляционных СУБД (B*-деревья и хэш-таблицы) это позволяют. – И.К.]. Так что все ограничения при вводе документов в «электронную Москву» придуманы авторами программы, а не присущи всем подобным системам как классу. Наконец, при введении в систему информации, противоречащей уже существующим данным, должна быть возможность выбора, какую из конкурирующих гипотез следует отменить, а также должна быть возможность откладывать этот выбор или делегировать его другому сотруднику.
Ошибка четвертая, бюрократическая. «Принцип одного окна» придуман не для автоматизации государства, а для упрощения жизни клиентам и организациям. В приличном магазине вас не заставят самостоятельно выписывать сборочную накладную, ставить на нее в бухгалтерии штамп «оплачено», нести ее на склад и забирать оттуда товар; для этого есть специальные люди. Вы можете сделать свой заказ по телефону и расплатиться при получении, не выходя из дома. И клиенту проще, и в организации уверены, что посетитель ничего не перепутает, не подделает, не заблудится и ничего по дороге не украдет. По понятным причинам похожий принцип использует, например, ФСБ при оформлении формы допуска к государственной тайне. Если систему «одного окна» удастся более или менее правильно внедрить во всем Российском государстве – это будет несомненный плюс.
Ошибка пятая, темпоральная. В системе, описанной Давидом, данные в машину вводятся только после того, как решение принято. Это напоминает первые версии бухгалтерских программ – изолированных, однопользовательских и убогих. В современных системах, конечно же, данные подшиваются к будущему решению с момента первого обращения заказчика, а собственно «принятие решения» для человека сводится к нажатию одной из нескольких кнопок. После чего (в штатных ситуациях) машина автоматически доделывает все остальные требуемые операции.