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

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

В этой замете я расскажу, как устроена система бизнес-моделирования изнутри на примере 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 история версий

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

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

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

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

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

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

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