Специалисты ЛЕДАСа – об участии компании в создании российского геометрического ядра
Николай Снытников
Алексей Ершов
В какой-то степени оперативному распространению знаний о геометрических ядрах — их назначении, строении, а также об их производителях и основных пользователях — способствует появившаяся только что статья Дмитрия Ушакова «Геометрические 3D-ядра в мире и в России». Напомню еще опубликованную около года назад статью «На ядре» того же автора. Сейчас Дмитрий анонсировал серию статей, в которых планирует рассказать об основных известных на мировом рынке геометрических ядрах, и о том, какими свойствами должны обладать ядра нового поколения.
Я решил, что читателям isicad.ru будет интересно познакомиться с мнением об этом проекте ведущих руководителей и специалистов компании ЛЕДАС. На мои вопросы отвечают Алексей Ершов и Николай Снытников, см. данные о них на сайте LEDAS и в моем блоге. Алексей и Николай, еще совсем молодые люди, прошли уникальную многолетнюю школу активного участия в проектах ЛЕДАСа, в том числе — по разработке собственного геометрического решателя и по разработке не-имеем-права-сказать-чего (объемом-100-человеко-лет) для Dassault Systemes: как в качестве непосредственных разработчиков самых крутых алгоритмов, так и в качестве менеджеров проектов. Алексей, будучи генеральным директором компании ЛЕДАС, поддерживает постоянный контакт с руководителями проекта РГЯ, а также плотно участвует в проекте в качестве одного из главных технологических экспертов. Николай не только выполняет функции менеджера работ ЛЕДАСа в проекте РГЯ, но и участвует в них в качестве ведущего разработчика. Я несу полную редакторскую и прочую ответственность за окончательные варианты содержательных и литературных формулировок, вcтречающихся в тексте интервью.
Сейчас работы идут полным ходом. Мы используем все подходы и процедуры, освоенные нами в многолетних проектах с лидерами мирового рынка. Не буду здесь описывать или напоминать конкретные приемы по-настоящему индустриальной разработки для чрезвычайно требовательного заказчика... Лишь замечу, что самая тщательная проработка алгоритмов и архитектуры программ еще до стадии кодирования, работа с огромной и технологично поддерживаемой тестовой базой, максимальное документирование проекта, эффективное, технологичное и постоянное взаимодействие с заказчиком и т.д. — все это для нас давно стало не внешним требованием, а второй натурой... Случается, что на начальной стадии выполнения работ мы инициативно требуем такой организации проекта от наших заказчиков: бывает, что они даже сопротивляются, но, в конечном счете, всегда высоко оценивают подобную необходимость.
На мой взгляд, в России имеется несколько научных и инженерных школ, уходящих корнями еще в советское прошлое, которые вполне могут потягаться с ведущими мировыми R&D центрами. В частности, наличие в России экспертов и специалистов мирового класса в области разработки наукоемких приложений CAD/CAM/CAE очевидным образом подтверждается успехами российских компаний АСКОН, Топ Системы, ЛЕДАС, ТЕСИС и др., в некотором смысле являющихся наследниками соответствующих советских научных центров. Кроме того, в России есть несколько очень сильных университетских центров с подготовкой в области математики и системного программирования на хорошем мировом уровне. Кстати, замечу, что проект с таким уровнем наукоемкости, технологичности и системной полноты как проект РГЯ — это уникальная возможность подготовки кадров самой высокой квалификации: с моей точки зрения, уже одно это делает инвестиции в проект стратегически оправданными для страны, желающей эффективно развиваться в постиндустриальном направлении.
В работе почти всех наших российских коллективов пока еще присутствуют недостатки маркетинговой составляющей, что препятствует должному наращиванию их присутствия на мировом рынке, но сомневаться в научно-технологической компетенции этих групп не приходится: без всякого сомнения, они могут составить конкуренцию мировым поставщикам любых наукоемких решений, в т.ч. — геометрических ядер. Кстати, в возможностях российских разработчиков уже давно не сомневаются крупнейшие зарубежные ИТ-фирмы, постоянно открывающие и расширяющие в России свои R&D подразделения, а также размещающие здесь свои самые ответственные и сложные заказы.
В частности, все полноценные геометрические ядра (см. таблицу в статье Д.Ушакова), по определению, обязаны иметь и фактически имеют родственную функциональность: например, в этом смысле родственны между собой полноценные автомобили. С профессиональной точки зрения, все они могут считаться функциональными прототипами друг друга.
В науке без (фактически — исчерпывающего) изучения своей темы просто нельзя обойтись. Но там все построено на системе полных публикаций обо всех результатах. Причем, как правило, авторы этих публикаций умеют представить свои результаты, и, в первую очередь, сами заинтересованы в максимальной внятности и полноте публикаций. Ведь в науке, чаще всего, если результат не опубликован, то он и не существует. В области ПО появлению полноценных публикаций препятствуют не только соображения коммерческой конкуренции, но и фактическое отсутствие традиций и умений составления высококачественного описания софтвера. Впрочем, имеются открытые, иногда — классические, научные статьи с описанием фундаментальных основ элементов вычислительной геометрии и релевантных смежных разделов математики. Повторю, что осознание необходимости изучения таких работ и способность их понимания — это обязательный компонент квалификации разработчиков сложных наукоемких проектов.
Вообще, что касается сопровождения сложных ответственных продуктов, мой опыт говорит о следующем. Нужно быть большим и важным клиентом, чтобы запрос стал обрабатываться сразу же; хорошо известны обратные случаи, когда небольшие клиенты ждут месяцами и годами ответа на запросы о разработке дополнительного функционала. (Между прочим, несколько лет назад некое серьезное промышленное предприятие обратилось с предложением о контракте к ЛЕДАСу именно потому, что соответствующий вендор не прогнозировал выполнения в обозримом будущем заказа, остро актуального для этого клиента.) Более того, некоторые проблемы, возникающие в работе пользователей со сложной наукоемкой программой (каковой в высшей степени является геометрического ядро), являются отражением глубоких нерешенных проблем вычислительной математики. Для их исправления нередко необходимо разрабатывать новые специфические алгоритмы, что требует существенных временных затрат.
- формирования точной постановки задачи на основе нечетких запросов пользователей,
- реализации и проведения экспериментов с разными алгоритмическими подходами, причем, большая часть из этих подходов неизбежно была заменена впоследствии на более совершенные,
- дальнейшего уточнения/развития спецификаций и соответствующей модификации алгоритмов.
К словам Николая о сопровождении сложных программ, добавлю, что параметры их разработки в еще большей степени, чем параметры сопровождения, связаны со слухами, природа которых двоякая. С одной стороны, это — полусознательный маркетинг, подчеркивающий крутизну фирмы-разработчика и ее потенциальный монополизм. С другой стороны, это явно недостаточные представления людей о характере и специфике разработки реально сложных наукоемких продуктов.
Давайте осознаем, что геометрическое ядро — это хороший пример продукта, относительно которого вообще не вполне корректно говорить о том, что «его разработка будет завершена к такому-то числу или месяцу». Да, можно и необходимо говорить о вводе в эксплуатацию начальной версии, о параллельном функционировании в приложениях нового и старого ядра, об эффективном использовании постепенно вводимых в разнообразные программные обстановки и приложения тех или иных компонентов создаваемой системы. Вместе с тем, геометрическое ядро по своей сути проходит длительный жизненный цикл развития и внедрения с весьма существенной обратной связью со стороны использующих его приложений. Длительный цикл развития ядра на основе такой обратной связи никак нельзя трактовать как устранение недоработок или как обычную отладку: напротив, к программным системам такого уровня сложности должна быть сознательно и в полной мере применима методология и технология управления жизненным циклом программного продукта (Application Lifecycle Management, ALM), по смыслу вполне сопоставимая с PLM.
Источник.