четверг, 25 апреля 2013 г.

Средний путь

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

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


Хотя я частично с ними согласен, существует много аргументов против приобретения таких решений:
  1. Все проекты, с которыми я сталкивался, требуют лицензионную плату. Однако, пользователи, как правило, требовали многочисленных модификаций, на которые уходит много времени.
  2. Некоторые - если не большинство - из таких модификаций требовали не просто конфигурирования, а тотального изменения продукта, что влечет огромные расходы.
  3. Изменение (особенно модернизация) продукта влияет на эксплуатационные затраты: вам придется вставить код в новую версию, при условии, что они совместимы.
  4. Модификация требует тщательного управления изменениями.
  5. Большинство используемых продуктов выпускают крупные компании: необходимо также приобретать всю сопутствующую инфраструктуру, чтобы воспользоваться полной поддержкой (поверьте мне, я пытался пойти иным путем, что закончилось большим огорчением).
Выходит, что экономичная выгодность готовых решений - всего лишь иллюзия!

По сути, у вас есть два варианта: пойти на риск - то есть, разработку - или потратить кучу денег на продукт. Разве не должен существовать альтернативный способ решить проблему?

С начала года я работаю в компании, которая, по-моему, обеспечивает подобную альтернативу. Она приобретает форму продукта со следующими свойствами:
  • базовая платформа, разработанная с помощью Java и Spring и обладающая расширяемой архитектурой;
  • расширяемая бизнес-модель;
  • слой служб, построенный на интерфейсе и готовой реализации. Реализации можно заменить с помощью разработанного плагина;
  • шаблонный веб-слой на базе Spring MVC, который по необходимости можно изменять.
Таким образом, вы сможете адаптировать систему к вашим конкретным нуждам (перед выпуском или постепенно) и с легкостью усовершенствовать ее с каждой версией. Компаниям-разработчикам ПО следует инвестировать в перенос своих продуктов на такой тип архитектуры.

Комментариев нет:

Отправить комментарий