Приглашение к разговору
Западная фирма Mindscape, ведущий издатель компьютерных игр, готовит к выпуску свой новый продукт Lego - виртуальную модель знаменитого детского конструктора. Мало того, что оригинальная игра является попыткой сымитировать действительность на детском уровне, так теперь еще эта имитация погружается в виртуальный мир, становясь совсем абстрактным развлечением.
Некоторые весьма амбициозные проекты сегодняшних "системных интеграторов" сильно смахивают на эти игры. Игры в игры. Обещается, что вот-вот будет накоплено необходимое число "кирпичиков", неважно, на каком уровне абстрагирования - в виде компьютерных моделей, деталей Lego или картинок на листочках в клеточку, и готовые решения по автоматизации любых деловых процессов будут как бы генерироваться с помощью этих методологий сами собой. Да и программного кода почти не потребуется, так, процентов 10 от общей ручной работы. Надо будет только нарисовать несколько квадратиков, правильно назвать их - вот здесь "газовый вентиль", а здесь какой-нибудь "нечеткий регулятор", - соединить их дужками, и на этом разработка проекта закончится. Все остальное сделает умная программа при нажатии кнопки "Пуск".
Приведу небольшой пример. Года полтора назад ваш покорный слуга принимал участие в качестве ведущего программиста в разработке проекта по автоматизации американского чугунолитейного завода недалеко от Колумбуса. Вроде бы на стадии проектирования весь узор финального решения довольно красиво складывался из готовых "кирпичиков". Мешал один маленький нюанс. Отдел планирования использовал в своей работе большое, во всю стену табло для ручного распределения нескольких тысяч видов работ по цехам с помощью небольших пластмассовых карточек, на которых фломастером писался код работ и ряд дополнительной информации. Женщины из этого отдела с трудом осуществляли планирование на ближайшие три-четыре дня, хотя прием заказов велся более чем на полгода вперед. Конечно, в такой ситуации ни о какой ручной оптимизации планирования речь идти не могла, несмотря на то, что на заводе имелась старая система хранения и обработки информации на базе 286-х ПК.
Естественно, заказчик очень хотел получить систему грамотного распределения работ, так как даже предварительные прикидки показывали, что минимум 10% рабочего времени тратится на нерациональные простои. Чтобы не вдаваться в излишние подробности, отмечу только, что мы решили сделать систему автоматического планирования, причем чисто математические модели решения подобных задач здесь не подходили из-за слишком большого числа регулируемых параметров и ограничений, выражающихся не в формальной, а в лингвистической форме со значительными элементами полисемии.
В качестве платформы была выбрана Windows NT 3.5 (самая совершенная по тем временам), MS SQL Server 5.0, оболочка разрабатывалась на MS Access/VBA, а "кусок" проекта, отвечающий за оптимизацию, был написан на MS VC++ 2.0.
Наряду с нашей фирмой право реализации данного проекта оспаривала всем известная IBM. Она предлагала готовые решения по автоматизации завода на базе своих компьютеров среднего класса для деловых приложений, причем собирались эти решения из тех же стандартных "кирпичиков", которых, можно смело предположить, Голубой гигант накопил достаточно много. Но нестандартной системы планирования, отвечающей пожеланиям заказчика (то есть моделирующей их огромный настенный календарь-график и при этом способной выполнять множество рутинных операций, начиная от простого перетаскивания мышью работ из цеха в цех с отслеживанием и сохранением всех ограничений на производственный процесс и кончая глобальным перепланированием всего расписания), IBM предложить просто не могла. И в рамках продвигаемой ею методологии не смогла бы! Потому что в подавляющем большинстве проектов по системной интеграции всегда найдутся такие узкие места, которые можно будет эффективно, в соответствии с нуждами заказчика, о которых он, быть может, и сам не всегда подозревает, решить, используя только свои ручки (и голову), а не пытаясь создавать что-то из готовых "кирпичиков". Попробуйте собрать из того же Lego машинку, если в наборе не будет хватать самых важных деталей. Сама идея конструктора в таком случае просто теряет смысл.
В процессе переговоров оказалось также, что вариант, предлагаемый IBM, значительно дороже нашего во всех отношениях, начиная от стоимости оборудования и кончая программным обеспечением. Некоторые московские "системные интеграторы" очень удивлялись, узнав, что мы до сих пор продолжаем использовать пятую версию SQL Server и ряд других немного устаревших продуктов. Но мы экономили в первую очередь деньги заказчика, так как лицензирование клиентских мест для Windows NT и SQL Server стоит денег, немалых даже для американцев.
Если и можно будет рассчитывать в будущем на появление программных компонентов, способных удовлетворить требованиям максимального количества клиентов, то стоимость такого удовольствия будет значительно превосходить решения, полученные "дедовским" способом - обычным кодированием, - может быть, и за несколько более длинный срок, но более полно учитывающие нужды заказчика. Да и сами технологии таких программных конструкторов с разноцветными детальками будут обходиться весьма недешево. Уже сегодня стоимость клиентской части для ряда современных мощных компьютерных систем достигает $8000.
Другое дело, что не всегда разумно использовать и слишком низкоуровневые системы разработки, к которым смело можно отнести, например, паразитирующий на хакерском прошлом России Си++. Но это настоящие системные интеграторы понимают сегодня и без чужих нравоучений.
Сергей Бобровский