我不完全确定您的要求是什么,但我想我会评论多年来我在 COTS 与定制开发选择中看到的一些事情:
正确分析任何 COTS 系统的适用性需要时间。无论是从需求角度还是技术角度。可以做多少定制开发而不是分析?
当心 COTS 销售宣传的承诺月亮在棍子上。他们有很多。来自应援者的华而不实的演讲,他们将提供满足任何要求以达成交易。最危险的陷阱是被承诺的功能目前不在 COTS 中,但它们会为您添加 - 通常情况下,推销员对您说“是”,甚至没有发现他们的产品是否可以这样做它。
检查 COTS 中的单元测试以及它们使用的开发实践。良好的质量指标。牛仔开发实践、缺乏测试和文档是未来的可维护性问题。
如果 COTS 供应商没有提供有关其产品技术方面的太多信息,请小心。
If your desired system is fairly simple then your COTS choice will also be fairly simple. But if it's a large, complex system you would presumably offer it out for RFP (request for proposal) and to do that you are going to have to have a thorough and correct requirements specification. Will the time taken to produce requirements for the RFP out weigh a custom dev agile solution? You are going to have to nail those requirements down super tight to make sure the COTS system delivers and that will take a lot of time and effort.
Personally, I would never consider COTS unless:
- The source code is available and I have had programmers assess it
- I've seen and tried a working demo and not just glitzy sales pitches
- There isn't time or personnel to do it in-house.
Ultimately, I agree with Joel's statement: If it's a core business function -- do it yourself, no matter what.