构建与购买&整合 - 您如何做出决定?

时间:2009-02-03 02:54:06

标签: estimation

我已经看到很多关于构建与购买的问题和讨论,但大多数人都坚持使用简单的方法,你可以简单地做一个或另一个。大多数情况下,您必须购买,整合或自己构建。无论哪种方式,你都可以从事一些工作。

在接下来的30-60天内,我需要实施一些管理项目,以防止每个人脱掉头发并互相残杀。其中最大的是票务系统(电子邮件,支持请求,自助服务等)。

不缺少选项,但最终我们必须购买我们决定使用的任何东西,添加我们所有的客户及其用户,并确保我们随着时间的推移保持同步。我们还必须提供单点登录并进行一些设计工作,使其看起来像我们从头开始构建它。

如果我们构建,我们可以跳过集成的痛点,尽管有一个有限(但重点突出)的功能集。

在做出这样的决定时,您通常会分析什么?如果最好有4-5个系统可以很好地完成特定工作,或者一个单片系统可以完成所有工作?

6 个答案:

答案 0 :(得分:0)

以下一个系统更好:

  • 一个数据存储库(即数据库)
    将每个系统链接在一起的简便方法,进行交叉引用。无需建立中间进口商/出口商/同步商

  • 允许单一登录。这对于企业来说非常有用,可以确保每个人都知道在哪里可以找到正确的信息。更多“再次错误跟踪的网站是什么......”并非所有人都会在大多数时间使用所有工具,而且他们忘记如何访问甚至使用。

  • 一切都有相同的外观和感觉 节省培训

  • 维护费用更低。更新一切都是一样的。管理员不必专注于听取单独的系统。

但是......很明显,你坚持购买的东西。如果可以,请确保获得一个系统,您可以构建自己的插件,以便将其与您的业务模型相匹配。

答案 1 :(得分:0)

显然“这取决于”。我的一般规则是,如果它是内部的,我们会购买并在需要时进行整合。我们的企业系统管理员如果遇到问题就会向我们组织外部的人员提供支持,并且这不会给我们的开发人员带来巨大的负担。

如果它是我正在发售的产品的一部分,我会根据需要从开源库构建它或获取一些源代码。没有什么比别人的黑盒代码破坏你的产品更糟糕了。恕我直言,发货产品中的依赖关系越少越好。

我倾向于购买像你提到的支持产品。优秀的集成点为共享身份验证系统提供了很好的集成点,用户可以面对主题,也可能是客户服务团队尚未意识到他们想要/需要的大量功能。

但是,要分析什么。对于像我这样的“管理”项目来说,最重要的是机会成本。我的团队还能做些什么,这将使我们的公司获得更多的资金,让我们的客户更多等等?当然,这些项目对底线产生了一些积极影响,但与新产品,改进产品等相比没有什么。随着时间的推移,包括维护,开发人员/下午/测试人员将花多长时间在这个管理项目上花费多少时间?如果您购买,积分点不会经常变化,但如果您构建,您的客户(内部人员)将不断要求新功能,您将能够在剩余的任期内维护此项目。

答案 2 :(得分:0)

您已确定了一个关键问题 - 当您购买时,您仍有工作要做,而且可能还有很多工作要做。话虽如此,我每次都倾向于购买。编写代码很难,调试代码要难得多 - 当你购买时,你不只是购买代码/应用程序,而是购买它运行的事实 - 后者是90%的好处。

但是,由于您的需求非常普遍,为什么不选择开源。这有两个突出的好处。

1)由于您可以访问源,因此您可以根据自己的意愿进行弯曲 - 即无需在现有系统的顶部粘贴单点登录。定制登录模块以使用您现有的基础架构,因此无需保持同步,节省时间,清洁方法等等。许多开源通过组合(?)那些环境特定的方面来确认现实世界。他们经常与DB / Identity无关。

2)如果您明智地选择,您将拥有一支现成的顶级技术人员,他们已经了解系统随时可以提供帮助 - 唯一的问题是他们不适合您(还有!)。

我的建议是选择一个简单的目标 - 票务系统就像那个,分析那些在开源世界中满足大部​​分/全部需求的东西。针对所需的任何更改,在Rent A Coder上评估并提出请求。坐下来等待结果,希望非常好。你已经失去了一点时间,并获得了很多经验。

开源并不等于Linux / Unix - 那里的.Net也有很多好东西。

答案 3 :(得分:0)

购买?你说的这个买什么,陌生人?

说真的,我很长时间没有为自己的项目购买软件。我的所有开发工具都是免费的,我的所有第三方库都是免费的(不是GPL)。甚至我的OS都是免费的。我必须为Windows付费才能进行测试,但大部分工作都使用跨平台的工具。

任何需要代码都无法立即从免费工具或库中获取的东西,我要么从头开始编写(所有算法都可以在网上免费获得),要么使用我的(因为我太老了)片段库我就是多年来一直在添加源代码。

购买(“获得”)几乎总是比建造更快,除非购买的东西太糟糕,整合是一场噩梦。这可以通过避免来自没有良好记录的供应商的最新事件来减轻。

答案 4 :(得分:0)

您的要求越“标准”,购买更合适(或换句话说,不要重新发明轮子)。相反,您的要求越独特,您可以考虑建设的越多。

你非常正确地指出,即使在购买时往往会有一些定制。请记住,在每次升级/修补时,任何自定义都会花费您的成本。我建议如果您的要求接近您可能购买的某个工具所支持的业务模型,那么您认真考虑将业务流程重新调整为供应商标准。如果无法做到这一点,请询问您是否购买了正确的工具。

我建议如果有人建议以成本原因建造它,就会尖叫。根据我的经验,购买的成本是众所周知的,并且构建的成本是隐藏的。请记住,您将决定对应用程序的生命周期进行编码(业务应用程序平均为7年),但在决定购买和构建时,可能只考虑初始开发成本。

我非常喜欢单个整体数据库,但有时候这是不可行的。更重要的是拥有“真相的单一来源”;如果你有多个数据库持有类似的数据,选择一个作为给定数据的权威来源,并有一个过程来维护所有其他数据库与该来源的协议。优选的这将是自动的。

答案 5 :(得分:0)

执行所有操作的单片系统是许多企业应用程序的Raison d'être。然而,我发现,如果你不愿意支付一大笔钱,你就会遇到整合问题。

“最佳”解决方案是非常主观的,任何答案都是正确的,因为它是错误的,但如果我是国王,我可能会选择适合的根深蒂固的开源解决方案,并围绕需要互相交谈的物品。如果我是国王。

作为一个切入点,有免费的票务系统,如RT(等人),你不必担心购买。