代码之家  ›  专栏  ›  技术社区  ›  Kaiser Advisor

COTS与定制/构建与购买:决策树与最佳实践

  •  5
  • Kaiser Advisor  · 技术社区  · 17 年前

    背景:

    我在一家拥有大量SAP投资的公司工作,我们也有几十个大型.NET系统(主要是内部用于工程系统)和Java平台(主要是针对外部Web应用程序)。这样,我们就有了ABAP、C.*和JavaEE的大型开发商店。

    问题:

    简而言之, 我们需要一种更好的方法来确定何时应该使用商用现货(COTS)软件,以及何时应该利用我们自己的开发人员。

    标准:

    我想建立一个基于最佳实践的决策树来帮助解决这个问题。

    在最高层次上,Jeff Atwood的相关职位总结得很好: The Best Code is No Code At All

    再深入一点,我想看看以下标准:

    是否有满足大多数要求的COTS系统? (如果是,COTS系统可能是一个很好的选择:(避免重新安装车轮)

    • 如果是,是否存在完全公开的API 可用吗?(这对于 集成/定制)
    • 如果是,源代码是否可用? (这是深 集成/定制)

    系统设计是否满足核心业务功能/创造竞争优势? (如果是这样,定制开发可能是一个好的选择: See Joel Sposky's: In Defense of Not-Invented-Here Syndrome )

    • 如果是这样,自定义开发是否允许 用于将来的代码重用/其他 系统?(有很多优点 重用现有代码)

    定制应用程序与COTS产品的TCO是什么?

    是否存在自定义开发无法满足的时间限制? (如果是,COTS系统可能是一个不错的选择)

    1 回复  |  直到 13 年前
        1
  •  2
  •   Steve Claridge    17 年前

    我不完全确定您的要求,但我想我会对过去几年中出现在COTS和定制开发选项中的一些事情发表评论:

    1. 要正确分析任何COTS系统的适用性需要时间。从需求和技术的角度来看。可以做多少自定义开发来代替分析?

    2. 当心COTS的销售把承诺放在木棍上。有很多。来自Yes Men的华而不实的演示文稿,他们将提供满足达成交易的任何要求的服务。最危险的陷阱是承诺的功能目前不在COTS中,但它们会为您增加更多的功能——销售人员经常对您说“是”,甚至不知道他们的产品是否有可能做到这一点。

    3. 检查COTS中的单元测试,以及它们使用的开发实践。良好的质量指标。一个牛仔式的开发实践,缺乏测试和文档是未来维护性的难题。

    4. 如果COTS供应商没有提供关于其产品技术方面的太多信息,请小心。

    如果您想要的系统相当简单,那么您的COTS选择也相当简单。但是,如果这是一个大型的、复杂的系统,那么您可能会为RFP(提案请求)提供它,并且要做到这一点,您必须有一个完整和正确的需求规范。为RFP生成需求所花费的时间是否会权衡定制的开发敏捷解决方案?你必须将这些要求严格地确定下来,以确保COTS系统的交付,这将花费大量的时间和精力。

    就我个人而言,我绝不会考虑儿童床,除非:

    1. 源代码是可用的,我让程序员对它进行了评估
    2. 我看过并尝试过一个有效的演示,而不仅仅是炫目的销售宣传。
    3. 没有时间或人员在内部进行。

    最后,我同意Joel的说法:如果它是一个核心业务功能,那就自己做,不管做什么。

    推荐文章