КОЛОНКА ОБОЗРЕВАТЕЛЯ
Милое сообщение об ошибке "Game Over" в первых числах июля получили тысячи пользователей единой государственной автоматизированной информационной системы учета алкогольной продукции (ЕГАИС, www.egais.ru). Она была запущена в промышленную эксплуатацию, хотя правительство не согласовало техническое задание (ТЗ) на ЕГАИС (см. например, "Коммерсантъ" N 134/06, "Правительство не обнаружило ЕГАИС в своих документах"). Согласно постановлению N 873, это ТЗ, в частности, должно было пройти этап утверждения в ФСБ и лишь затем поступить в организацию-исполнитель (им стало ФГУП "НТЦ "Атлас" ФСБ России"). Однако эта цепочка из-за внутриведомственных разногласий не была соблюдена, и в результате самодельная разработка, на которую, по словам руководителей "Атласа" в интервью НТВ, бюджетные деньги вообще не выделялись, парализовала работу рынка спиртосодержащей продукции (включая товары бытовой химии и парфюмерии).
Сама по себе задумка ЕГАИС замечательна. В зависимости от региона количество контрафактной алкогольной продукции составляет от 30 до 60%, а ЕГАИС позволяет отслеживать движение соответствующих товаров практически в реальном времени. Каждый производитель, импортер или оптовый торговец обязан установить у себя клиентский комплекс системы. Все манипуляции с товаром заносятся в систему, которая также автоматически сканирует штрихкод произведенной или полученной на складе продукции и передает данные в центральную базу. Сведения защищает специальный криптографический модуль. Теоретически с помощью такого решения можно почти мгновенно проверить каждую бутылку в любой торговой точке, магазине или палатке. Для этого достаточно считать ее штрихкод ручным сканером, связаться с местным центром и сразу же получить исчерпывающую справку - "паленый" товар или нет.
Как обычно, подкачала реализация. Комплекс ЕГАИС обходится пользователю примерно в 300-500 тыс. руб. (www.it-daily.ru/?ID=604661), и еще около 30 тыс. руб. по никому не ведомым обоснованиям (вице-премьер Александр Жуков потребовал, чтобы с ценами на услуги ЕГАИС разобралась Федеральная антимонопольная служба) приходится ежемесячно выкладывать за ежемесячное сопровождение, которое осуществляет государственная организация с ограниченными ресурсами. Увы, в момент общероссийского запуска в ЕГАИС выявилось множество недоработок. Практически все они типичны и хорошо понятны любому участнику корпоративного проекта автоматизации, который выполнялся без четко сформулированных проектных требований. Разработчики с замашками студентов начальных курсов перемешали в недоделанном до конца интерфейсе русские и английские термины, ввели слова "Game Over" в качестве сообщения об ошибке, сдали неработающие экранные формы, в руководстве пользователя употребили неведомые рядовому специалисту словосочетания наподобие "сортировки строк грида" или "мультиселекта записей" (см. например, документацию, доступную на сайте www.atlasnw.ru питерского отделения "Атласа").
Причины всех недоделок ЕГАИС можно разделить на четыре большие группы:
- слабое проектирование архитектуры системы;
- наплевательское отношение к пользователям;
- отсутствие этапов нагрузочного тестирования и опытной эксплуатации;
- непонимание важности работы по нормализации (исключение дублирующих сведений) и денормализации (аккуратного введения информационной избыточности для повышения общей производительности) БД.
Об отношении к пользователям говорят и неработающие кнопки, и пресловутое "Game Over", и отсутствие информативных сообщений в процессе загрузки справочников, и уровень подготовки документации. Хотя "Game Over", похоже, становится традиционным развлечением российских программистов - известны, например, отечественные версии софта для формирования налоговой отчетности, выдававшие вообще непечатные сообщения.
Неудачно спроектированным системам присущи высокие сложность и стоимость модернизации, развития и масштабирования. |
Пропуск этапа нагрузочного тестирования привел к тому, что 1 июля тысячи пользователей ЕГАИС безуспешно пытались подключиться к серверу своего регионального центра. Подключение выполнялось по обычному модемному соединению (Интернет есть далеко не у всех) по TCP/IP-протоколу, но для обслуживания клиентов даже в крупных городах едва ли набирался десяток входных линий. При этом цикл взаимодействия подразумевает перекачку полного содержимого справочников по всем компаниям и всем наименованиям, даже если в них модифицирована всего одна запись. Процесс загрузки десятка мегабайтов никаким визуальным индикатором не иллюстрировался, и пользователю приходилось гадать, как скоро он завершится.
Сами справочники по производителям, торговцам и номенклатуре создавались в неразберихе и сразу несколькими организациями - в итоге один и тот же товар, например, может отображаться в системе сразу несколькими записями. А ведь согласно мировой статистике, в 70% случаев причиной провальных ИТ-проектов становились именно некачественные, ошибочные или устаревшие данные.
Сегодня в систему внесены определенные изменения - исправлены наиболее серьезные ошибки, увеличена мощность серверов в центрах, удалено сообщение "Game Over" и т. д. На местах "самоделкиным" удается вручную настраивать систему - ряд ее функций доступен в виде хранимых процедур СУБД Microsoft SQL Server. Но, по оценкам экспертов Международной академии виноградарства и виноделия, из-за неразберихи и резкого спада продаж бюджет страны уже недосчитался нескольких миллиардов рублей. Хотя, с другой стороны, по данным главного государственного санитарного врача России Геннадия Онищенко, в результате этого кризиса заметно снизилась смертность от отравления алкоголем (например, в Москве - на 22%).
Причина провала ЕГАИС была вполне предсказуема. О возможной неудаче заговорили еще год назад, когда только был принят Федеральный закон N 102-ФЗ, формально призванный навести порядок на алкогольном рынке. За разные составляющие системы отвечали и Минэкономразвития, и Минсельзох, и Минфин, и ФСБ, и таможня, и налоговики, а работать с ней должны одновременно представители разных отраслей - и производители, и импортеры, и оптовые продавцы. ЕГАИС сама по себе весьма сложная программно-аппаратная система, масштабный проект АСУ, который надо было сделать менее чем за год, с нуля и в условиях постоянного изменения требований.
Последнюю точку в неудачном проекте поставили пользователи, которые тянули с внедрением комплексов на своих рабочих местах до последнего дня. Причина понятна - опыт внедрения подобных ИТ-систем и понимание сложности и всех подводных камней этого процесса имелся у единиц из тысяч клиентов ЕГАИС. Впрочем, даже те предприниматели, кто подсуетился заранее и настроил у себя рабочие места ЕГАИС еще весной, были вынуждены в июне спешно все переделывать - требования к системе в очередной раз изменились и была выпущена новая версия...
К долгоиграющим негативным эффектам подобных проектов относятся высокие сложность и стоимость модернизации, развития, масштабирования, присущие неудачно спроектированным системам. Решения с исходно плохой и непродуманной архитектурой, запутанной менявшимися или нечетко сформулированными требованиями, крайне трудно совершенствовать. Учет любого нового пожелания выливается в месяцы труда программистов и в условиях "горячей" эксплуатации приносит новые ошибки. К сожалению, далеко не всегда удается заранее подготовить полный и неизменяемый список требований (впрочем, на подобные ситуации рассчитаны проектные agile-методики), поэтому при создании национальных систем, затрагивающих интересы целых отраслей, желательно как минимум поставлять финальный продукт в исходных текстах. Достаточно закрыть от просмотра лишь модули, ответственные за безопасность. Ведь даже простой доступ к хранимым процедурам в ЕГАИС позволил более-менее продвинутым пользователям решить немало проблем. А самый правильный способ - публикация стандартного набора интерфейсов к серверам центра и передача права на создание клиентских модулей ЕГАИС всем производителям ПО. Пусть государство занимается сертификацией, а цены регулирует рынок!
Причинами массовых ошибок в корпоративном софте являются не слабые программисты, а непродуманные исходные требования. |
Возможно, создатели ЕГАИС переоценили свои возможности. На счету НТЦ "Атлас" - немало крупных и успешных проектов: информационные системы для Госдумы, Совета Федерации, Счетной Палаты, Верховного и Конституционного судов, Федерального казначейства, Министерства финансов, Ситуационного центра Президента РФ! Почему же неудача постигла ЕГАИС? Одна из серьезных проблем проекта - это необходимость внедрения сложной программно-аппаратной клиентской системы по всей стране во множестве различных организаций, нередко вообще мало знакомых с ИТ. Выполнить такое специфическое внедрение своими силами вряд ли реально, число наладчиков "Атласа" ограничено, да и что они могли сделать, если система плохо спроектирована (а по-другому и не могло быть в условиях отсутствия ТЗ)?
Одна из основных причин неудачи с ЕГАИС также связана с кадровой проблемой (см. PC Week/RE, N 28-29/2006, с. 26). Сложными проектами должны управлять опытные высококлассные ИТ-менеджеры, способные добиваться успеха в условиях неразберихи, - увы, таких пока в России нигде целенаправленно не готовят. Нельзя браться за проекты, руководствуясь принципом теоретической масштабируемости - удалось автоматизировать за месяц 100 рабочих мест в локальной сети, значит, получится создать за 10 месяцев комплекс на 1000 клиентских подключений по всей стране. Но с масштабом нелинейно растет не только число ошибок в системе, но и уровень их сложности - возникает множество ранее неизвестных технологических и организационных нюансов, которые можно предвидеть лишь на основании практики внедрений такого же уровня.
В качестве контрпримера можно привести немало крупных проектов автоматизации социально важных областей, которые не вызвали массового недовольства. В частности, умно организована автоматизация московского ЖКХ, охватывающая более сотни столичных районов. Только техническое задание создавалось и согласовывалось полгода (!), после чего каждый расчетный центр в течение трех месяцев готовился к переходу на новую систему компьютерного учета, а сам переход прошел за сутки! Но и после перехода система еще полгода испытывалась в режиме опытной эксплуатации. Ход внедрения ЕГАИС - полная противоположность этому образцовому примеру.
В начале августа история с ЕГАИС приняла и вовсе неожиданный оборот. Северо-Западный альянс участников алкогольного бизнеса решил подать на "Атлас" в суд для получения компенсации за убытки с авторов реформ. Но "Атлас" - не реформатор, а лишь конечное звено в межведомственной бюрократической цепочке! Просто его "продукт" оказался материальным воплощением длинной последовательности ошибочных управленческих решений, которые были ничуть не качественнее самой ЕГАИС. И уж если требовать компенсации, то со всех участников этой цепочки. Причинами массовых ошибок в корпоративном софте являются не слабые программисты, а непродуманные исходные требования.
В мировой практике известны случаи, когда пользователи программ, обнаружив в них ошибки, подавали на авторов в суд. К счастью, выиграть их не удавалось никому, иначе ИТ-отрасль уже давно прекратила бы существование. Создание ПО - процесс крайне сложный и не поддающийся формализации. В отличие от промышленных или строительных проектов, где многие характеристики объектов измеряемы, а новые проекты базируются на типовом проверенном многолетнем опыте, в программировании чуть ли не каждая система создается с нуля, поэтому невозможно гарантировать ее безошибочность. В странах с развитой индустрией ПО к проблемам разработчиков относятся с пониманием. Так, 9 августа министерство внутренней безопасности США распространило рекомендацию всем государственным и коммерческим структурам о необходимости скорейшей установки "заплаты" для Windows (www.dhs.gov/dhspublic/display?content=5789). Очередная ошибка в популярном программном продукте позволяет хакерам незаметно брать ОС под дистанционный контроль. Из-за системного дефекта под угрозу фактически была поставлена национальная безопасность Америки - Windows используется в США повсеместно, в частности в правоохранительных и военных структурах. Однако никто не собирается подавать на Microsoft в суд. Но в западных странах действует порядок, минимизирующий подобные риски. В частности, подрядчики, выполняющие госзаказы, обязательно должны иметь сертификат, подтверждающий способность компании обеспечить некий приемлемый уровень качества ПО (например, по модели зрелости программных процессов CMM или стандарту ISO). Такая практика необходима и для России, где тем временем готовятся очередные эпические ИТ-проекты, схожие с ЕГАИС, - от паспортно-визового контроля и учета аудио- и видеопродукции до автоматизации лекарственной и табачной отраслей. Уважаемые читатели PC Week/RE, срочно бросайте курить!
Адрес автора: sbo@pcweek.ru.
P. S. Интересующиеся текущим состоянием проекта ЕГАИС могут почитать форум разработчиков и пользователей на сайте налоговой службы РФ: www.nalog.ru/forum/index.php?showforum=104.