Найти в Дзене
alik-sumin

интервью с Максимом Нечипоренко (Renga Software)

Это интервью с Максимом Нечипоренко (заместитель генерального директора Renga Software) было записано в ноябре 2016 года специально для готовящегося онлайн курса по информационному моделированию зданий . На мой взгляд интервью получилось слишком интересным, чтобы оставлять его лишь в рамках курса, поэтому публикую его здесь:

изображение с сайта http://rengacad.com
изображение с сайта http://rengacad.com

- По сравнению с конкурентами, Renga выглядит очень хорошо с технической точки зрения. Как удалось достичь такой скорости работы программы и какие технологии использовались при создании Renga?

- Я бы сказал, что это чудо (
смеется). Но чудеса, если и бывают, то очень редко, за всем этим стоит долгий и упорный труд, включая постоянные доработки. Проект начинался около 5 лет назад, в то время долго велись исследования на тему выбора компонентов для старта работ. Перед нами стояла задача создать продукт нового поколения, такой, которого еще не было на рынке, с идеями, которые бы привнесли что-то новое, интересное и полезное для пользователей. Была выбрана целевая аудитория – проектировщики в области промышленного и гражданского строительства, затем сформулированы задачи, связанные с трехмерным объектным проектированием, после чего именно под них мы и начали исследовать компоненты.
Одним из важнейших компонентов является математическое ядро. До того, как мы приняли решение о создании Renga, в недрах АСКОН был еще один исследовательский проект по созданию CAD нового поколения. Несмотря на то, что у нас было собственное ядро, на котором написан КОМПАС-3D, перед нами стояла задача исследовать рынок. Проводились масштабные исследования ядер, которые используются в других CAD и которые можно лицензировать. Мы искали что-то еще более эффективное то, на чем можно будет разрабатывать что-то более современное. Провели исследование, и пришли к выводу, что наше ядро довольно хорошее, даже стоящее. Интересным моментом оказалось то, что как только запустился проект C3D Labs (проект компании АСКОН по развитию ядра геометрического моделирования C3D
http://c3dlabs.com/ru/ прим. ред.), это ядро стало лицензироваться другими разработчиками, в том числе внешними, у нас и шведские и корейские заказчики появились. В итоге было принято решение, что Renga тоже будет на этом ядре.
Дальше смотрели варианты для отрисовки модели, исследовали компоненты уже готовые, такие как REDWAY3D (
http://www.redway3d.com/ прим. ред.), например, - это прослойка внутри OpenGL. Хорошее решение. Кроссплатформенность и взаимодействие, позволяет дистанцироваться от сложности работы непосредственно с OpenGL. А ведь это всегда было одной из сложных проблем- создать внутри OpenGL или DirectX средства и инструменты, которые позволяли бы визуализировать модель. И, снова, долгие и упорные исследования, не сильно ошибусь, если на протяжение полугода делались попытки, макеты, тестирования – не получалось, ломалось, падало, и в результате мы остановились на том, что будет DirectX, даже не OpenGL.  DirectX оказался более производительным и стабильным на разнообразии видеокарт. И самое удивительное, что в сочетание с DirectX был выбран интерфейсный компонент Qt (https://www.qt.io/ide/ прим. ред.). Когда мы обращались в техподдержку Microsoft, нам сказали: «Ребята, вы сумасшедшие (смеется) – такого сочетания не может быть» - но, ничего, у нас получилось. Несколько лет упорных исследований и внесения изменений, отказ от того, что не получалось. Несмотря на это, мы до сих пор занимаемся оптимизацией и повышением производительности, чтобы достигать того впечатляющего результата.

-
Новый продукт не может обходиться без новых идей. Как в команде Renga генерируются эти идеи, существует специальная группа или может быть один человек задает направление развития?

- Здесь много интересных моментов, и получается, что я буду открывать тонкости разработки.
У нас принята концепция Agile (
https://en.wikipedia.org/wiki/Agile_software_development прим. ред.), у каждого в команде есть своя роль, есть владелец продукта (Product Owner прим. ред.) в терминах Agile, есть Product manager, есть Scrum Master (https://en.wikipedia.org/wiki/Scrum_(software_development)#Scrum_Master прим. ред.) Направление «по-крупному» мы определяем с точки зрения бизнес задач и удовлетворения потребностей определенных потребителей, их мы уже определили на начальном этапе проекта. Однако, иногда все равно приходится конкретизировать, в какую сторону идти в первую очередь, с чего начинать. Например, решили начать с архитектурного модуля. За это решение несут ответственность два человека: Product Manager и Product Owner. В нашем случае Product Manager это я, а Product Owner это наш ведущий аналитик, руководитель разработки проекта Renga - Илья Маз. Именно наши с ним рассуждения и размышления на тему, что было бы правильнее, с чего начать, привели к решению, что начинаем с этого направления (с модуля Архитектура прим. ред.). Что касается конкретных технологических решений и идей, которые получаются уже в виде функционала продукта, то тут безусловно важна роль аналитика, Product Owner'а. Нельзя не отметить, что команда также в этом участвует. Процесс устроен так, что идет постоянный диалог между программистами, тестировщиками, аналитиками. И это, отнюдь, не скучное написание технического задания на бумажке, которое придумывает аналитик, это именно постоянное обсуждение группы, даже нескольких групп, потому что наши разработчики распределены небольшими командами, которые берут ту или иную задачу в реализацию. А вот какие из задач взять в работу решает Product Manager. У нас есть и Marketing Manager, который путешествует по городам и весям, общается с пользователями, получает обратную связь и привносит ее в проект. Вся полученная информация собирается, обсуждается, но окончательное решение за Product Owner'ом. Окончательные идеи, которые выливаются в реализацию – это его заслуга, или их, аналитиков.

-
А вообще команда большая, сколько человек примерно, сколько групп?

- Сейчас в коллективе у нас 36 человек – это программисты, тестировщики, аналитики, технический писатель, есть один дизайнер, административная часть и те, кто занимаются продвижением: два маркетолога и методист, который создает обучающие материалы. Кстати, про материалы, мы стараемся публиковать всё в открытый доступ, у нас появился раздел на сайте дистанционного обучения http://edu.sd.ascon.ru/ . И мы планируем, что наша команда увеличится примерно в два раза за ближайшие полтора-два года. Сейчас активно набираем программистов со знанием C++.

стартовый экран Renga Architecture
стартовый экран Renga Architecture

- Какие конкретные инновационные идеи уже внедрены в Renga?

- Можно начать с технических нюансов, и вроде бы небольших моментов, которые, на наш взгляд, помогают пользователям.
Например, то что мы называем многомониторность. Это возможность работать с окнами продукта, перетаскивая закладки каждого из родительского окна Renga на второй монитор, такое поведение сейчас нормально поддерживают только браузеры Chrome, Mozilla, Edge. В САПР до этого не было замечено такой функции, но в результате исследования мы увидели, что это очень полезно, когда есть окно трехмерной модели и окно двухмерного вида этой модели на определенном уровне на другом мониторе, при этом, твои действия по редактированию модели в одном окне видны в других окнах (на другом мониторе). Вот это удобное и интересное решение, которое мне очень нравится, я уже привык работать с двумя мониторами, не мыслю себе по-другому.
Еще один интересный момент, связан с концепцией работы непосредственно на трехмерной сцене – это тоже важная ключевая вещь, которую мы выбрали, как одну из основополагающих идей продукта. Все, что должен делать пользователь, он может делать без каких-либо оговорок на трехмерной сцене, все инструменты доступны: создать, отредактировать, выделить, скомпоновать, разместить и прочее. И тут открывается масса нюансов как обеспечить комфортную работу пользователя именно на трехмерной сцене. Есть такой нюанс, как «точка интереса» - это то место, куда как бы смотрит пользователь, когда работает с моделью, мы вычисляем эту точку, и вращение модели происходит именно вокруг нее. Также у нас есть режимы навигации, заточенные под взаимодействие с так называемыми 3D мышами или 3D манипуляторами
http://www.3dconnexion.ru/ .
И еще момент, это наш подход работы со стилями, графическими стилями, взамен шаблонных библиотек, которые еще называются экземплярными справочниками. Мы иллюстрируем отказ от таких экземплярных справочников в пользу параметрических стилей, которые мы предлагаем пользователю. Не прибегая к помощи системного администратора или специалиста, пользователь может создать элемент в контексте работы над своим проектом. Казалось бы, зачем нам это, в то время, когда нас окружает огромное количество библиотек, интернет-библиотек, библиотек, поставляемых вместе с САПРами. Но что мы видим? Как строится процесс проектирования? Возникает масса элементов, которых не найти ни в онлайн-библиотеках, ни, тем более, в дистрибутивах разработчиков, и возникает трудоемкая задача по созданию этих новых элементов. Мы хотим минимизировать затраты труда и наш подход к работе со стилями позволяет это сделать. Пользователи отмечают, что получается довольно хорошо.
Отмечу также размер файла проекта. Даже несмотря на то, что здание в проекте может иметь 20-30 этажей, размер файла получается немногим больше 1 mb. Чуда здесь нет, я раскрою секрет фокуса: внутри файла проекта Renga не лежат трехмерные тела, в отличии от других известных CAD систем, что как раз и приводит к тому, что файл становится небольшим. В наших файлах тел нет, есть описание, и, в момент открытия проекта, этот проект, можно сказать, отстраивается. Сам файл – это по сути некая, схожая с xml структура, которая описывает проект, а также из чего он состоит: размещение объектов относительно друг друга, правила взаимодействия, поведения и т.д. Это хорошо еще и тем, что внутреннее содержания файла проекта достаточно открыто и прозрачно, можно получить доступ к описаниям объектов, и это дает нам такую полезную вещь, как легкость передачи файлов через локальные сети, интернет.
Опять же, интересный момент, про производительность, тут можно апеллировать к опытам тестеров, они проводят эксперименты, пробуют наш инструмент и делают замечания, в том числе о недостаточности функционала. Также от них мы получаем много положительных отзывов о производительности системы. Здесь всё вместе, и то, что мы большую часть вычислений в процессе работы с открытым файлом отдаем на видеокарту, и то, что мы не особо требовательны к ресурсам самой видеокарты. Например, мы не требуем покупать дорогую видеокарту, достаточно игровых GeForce. Понятно, что чем больше мощность видеокарты, тем дольше можно с комфортом работать с большим проектом. Процессоры мы также задействуем, многоядерность мы любим, в процессе установки продукта мы проверяем можем ли мы работать в многоядерном многопоточном режиме, и этот режим включаем, либо не включаем, в отличии от других продуктов, где это надо включать специальными механизмами, и это тоже добавляет нам скорости, производительности. Объективности ради надо сравнивать, прибегая к замерам FPS. У нас, кстати, есть встроенный измеритель FPS (для его запуска нужно использовать сочетание клавиш ctrl+Ё).

-
Можно ли сказать, что концепция Renga уже окончательно устоялась и ждать кардинальных изменений в принципах работы программы уже не стоит?

- И да, и нет. Базовые подходы, концепция продукта, стратегия развития – они определены и записаны в плане, согласованном советом директоров совместного предприятия АСКОН и 1С. Поэтому, на этом уровне, тяжело представить, что мы как-то поменяем концепцию. С точки зрения технических решений, которые реализуются в рамках этой большой стратегии, изменения будут всегда. Опять же, наш подход к разработке, который мы выбрали - быть гибкими, реагировать на те комментарии, запросы и задачи, которые приходят от пользователей, естественным образом подталкивает нас к тому, чтобы изменения появлялись. Безусловно, проверка этих изменений и решений идет постоянно, чтобы не навредить уже существующим пользователям. Например, может быть ситуация, когда изменение влечет за собой изменение формата файлов. А большая концепция, стратегия вряд ли будет меняться кардинально, хотя и здесь возможны варианты. Предположим, приходит стратегический заказчик и говорит: мне нужно, чтобы в первую очередь появились вот такие разделы, разработка которых у нас не была приоритетной, и руководство принимает решение выполнить задачу заказчика. Я допускаю, что такое возможно, но это должно быть весьма веское основание, или весь рынок встанет и проголосует: нам нужно вот это!

-
Renga позиционируется, как продукт с низким порогом входа для новых пользователей. Это должно стать еще одним преимуществом перед конкурентами, но не существует ли опасности, что и Renga окажется со временем сложной неповоротливой программой, перегруженной функциями?

- Риск такой есть, и его нужно принимать в расчет, с ним нужно работать, и мы это делаем. Делается это через постоянную проверку на усложнение интерфейсных подходов. За последние 1,5 года прирост функциональности в Renga значительный, и сказать, что интерфейс усложнился сейчас нельзя. Может быть это еще небольшой промежуток времени, но мы будем строго за этим следить. Уже есть конкретные примеры, когда функциональность сделана, она проверяется и аналитики принимают решения, что надо переделывать, потому что надо делать проще и удобнее. Опять же, правильное замечание о низком пороге входа для новых пользователей, а это значит, что какие-то вещи, которые связаны с более сложными задачами могут быть в интерфейсе, и будут появляться по необходимости, когда уровень специалистов Renga будет повышаться. Мы же помним, что Renga – это слово из японского языка, и, соответственно, когда пользователь придет к более серьезному цвету пояса, ему откроются новые возможности.

изображение с сайта http://www.1csoft.ru/
изображение с сайта http://www.1csoft.ru/

- На данный момент в Renga могут работать архитекторы и инженеры- конструкторы, в следующем году нас ожидает выход Renga MEP. Какие еще разделы возможно будет выполнять в Renga в будущем? Наверное, после новости о сотрудничестве Renga и 1С, многие ждут полноценных смет, полученных из BIM модели.

- Сейчас у нас запланированы три продукта, которые мы создаем и развиваем: Renga Architecture, Renga Structure и Renga MEP. Архитектура будет развиваться в сторону сложных форм. В конструкциях мы будем развивать два направления - железобетон и металлоконструкции. В инженерных системах мы, в первую очередь, займемся отоплением и вентиляцией, первый релиз намечен на 2018 год. Что касается появления других разделов и нашего взаимодействия с 1С, то мы понимаем, что наши ресурсы имеют определенные ограничения, поэтому хвататься сразу за все было бы не разумно с нашей стороны. Нашей концепцией определено, параллельно с созданием нового функционала, развитие API. Это нужно для того, чтобы внешние разработчики могли прийти в нашу среду и создать те специализированные разделы, которые окажутся востребованы в гражданском и промышленном проектировании. Они даже могут вступать в какую-то конкуренцию с нашими базовыми инструментами. Для нас это будет еще одним аргументом, чтобы прикладывать больше усилий к реализации собственного функционала. Иллюстрацией к чему это может привести, может послужить наше взаимодействие с коллегами разработчиками из АВС (http://abccenter.ru/ прим. ред.), которые сделали приложение, в терминах Renga. Это расширение, которое может добавить в нашу информационную модель сметные свойства, и, по большому счету, может оказаться новым рабочим местом сметчика. Это приложение привносит все необходимые свойства и коэффициенты, которые сметчик должен назначить тому или иному элементу, мы же, со своей стороны, дадим расчетные характеристики, которые тяжело получить с чертежа, а иногда и с трехмерной модели. Непосредственно тут идет взаимодействие на уровне API, где есть доступ к расчетным характеристикам: объемам, площадям поверхностей и другим полезным свойствам, которые будут доступны для сметчика и которые раньше невозможно было нигде получить. Если продолжать дальше мысль о взаимодействии с 1С, то здесь планируется более комплексный подход. Мы начали работу по созданию смет, 1С Cмет, внутри модели Renga. Все это дальше будет интегрироваться и взаимодействовать с другими блоками и компонентами, которые есть в комплексном решении 1С, а это: управление строительной организацией (УСО), блок управления недвижимостью, система управления проектами. Мы должны будем предоставить свою информационную модель на все эти разные, но очень важные этапы жизненного цикла здания, тем самым, создавать настоящий BIM. В обозримом будущем мы должны добиться результата именно в сметных задачах, что позволит нам приступить к другим направлениям. Кроме этого, мы постоянно открыты к взаимодействию с различными технологическими партнерами и будем выстраивать эту работу, будем привлекать профессиональных разработчиков. У нас есть давние партнерские отношения с разработчиками расчетных систем, также есть давние партнерские отношения с компаниями, занимающимися разработкой систем, которые связаны с генпланами, геодезией, геологией. Что-то мне подсказывает, что кто-то из них точно напишет расширения, но не подумайте, что это обещания (смеется). Нет четких договоренностей на этот счет – это пока мои мечты и желания. И есть еще одно направление –то, что принято называть open source. Мы, с развитием API, подготовили полезное расширение – обозреватель модели: дерево модели, которое позволяет кликнуть на тот или иной элемент в самой модели и увидеть, что он из себя представляет, на каком уровне находится, то есть вся эта атрибутивная часть появляется из дерева модели, это и иллюстрация доступа к различным отчетным характеристикам элемента и позиционирование, и навигация. Задействовано очень много программных возможностей и все это сделано в виде расширения Renga. Оно опубликовано на github (https://github.com/RengaSoftware/ModelExplorer прим. ред.) в виде открытых исходных кодов. Более того, оно размещено под лицензией MIT, а эта лицензия позволяет разработчику, который придет на github и заинтересуется развитием этого открытого проекта, использовать его и в коммерческих целях. Мне кажется это интересный способ взаимодействия с сообществом и способ развития функциональности продукта. Есть пока объективное технологическое ограничение, что писать под Renga могут только те, кто знает язык C++, просто мы сами ведем разработку на этом языке. API будет развиваться, и я уверен, что мы добавим возможность разрабатывать на других, более высокоуровневых языках, которые более распространены, однако, пока ситуация именно такая.

-
Команда Renga ориентирована на российский рынок или же существуют серьезные планы по захвату мира?

- Конечно, у нас разработан план по захвату мира, чего уж там мира – Вселенной. Если серьезно, то мы создаем Renga изначально так, чтобы её можно было выпускать на международный рынок. Первоочередными для нас, являются страны, находящиеся территориально ближе к России, хотя есть еще интересы посмотреть на Восток.

-
Китай?

- Скажем так, Китай – сложный регион. Сейчас же Renga пишется на двух языках, точнее получается на двух языках, то, как она пишется – это другой вопрос, но выпускается сразу в двух языковых интерфейсах (русский и английский прим. ред.). У нас также есть взаимодействие с партнерами по локализации на украинский и польский языки. Обсуждаем локализацию на немецкий язык, соответственно ориентация наша не только на внутренний рынок СНГ, хотя именно здесь мы безусловно прикладываем максимум усилий. Мы стараемся, чтобы наш продукт не просто подстраивался под требования стандартов, мы ищем оптимальные взвешенные решения, чтобы полностью соответствовать нашим (российским прим. ред.) подходам к проектированию и соблюдать все особенности и нюансы разработки проектной и рабочей документации в соответствии с СПДС. Есть масса интересных нюансов, которые связаны с противоречиями подробной трехмерной модели и упрощенной документацией, которая должна получаться по нашим правилам и требованиям, мы с этим боремся. Но мы стараемся быть универсальными там, где это возможно. Например, очень часто пользователи обращают внимание на обозначение высотных отметок в пространстве модели. Говорят, у вас тут не по СПДС, не по ГОСТу. А я задаю вопрос, где в ГОСТе написано, что обозначения именно в трехмерной модели как-то регламентируются, у нас есть обозначения в чертежах, там прописаны все размеры стрелочек и т.д., а в модели мы выбираем обозначения функциональные, они выглядят может быть не привычно с точки зрения оформительской документации, однако, там не оформление, там идет функциональное наполнение нужными нам элементами. Так что стараемся найти компромисс. Когда пользователь установит Renga на англоязычную операционную систему, кстати важно, что пока только Windows, у него автоматически будет англоязычный интерфейс Renga, ничего не надо будет переключать. Но если он захочет разговаривать с Renga на другом языке, то ему надо будет установить соответствующую локализацию.

-
Что касается российского рынка, кто по вашему мнению возможный основной потребитель Renga? Ведь не секрет, что с одной стороны, в России очень многие до сих пор работают в 2D, и эти люди скептически относятся к инновациям, а с другой стороны, существуют сообщества продвинутых пользователей, работающих на очень высоком уровне, и им молодой продукт может показаться недостаточно функциональным. Что говорят ваши аналитики об этой ситуации и как они её видят?

- Действительно, проектировщиков, которые работают в двухмерном пространстве, чертят, именно чертят, а даже не объектно проектируют в 2D, сейчас, как мы считаем, около 80% среди общего числа пользователей. В оставшихся 20% встречается использование объектного проектирования в соответствии с концепцией технологии BIM, однако, и там нет 100% применения и использования технологии, то есть, она применяется, но не во всех разделах. Те, кто работают в 2D первыми почувствуют преимущества трехмерного проектирования, и для них переход в это трехмерное пространство будет не страшным, безболезненным что ли. Сейчас мы уже наблюдаем, как пользователи относятся к такому переходу, что у них получается, когда они только начинают пробовать, когда осваиваются и когда начинают выдавать уже какие-то результаты. Что касается более продвинутых пользователей, то, опять же, все зависит от степени продвинутости, но да, мы объективно понимаем, что в объеме функционала мы не можем пока конкурировать, мы еще недостаточно поработали. Однако, не все решается именно объемом функционала, очень часто мы принимаем такие технические решения в продукте, которые избавляют нас от создания целого ряда дополнительных команд. Мы находимся в выгодной позиции, мы можем проанализировать технические решения, которые были реализованы в разных продуктах, и сказать, что было сделано не так, откуда пошло вот это развитие функциональности, и, можем выбрать альтернативный вариант. Набор таких альтернативных решений, когда он доходит до продвинутого пользователя, довольно часто вызывает интерес. Например, всеми, и мной в том числе, очень уважаемый, продукт Archicad. Продукт с огромной историей, с большим объемом функциональных модулей, однако, когда мы показываем пользователю Archicad наши возможности, то эти уверенные пользователи Archicad'а берут в руки Renga и начинают создавать проекты отнюдь не простых форм. Так что, не питая иллюзий о большом количестве пользователей из стана опытных, мы рассчитываем на хорошую реакцию, приём нашего продукта теми пользователями, которые сейчас работают в двухмерном пространстве, а с опытными пользователями BIM систем мы стараемся выстраивать диалог для того, чтобы разобраться, а какие же функциональности, которых у нас сейчас ещё нет, стоит сделать в первую очередь, чтобы их удовлетворить. Работая с тем или иным специалистом или предприятием выявляется узкий блок задач, и он вполне по силам в реализации в ограниченном промежутке времени, а, учитывая, что мы будем выпускать квартальные релизы с добавлением новой функциональности, я считаю, что этот подход нам позволит привлекать на свою сторону и таких опытных пользователей.

вопросы и примечания редактора - Альберт Сумин, за содержательные ответы большое спасибо Максиму Нечипоренко.