Справочная информация:
Я работаю в компании с большими инвестициями в SAP, и у нас также есть десятки крупных систем .NET (в основном для инженерных систем) и платформы Java (в основном для внешних веб-приложений). Таким образом, у нас есть большие магазины разработки на ABAP, C # и Java EE.
Вопрос:
Короче говоря, Нам нужен лучший способ определить, когда следует использовать программное обеспечение Commercial, Off The Shelf (COTS) и когда нам следует привлекать собственных разработчиков.
Критерий:
Я бы хотел построить дерево решений, основанное на лучших практиках, чтобы помочь с этим вопросом.
На высшем уровне соответствующий пост Джеффа Этвуда хорошо подводит итог: Лучший код - это вообще не код
Чуть глубже, я хотел бы видеть критерии вроде:
Доступна ли система COTS, отвечающая большинству требований?
(Если да, система COTS может быть хорошим вариантом: (Избегайте повторного изобретения колеса))
- Если так, есть ли полностью открытый API
имеется в наличии? (Это важно для
интеграция / настройка)
- Если да, доступен ли исходный код?
(Это важно для глубокого
интеграция / настройка)
Разработана ли система для выполнения основной бизнес-функции / создания конкурентного преимущества?
(Если это так, то разработка на заказ может быть хорошим вариантом: См. Статью Джоэла Споски: в защиту синдрома не изобретенного здесь )
- Если это так, позволит ли пользовательская разработка
для повторного использования кода в будущем / другом
системы? (Есть много преимуществ
для повторного использования существующего кода)
Что такое совокупная стоимость владения для пользовательского приложения по сравнению с продуктом COTS?
Существуют ли временные ограничения, которые не могут быть выполнены при разработке на заказ?
(Если да, система COTS может быть хорошим вариантом)