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