Легко ли сделать собственную систему бизнес-моделирования?

Общаясь с заказчиками я уже не первый раз слышу следующую мысль: «Лучше мы сами для себя разработаем систему бизнес-моделирования, которая будет полностью соответствовать нашим требованиям». Скорее всего, люди, которые так думают, не представляют на самом деле сложность программного обеспечения такого уровня, для них система бизнес моделирования выглядит примерно так: рисовалка процессов + генератор отчётов.

В этой замете я расскажу, как устроена система бизнес-моделирования изнутри на примере Fox Manager 2.5 BPA. Некоторые люди ошибочно считают нашу программу простой, предполагая, что за удобством интерфейса скрывается простой функционал. Давайте же оценим трудоёмкость разработки такой «простой» системы бизнес-моделирования как Fox Manager.

Вот несколько фактов о текущем статусе программы:

1. Fox Manager BPA 2.5 содержит более 600.000 строк исходного кода.

Компилятор на данный момент показывает 1.4 млн. строк, но там также учитываются пустые строчки и код некоторых библиотек, которые включены в проект, если всё это исключить и оставить только код, написанный нашими программистами вручную, то мы получим цифру 633.117. Если хотите посмотреть подробнее по каждому юниту – нажмите на данную ссылку.

кол-во строчек кода

Учтите, что написание кода не равносильно перепечатыванию текста из книги. Код пишется, затем удаляется, правится и переписывается, то есть, реальное количество строчек кода, которое было написано для получения такого результата – гораздо больше.

Вообще метрика «строчки кода» (LOC) достаточно условна, и мы её не используем, но давайте для эксперимента возьмём усреднённое количество кода, которое пишет среднестатистический программист в день, это около 300-500 строчек (готового рабочего кода). При желании, можете оценить трудозатраты на разработку даже по этим очень условным цифрам, которые не включают в себя этап написания технического задания, согласования и тестирования продукта.

2. В программе используется 248 вручную нарисованных окон интерфейса

Ого, скажите вы! Откуда там столько? На самом деле всё логично, например, на каждый справочник (оргструктура, процессы, сотрудники, документы, ресурсы и т.п.) нужны также окна с выбором нужного элемента, окно с карточкой на элемент и тому подобное. Почему бы не сделать всё это в одном однотипном окне? Можно, конечно (и некоторые конкурирующие продукты так и делают), но гораздо удобнее иметь разные окна, настроенные под конкретный справочник, с оптимальным расположением кнопок и настроек. Например, набор фильтров для сотрудника у нас сильно отличается от набора фильтров для документа, а если делать окна однотипными, то и фильтры будут самыми общими.

Кол-во окон в программе

3. В структуре базы данных задействованы более 200 таблиц

Структура базы данных Fox Manager не шифруется, Вы можете легко её открыть и посмотреть. Я, например, открыл стандартную базу данных MySQL в phpMyAdmin.

структура БД Fox Manager

Пустая база уже содержит 222 таблицы, это не таблицы, которые формируются пользовательскими данными, это стандартные таблицы, которые используются для работы базового функционала программы. Если прорисовать связи между различными таблицами (показать, как связаны физические лица со штатными единицами, штатные единицы с должностями, должности с функциями, функции с процессами и.п.), то я бы получил схему с более чем 3000 различными связями.

4. На разработку Fox Manager 2.0 с нуля ушло 4 года

Первая версия программы (Fox Manager 1.0) вышла в 2007 году, имела множество ограничений, файловую базу данных на основе XML и выглядела как-то так:

Fox Manager 1.0

На разработку первой версии у нас ушло около 2-3 лет.

Версию 2.0 мы разрабатывали полностью с нуля, в новой среде разработки, соответственно код из первой версии не использовался. При этом у нас уже был опыт разработки предыдущей версии (Fox Manager 1.7) и было чёткое понимание что мы хотим реализовать. Первый год разработка происходила в закрытом режиме, 08/2012 вышла первая доступная Alpha-версия, а 10/2015 – финальная, которая ушла в продажу.

Fox Manager история версий

Историю обновлений ранних версий можно посмотреться тут.

Вместо вывода

Этой заметкой я хотел обосновать своё мнение о том, что разработка системы бизнес-моделирования – не такое простое занятие, как кажется некоторым руководителям. При текущей невысокой стоимости лицензии гораздо целесообразней подобрать готовое коробочное решение, а связываться с разработкой под заказ только в случае, если ни одно предложенное решение на рынке не способно удовлетворить Ваши специфические потребности.

Легко ли сделать собственную систему бизнес-моделирования?: 3 комментария

  1. Здравствуйте.
    Вы используете Delphi. Не планируете переходить на современные тренды в программировании (хотя бы тот же C#)?
    И как конкурируете с BPM-системой ELMA?

    • Дмитрий Петров говорит:

      Используем не только Делфи, но и, например, Sencha Ext JS. У нас есть программисты на C++/C#, но какие это даст преимущества, если переписать код Fox Manager на C? Возможно, выходной размер ЕХЕ уменьшится на 30% и на 5-10% вырастет скорость, но никаких новых возможностей такой переход не даст, при этом займёт слишком много времени. Делфи также активно развивается, и имеет как преимущества, так и недостатки по сравнению с С.
      С ELMA мы пока что не конкурируем, у них исполняемые процессы для автоматизации, а у нас статичные для регламентации. То есть системы для разных целей, как, например, Business Studio и BizAgi. Эти системы, скорее, дополняют друг друга по функционалу.

      • Понятно, спасибо!
        Про язык (именно Delphi) спросил потому, что от него отказываются постепенно. Но есть и продукты, которые спокойно на этом языке живут и развиваются.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Вы можете использовать эти HTMLтеги и атрибуты:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>