В данной статье я расскажу о превалирующем на сегодняшний день подходе к разработке корпоративных информационных систем. Проблемах стандартного подхода, и уникальном решении, которое предлагает наша компания "Мобильные решения для строительства". А именно использование сильных сторон разработки на основе готовых программных продуктов и разработки с нуля. Но, давайте, обо всем по порядку.
Проблематика
На протяжение последних 7 лет мы активно участвуем в проектах разработки корпоративных информационных систем для крупнейших заказчиков из нефтегазовой, металлургической, инфраструктурной и других отраслей. Разумеется, решение о выборе подрядчика и заключении контракта происходит через тендерную процедуру. Поэтому общая картина о подходе больших "корпоратов" к собственной разработке у нас сложилась не только на основе опыта взаимодействия с нашими клиентами, но даже больше на основе знакомства с функционально-техническими требованиями и техническими заданиями на разработку.
Подавляющее большинство из них выставляет требование по наличию уже готовой системы, которая должна закрывать больше половины запрашиваемого функционала. При этом подразумевается, что оставшаяся часть должна быть доработана или, как любят говорить, "допилена" под нужные заказчику технические требования. И ведь, казалось бы, абсолютно логичный подход - зачем разрабатывать с нуля, если можно доделать то, что наполовину уже сделано. Это ведь будет быстрее и дешевле. А это важно для ИТ подразделения компании заказчика, показать быстрые результаты за относительно скромные бюджеты. Но, как всегда, бесплатный сыр только в мышеловке. Есть нюансы, которые почему-то ускользают от специалистов заказчика.
Первый. Рыночный "коробочный" программный продукт создавался для цифровизации определенного бизнес-процесса определенного пользовательского сегмента. И, если он успешно продается (а только в этом случае стоит его рассматривать всерьез), то возможности по его "допиливанию" сильно ограничены. И уж точно разработчики и архитекторы этого программного продукта не знали о существовании ваших специфичных требований. Это значит, что ваши доработки непредсказуемым образом скажутся на функционировании выбранного вами программного продукта. Что может привести к багам, потере производительности и другим неприятным вещам.
Второй. Стоимость развития и поддержки разработанной информационной системы не прогнозируема. Точно можно только сказать, что она будет расти по экспоненте, особенно в первые 3 года. Так же, как и сроки разработки - они будут вечно сдвигаться, поскольку будут срабатывать все новые и новые риски. Например, увольнение и долгая замена системных разработчиков, которые могут внести изменения в исходные коды, или внезапно выяснившаяся потребность в переписывании целового блока исходного кода, который был написан без учета новых требований и так далее. Добавьте к этому растующие зарплаты системных программистов и получите очень неприятную картину.
Третий. Компетенции в реализации коммерческих "внешних" проектов разработки ПО у вендора могут отсутствовать. Подходы к продуктовой разработки сильно отличаются от подходов к заказной разработке. И, когда вы просите продуктовую команду переключиться на заказную разработку, они могут просто вас не понять. Это мы еще не говорим про отличие внутреннего заказчика от внешнего. В общем, проблема встает в полный рост, когда приближается закрытие вех проекта. И тут уже как повезет.
Все эти нюансы-"грабли" мы проходили на своей шкуре, теряя при этом деньги, время, иногда специалистов. Потому что для разработчика это тоже большой стресс не укладываться в сроки или сдавать заказчику не то, что он просил. Не все люди готовы учиться на своих ошибках и двигаться дальше. Но нам было проще, потому что мы выросли из компании, занимающейся заказной разработкой, и у нас уже был наработан опыт управления проектами.
Решение
Если столько нюансов и грабель, что же тогда делать? Не уж то разрабатывать нужную программу с нуля? Необязательно, решение есть. И это разработка на базе программного продукта платформы, которая предназначена именно для создания новых программных продуктов (подробнее о продуктах платформах можете почитать в моем блоге - ссылка).
Мы разработали low-code платформу "МРС Платформа" (рег.номер 17113 в реестре отечественного ПО Минцифры - ссылка). На её базе мы создали типовые конфигурации-программы для цифровизации базовых процессов. При этом данные конфигурации созданы прикладными программистам, которые пишут код на языке web-программирования Javascript. Это значит, что для поддержки и развития потребуются такие же программисты, которых гораздо проще найти, чем системных программистов. Можно даже сказать, что это не веб программисты в классическом понимании слова, а так называемые "citizen developers", которые могут начать программировать в короткие сроки, не имея профильного образования.
Когда заказчик ищет разработчика для своего проекта, мы предлагаем ему профессиональный подход к разработке, при котором она стартует не с нуля, а с типовой конфигурации. Сама технология разработки заточена на максимально быструю отгрузку промежуточных версий. Следующим плюсом является гибкость архитектуры, потому изначально "МРС Платформа" это продукт для создания других продуктов. В него изменения не вносятся - изменения вносятся в типовую конфигурацию, которая как раз и создана для того, чтобы трансформироваться в программу под конкретного заказчика. Любые изменения и "допиливания" предусмотрены по умолчанию, поэтому финальный программный продукт никогда не превратится во "Франкенштейна".
Вишенкой на торте является возможность отчуждения исключительных прав на созданную конфигурацию, чем не сможет похвастаться ни один разработчик специализированного ПО, ведь это его хлеб. Если он отдаст вам исключительные права, то он сам не сможет продавать свой же продукт. Или будет вынужден заключать с вами соглашение и платить вам роялти. И это я допускаю, что разработчик чистоплотный и не будет клепать клоны одного и того же исходного кода, что, в конечном счете, создаст юридические проблемы всем его клиентам. Лучше от этого обезопаситься.
Пример - программа "АПСК" для золотодобывающей компании ПОЛЮС
Мы выиграли тендер на разработку специализированной системы по комплексной автоматизации строительного контроля на объектах строительства золотодобывающей компании Полюс. Наш основной программный продукт для цифровизации строительного контроля "СтройКонтроль" закрывал меньше половины потребностей клиента, ровно как и типовая конфигурация по строительному контролю на платформе. Поэтому мы предложили клиенту разработку именно на "МРС Платформе". Клиент согласился и мы приступили к реализации проекта.
Надо отметить, что проект был классическим с водопадной моделью разработки, а это значит, что в конце проекта вылезло много расхождений требований в техническом задании с "реальной жизнью". Мы к этому были готовы, во многом благодаря тому, что разработка шла не классическая, а на базе нашего low-code решения. Большинство новых требований нашли отражение в программном продукте заказчика. А оставшиеся ушли на этап сопровождения.
В результате мы разработали индивидуальную конфигурацию, которая в итоге стала полноценным программным продуктом как де-факто, так и де-юро. Мы передали заказчику исходные коды на конфигурацию, инструкции по запуску, а также помогли составить документацию для регистрации исходных кодов как программы для ЭВМ. Ниже привожу скриншот выписки, как подтверждение всего вышесказанного.
№ программы: 2023668573
Программа: "Автоматизированная система управления строительным контролем (АПСК)"
Правообладатель: АО "Полюс Красноярск"
Автор: Татаринов Тимофей Николаевич (как генеральный директор компании, разработавшей конфигурацию).
Вывод
Нам удалось совместить лучшее из двух подходов в разработке и сделать нашим клиентам оптимальное предложение. А именно минимизировать риски разработать не то, что нужно, максимально ускорить сроки разработки, выдержать конкурентную цену и передать исключительные права с возможностью регистрации отдельной программы для ЭВМ. Мы единственная в строительной отрасли компания, которая может себе позволить работать по данному принципу благодаря нашему зрелому и продуманному технологическому стеку.