Innersource:如何在企业中利用开源

将开源开发方法应用于内部软件开发,可以提高创新,缩短上市时间,并让员工和客户满意。
602 位读者喜欢这篇文章。
Open organization buildings

Opensource.com

各个行业、不同规模的公司都在实施Innersource计划,以推动更高水平的开发协作和重用。他们最终希望提高创新能力;缩短上市时间;发展、留住和吸引人才;当然,还要让他们的客户满意。

在本文中,我将介绍Innersource及其一些关键方面,并研究它可以帮助解决的一些问题。我还将讨论Innersource计划的一些组成部分,包括指标。

什么是Innersource?

Innersource是将从开发开源软件中获得的经验教训应用于公司内部软件开发方式的一种实践。因为它是在企业环境中完成的,所以Innersource发生在公司防火墙之后。

通过Innersource,开发人员有机会获取和给予。

获取

  • 他人的代码以重用或利用(而不是以不同的方式重写相同的东西)
  • 来自更多人的测试、增强和修复

给予

  • 代码供他人重用或利用
  • 通过协作处理他人的项目来进行增强、测试或修复

所以,您可能会问,这不就是协同开发吗?是的。但是,对于大型、孤立的公司来说,它被大大放大了。这就是开源经验发挥作用的地方。

通过Innersource,开发人员不仅仅是在其特定领域内与自己的团队成员协作。他们有机会在超出其特定、分配领域之外的代码和项目上进行协作。一切都是开放的。这意味着默认情况下,开发人员可以阅读所有Innersource代码和文档,而无需费力地访问它。

对于Innersource项目,围绕代码的所有决策都经过记录并公开。这创建了一个全面的日志,新的贡献者或团队可以使用它来快速上手并了解项目的历史。

Innersource可以解决什么问题?

公司追求Innersource的许多原因都与封闭或孤立开发模型相关的问题有关。

重复开发

以多种方式多次构建相同的东西是昂贵的。代码编写一次并重用,或至少加以利用和构建,效率要高得多。这可能会导致同一产品组合中的产品看起来和感觉不同。客户期望(并且应该得到)同一产品组合中的产品提供无缝且一致的体验。重复开发也可能意味着您的产品无法协同工作——无缝地或根本无法。如果您的目标是提供完全集成的解决方案,这会是个坏消息。如果您没有花时间重新发明轮子,您可能可以更快地上市。

上市时间较慢

上市时间较慢可能是重复开发的结果,但也可能是封闭和孤立环境带来的依赖性所致。如果您的产品与您无法输入的另一个产品集成,您必须等待有人同意添加您的功能或修复该错误。这意味着您需要更长的时间才能将该功能或修复推向市场。您会因为速度慢而错过市场机会吗?别人会抢先一步吗?

局限性

如果您的环境是孤立或封闭的,那么您将仅限于特定组中的测试人员。您也可能在漏洞响应和问题解决的资源方面受到限制。有多少问题可以通过拥有不同经验和观点的更广泛的人群找到和解决?这会对产品质量产生什么影响?

许多开发人员有机会与聪明、敬业的人一起工作,他们为优秀的产品构建和支持功能。那太棒了。但在封闭或孤立的环境中,您可能只有机会与三、五或十个其他人一起工作、建立关系和信任,并从中学习。

如果您可以建立关系并与 20 个或 30 个甚至更多才华横溢的开发人员一起工作,那不是更好吗?你能取得什么成就?你能学到什么?如果您可以从其他项目和领域学习,您可以获得哪些技能?您不想在这样的地方工作吗?

这一切是如何结合在一起的?

让我们来看看Innersource计划的一些关键组成部分。我采访了 50 多名开发人员,询问他们需要什么。他们的回答是

给我们

  • 低门槛
  • 合适的环璄(例如,如果没有必要,不要让我们更改我们的工具包)
  • 指导方针,而非强制要求

让我们

  • 掌控自己的命运
  • 管理和治理我们自己的项目
  • 有效沟通

并且

  • 保持简单;不要使其成为繁重的流程或程序

以下是需要考虑的关键因素

文化

社区内的共识是,Innersource更多的是关于变革管理和文化转型,而不是能够共享代码和拥有合适的工具。要正确实施Innersource,公司需要在内部培养开放和透明的文化和环境。对于许多公司来说,这意味着转型。

信任是所需文化的重要组成部分。通过团队内部开发模型,开发人员有机会与自己的团队成员建立信任,并且他们对团队代码的完整性充满信心。Innersource向这些团队开放了来自团队外部的贡献,因此他们自然会担心与质量和风险相关的问题。必须建立信任,这需要一个允许协作和开放沟通的环境,这对于健康的Innersource工作至关重要。

指导是健康文化的另一个关键方面。简而言之,在Innersource环境中,心态是:“让我们讨论如何使此代码达到可以合并的级别”,而不是:“我们真的不认识你;因此,我们不信任此代码;因此,我们拒绝它。”

法律方面

根据公司的性质,构建Innersource计划的最大部分之一可能是修改政策和流程,使开发人员能够内部访问大多数代码。与您的法律部门密切合作,达成协议,同时不损害系统应用程序和安全性的协议以保护内部代码非常重要。

教育

努力在为开发人员提供的信息太少与提供强制要求或过于严格的要求之间取得平衡。提供清晰易懂的信息,说明如何入门、参与的一般准则以及基本的操作信息。根据协同开发成熟度,有些团队可能需要更深入或更实际的培训。在这种情况下,它有助于识别可以指导和非正式地培训其同事的早期采用者。

工具

Innersource需要一个能够实现高水平的安全访问、协作、沟通和可查找性的环境。如果开发人员已经在为域内开发使用强大而安全的协作工具,请考虑尽可能地坚持使用该工具。无论您选择什么工具,都要为代码从其他工具传输或迁移提供清晰的流程。

机遇

尤其是在刚开始时,Innersource可能需要大量投入与一般参与、代码审查、修订甚至寻找合适的协作机会相关的精力。为这些活动分配时间和资源对于成功至关重要。

指标

Innersource计划会产生大量活动。成员将加入,他们将协作,有些将做出贡献。从所有这些活动中,您将产生许多东西。将创建项目,您将看到版本、代码提交、构建和拉取请求。

这些是在计划的早期阶段易于衡量的数据点,并且看到它们呈上升趋势可能会令人鼓舞。但重要的是要记住,它们只是数据点;它们并没有描绘出完整的价值图景。

始终关注您的最终目标至关重要。通过Innersource,您可能希望实现以下一项或多项

  • 提高质量、员工和客户满意度、创新和/或集成
  • 缩短上市时间、降低成本和/或缺陷

您是否正在捕获反映您的成就的数据?您收集的数据可以帮助发现需要修复的问题,以及帮助讲述您获得的价值的故事。分享您的成功和您的经验教训,以鼓励其他人进行协作。

了解更多

有兴趣了解更多信息?看看

要更深入地了解该主题,请参加Erin Bank和Jim Jagielski的演讲,内部来源案例研究:公司利用开源的智慧,在北卡罗来纳州罗利的All Things Open,10月23-24日。

User profile image.
Erin Bank在北美和国外拥有20年的工程项目管理、产品管理和技术沟通经验。Erin目前是CA Technologies CTO办公室的工程项目管理顾问,她在该办公室构建并推动产品开发的Inner Source计划。

评论已关闭。

Creative Commons License本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。
© . All rights reserved.