Программное обеспечение для бизнеса: создавать «с нуля» или использовать готовые решения?

Людям постоянно приходится изменять существующие вещи, чтобы они лучше удовлетворяли их потребности, и программные средства — не исключение. Мы берем то, что доступно на данный момент, используем до тех пор, пока оно нам походит, а затем пытаемся адаптировать под себя и переделать.

Существующие программные системы (в англоязычной литературе обозначаемые как «off-the-shelf» или «OTS») имеют свое место в бизнесе и могут давать приемлемый результат при разумной стоимости.

Большинство этих инструментов можно адаптировать под нужды обычных пользователей, но профессиональные разработчики программного обеспечения могут проникнуть вглубь программы и сделать более глобальные изменения «изнутри». Однако покупка программного обеспечения OTS обычно рассматривается как самый простой способ решения задачи, позволяющий сократить расходы и сэкономить время. А такое глубокое перепрограммирование готового решения может обойтись дороже, чем создание продукта под конкретные нужды. Кроме того, иногда требуется выполнить задачу, которая вовсе не укладывается в существующие параметры программы.

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

Давайте рассмотрим в качестве примера инструмент запросов Visual SQL, который дает возможность визуального «программирования» вместо программирования в терминах кода. Его плюсами является то, что пользователю не требуется знать определенный программный язык SQL, наличие готовых решений для типовых и простых задач, встроенные возможности мониторинга и отчетности, а также техподдержка, ремонтопригодность и удобство настройки для пользователя.

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

Сегодня многие OTS-инструменты задают процесс и ограничивают его готовым сценарием выполнения задачи. Но что, если требуется сделать что-то, чего «нет в меню»? Использование стандартного решения предполагает сведение нестандартной задачи к стандартной путем запихивания ее в «прокрустово ложе» существующего шаблона. Однако как насчет долгосрочной перспективы? При выборе такого подхода необходимо оценить, будет ли это являться временной мерой, долго ли смогут сохраняться используемые пользовательские настройки и как скоро потребуется прибегнуть к дополнительной доработке.

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

Опытный программист может внести изменения в существующий код системы OTS для достижения желаемого результата. Но работа с ограниченной структурой API (Application Programming Interface) имеющегося программного инструмента для улучшения функциональности не всегда будет являться простым или дешевым путем к желаемому результату. Опытный специалист знает множество различных сценариев и может выбрать лучший для конкретной задачи, но он не сможет их применить в рамках существующих ограничений.

Следует отметить, что автоматизация повторяющихся процессов является основной задачей большинства программ для бизнеса. Нет необходимости пытаться создать отдельное решение для уже существующих автоматизированных фрагментов программного обеспечения. Другой важный момент при автоматизации — необходимость сосредоточиться на правильном процессе, нужных действиях, а не только на конечных целях. Неправильным подходом будет попытка просто автоматизировать ручной процесс. Посмотрите на общую картину: возможно, есть более эффективный способ добиться желаемого результата, чем приобретение OTS-инструмента.

Еще одним аспектом готового программного обеспечения является то, что продукт может предоставлять слишком много различных функций, в то время как потребности вашего бизнеса не позволяют использовать более 80%, а то и меньше — тогда индивидуальное решение станет более рентабельным.

Вы будете удивлены тем, насколько доступным может быть специальное созданное «под вас» программное обеспечение, если принять во внимание «запас», встроенный туда, чтобы позволить вашему бизнесу расширяться без риска перерасти существующую платформу. Кроме того, у вас будут гораздо более тесные отношения с разработчиком программного обеспечения, чем с представителем одной из крупных платформ OTS-инструментов.

Вы заинтересованы в доработке или создании программного обеспечения… Что же дальше?

Итак, вы думаете о создании индивидуальной платформы. Или, возможно, вы все еще рассматриваете некоторый уровень доработки программного обеспечения, которое у вас уже есть. Все эти вопросы требуют привлечения высококвалифицированного и опытного поставщика программного обеспечения, знакомого со множеством существующих платформ. Прежде чем принять решение о покупке программного обеспечения OTS или создания индивидуального продукта, нужно проконсультироваться и выбрать партнера по интеграции, который поможет вам принять правильное решение. Знающий поставщик программного обеспечения:

  • сначала задаст правильные вопросы о вашем бизнесе;
  • объяснит, почему данная пользовательская платформа подходит вашему бизнесу или, наоборот, не подходит;
  • расскажет об ограничениях выбранного программного обеспечения и способах их преодоления;
  • кроме анализа преимуществ и недостатков платформы проведет также анализ затрат и потенциальных выгод.

У каждой организации есть свои специфические особенности, которые могут потребовать (или не потребовать) разработки программного обеспечения на заказ. Но не заставляйте себя принимать быстрые решения — уделите больше времени поиску подходящего партнера.

Главный вывод здесь заключается в том, что любой инструмент должен давать пользователю больше возможностей, чем у него было до его приобретения. Добавленная стоимость, которая компенсируется стоимостью инструмента, может быть реализована только в том случае, если пользователь (и разработчик) инструмента имеет неограниченную свободу и возможность проявлять свой творческий потенциал для достижения соответствующих целей.