为什么这么难决定购买?

9分钟阅读 2021年7月28日

构建还是购买,无休止的争论。我们应该买一个供应商的产品,或者构建系统自己?尽管流行的共识,关键是专注于工作,是我们的业务核心,世界各地的工程师继续建立非核心产品,而不是购买。到底发生了什么事?

构建还是购买很难写,因为即使提高相关的问题提出一系列的挑战和问题,我们的身份作为工程师的核心。创新的价值是什么?是一个工程师,他不是真的从头构建一个工程师?公司奖励如何节省时间和精力抵制诱惑的人,而不是奖励只有可见的成果建立了一个新的东西吗?什么是酷,什么是快乐,什么是务实的,什么是好的,什么时候我们甚至知道我们所做的正确的事吗?

没有简单的答案这种情况(尽管我油嘴滑舌的tweet),但值得努力打开我们是如何接近的问题和想法。

一条微博,产生了大量的感情

乐观和有趣

构建我们自己的软件默认是最多的科技公司。的一些模式,导致这包括:

  1. 我们要相信自己是特别的,和我们的情况是独一无二的。我们over-focus边界情况不完全解决了现成的工具,而忽略的复杂性提供的主要功能除了我们所需的边界情况。我们相信自己是更好的工程师和更完美的方式解决问题的能力。
  2. 建筑很有趣,和整合现有产品的工作往往听起来乏味。作为一个行业,我们仍在努力从告诉工程师”你的工作是从零开始构建全新的东西”,和我们整个计算机科学的教学风格是基于采用的,鼓励默认建立自己。业界没有过多考虑是什么让人擅长集成,或工程师的机会做什么集成工作学习新事物和感觉挑战和刺激。
  3. 我们低估了建筑的工作,拥有自己的特殊的所有权的总成本的产品。很容易看到SaaS软件每个月的账单,,很难意识到建立一个内部版本的工程造价是仍然可能更高,因为你还没消化的机会成本工程师构建系统,而不是造成更多的核心业务机会。也许你认为你可以减轻这个法案通过开源项目,并在社区支持的努力。在现实中,即使你设法建立一个社区(一个极具挑战性的事情),你必须平衡项目前进的方式贵公司需求和项目前进社区的需要。OSS建设可能仍然是正确的电话,但不是一个免费的选择。
  4. 公司奖励的人创造新事物。很难避免识别和奖励的问题。时候来评价人,我们看系统从零开始,相信他们的作者显示更多技术人才比那些完成similarly-challenging集成项目减少了原始代码。大多数公司促进那些创建新的系统甚至可疑的价值远远超过他们促进那些可能会做出明智的选择从头开始建设,形成压力,构建以发展你的事业。

即使所有这些因素有利于构建,在某种程度上大多数公司意识到他们不应该构建所有的东西,并试着主向购买。偶尔,你会发现公司已经建立了几乎完全通过购买和集成,他们发现他们需要朝着建筑。在这两种情况下,有一些规则的经验可以用来指导决策。

决定建立或购买

当你遇到这种情况,这里有一些问题需要考虑:

这是软件的核心业务和其独特的价值?将你经常需要改变产品,以满足新的业务需求?它需要迅速适应这些变化,在几天或几周,为了跟上需求?这些迹象表明,这是核心的业务,即使软件并不是直接的业务逻辑。

你在一个空间的规模和功能意味着你需要定制的软件来运行您的业务?是的,这是你的核心业务,你应该建立!这里的窍门是有多少你应该建立。例如:你可能需要更好的API和服务与一些逻辑和缓存规模有效,但是你依赖S3底层存储系统。这个地区大多数平台软件工程正朝着;离开与云提供商的硬件供应商的谈判和使用最好的缩放选项为您的定制需求组件。

最后,一个灰色地带:这是一个地方,你可以构建一个小和非常集中的工具,不需要新功能?也许这是一个好地方,尤其是大多数选项都是大而笨重,学习如何使用。要小心,因为如果这是一个产品领域,需要随着时间的增长,你会发现自己被困在一个绑定,你花了很多精力扩大您的定制提供但迁移到一个供应商也是一个昂贵的工具。

如果这些选项是真的,尽力找到一个SaaS解决方案(更可取,因为大多数软件成本的这些天在操作),或者一个开源或供应商的解决方案(每个人都有自己的价码负号,但最大的-都将操作),并使其工作。

如果没有现成的解决方案,您可以采用,但它不属于任何一个其他类别?然后问自己一个问题:为什么没有人遇到这个问题,建立了一个解决方案吗?可能你已经找到了一种经营理念,但也有可能你解决一个问题,可能不需要解决。如果解决方案不仅仅是一个简单的工作,花时间重新考虑是否需要解决这个问题,通过这种方式,在继续之前设计和建造未来的信天翁。

你应该认为,建造或购买的决定将会改变。十年前许多电子商务公司大量定制,甚至定制技术平台运行他们的网站和库存管理。随着时间的推移,这样的公司Shopify创造了更丰富和更丰富的产品,意味着大多数电子商务创业公司今天不需要大型科技团队建立一个定制的平台。可以决定建立基于今天的产品,如果你有信心,没有接近你的要求。特别是对于不是核心业务的软件,试图构建最小集合,这样您就可以迁移到更好的选择,如果当他们出现。

当集成咬回来

我试图简化问题和解决方案,但是有很多不平凡的元素来购买值得记住。

问题1:买一个更大的比你需要的解决方案,然后感觉有义务使用。

Jira可能是最好的例子这种虐待。Jira是一个非常好票跟踪系统,可以做可怕的,可怕的事情通过定制。仅仅因为产品可以做一件事并不意味着你应该使用该功能!Over-customizing现成的产品最终可能会成为最糟糕的两个世界:你在写大量的代码和维护大量的定制系统的逻辑你真的不“的”,这往往会带来很多技术债务的方式随着时间的推移,随着产品的发展与您的自定义是不相容的。仅仅因为你支付产品并不意味着你必须使用每一个铃铛和哨子!

问题2:评估每个选项为每个决定。

你不需要为每个产品做一个烤你选择采用,真的。甚至是好,好,建设成一个生态系统,一起工作得很好,你的团队是适应,你有一个现有的与供应商的关系。这些都是不错的理由选择一个产品(就尽量避免选择一个产品因为你的CEO的高尔夫伙伴)。成本推迟做决定,所以什么是现实的选择产品的非常重要的因素,否则快速行动。当你苦恼的每一个决定,你使团队更倾向于采用他们熟悉的东西,而更倾向于建立自己的事情避免官僚作风。

问题3:Over-vetting每个产品。

类似地,如果批准新供应商的过程/ SaaS / OSS产品是缓慢而痛苦的,有激励工程师只是构建所以他们不必等待批准开始。这是你想要真正想要的呢?如果不是,弄清楚如何完成批准使用产品更快,最好是在平行于团队得到他们的手在它,看看它如何适合他们的需求。

问题4:低估了集成的工作。

是的,集成成本效益分析通常是正确的选择,但这并不让它自由。想参与的工作搬到公共云作为一个例子一个非常复杂的供应商整合运动。当你决定采用一个供应商的产品,需要任何超过“启用这个每个人都与一个谷歌帐号在我的组织”认为它需要时间。虽然你不想over-vet一切,没有产品是完美的产品和销售人员越多你就越有可能找到一些意想不到的空白,提供你可能要工作,所以要确保你理解核心重要特性。

问题5:忽视跟工程师所提供的价值时不从头开始构建。

你还需要软件工程师,即使很多底层软件不是定制。这些工程师需要感觉到他们正在学习和成长,他们值得这些决定的一部分。集成,自动化、垫片你之上构建一个统一的表面积为用户在你的公司,使用软件的微调,这样你就不会花很多钱,这些都是工程师的任务。我运行一个平台工程团队,必须解决的问题是“什么是工程时代的公共云平台。“我还没有运行的软件,需要建设,尽管越来越多的走向开源和SaaS组件,但是它是一个持续的过程来解释工程师不熟悉工作在这些问题上为什么他们还有趣和乐趣,即使你不是建筑一切从头开始。

你需要看看你的奖励结构如果你想鼓励转向购买更多和建筑更少。如果你的职业阶梯讨论系统的大小,如果你从零开始自豪地宣布全新的软件,你的团队创建和忽略的工作使一个SaaS工具的使用,你是加强“构建”“买的层次结构。“人们想要得到提升,他们想要荣誉,他们想要得到报酬,你应该给你的工程师做所有这些事情支持实现和集成现成的产品。

结束

如果你相信你的公司是一个以公司,应该有很多工程师建立的东西,甚至是他们制作的集成将有意义的工程挑战。作为一个领导者,你必须支持他们渴望创新,实验,学习和构建。购买商业软件通常是正确的决定,但是如果你需要深入这条路,你必须挑战自己来识别meta-products团队创建需要这些现成的解决方案,把它们变成一个有生产力的生态系统。

工程师,这归功于你自己是思考你工作的软件。我们中的许多人已经建立了定制平台只烧了维护的成本和支持他们多年来,还有其他方法来了解大系统,不需要一切从头开始。构建还是购买带来自己的创意讨论,和有意义地参与的问题,你想把你的时间和才能。你可能会发现,你可以有一个更有利可图的职业,如果你变得擅长利用和扩展流行平台,也不乏有趣的工作要做。只是不要构建一个的人玻璃刀

Baidu