企业资源管理系统开源软件
许多行业中规模各异的公司正在实施内部源程序,以推动更高水平的开发协作和重用。 他们最终寻求增加创新。 缩短上市时间; 发展,保留和吸引人才; 当然,让他们的顾客满意。
在本文中,我将介绍innersource及其一些关键方面,并研究一些可以帮助解决的问题。 我还将讨论内部源程序的一些组件,包括度量。
什么是内源?
Innersource是将从开发开源软件中学到的经验教训应用到公司内部开发软件的实践。 因为它是在公司环境中完成的,所以内部源发生在公司防火墙之后。
借助内部资源,开发人员有机会获得和付出。
得到:
- 其他人的代码可重用或利用(而不是不同地重写同一件事)
- 来自更多人群的测试,增强和修复
给:
- 编码供他人重用或利用
- 通过与他人的项目协作来进行增强,测试或修复
因此,您可能会问,这不只是协作开发吗? 是。 但是,对于孤立的大型公司而言,这一点已大大放大。 这就是开源课程发挥作用的地方。
使用innersource,开发人员不仅可以与他们在特定领域内的团队成员进行协作。 他们有机会在指定的特定领域之外的代码和项目上进行协作。 一切都是开放的。 这意味着开发人员可以在默认情况下阅读所有内部源代码和文档,而无需跳进圈来访问它。
对于内部资源项目,围绕该代码的所有决策都将记录在案并公开。 这将创建一个全面的日志,新的贡献者或团队可以使用该日志来快速了解并了解项目的历史。
内部资源可以解决什么问题?
公司追求内部资源的许多原因都与封闭或孤立的开发模型相关的问题有关。
重复发展
多次以多种方式构建相同的东西是昂贵的。 一次编写和重用代码,或者至少利用和构建代码,具有更高的成本效益。 它可能导致相同产品组合中外观和感觉不同的产品。 客户期望(并应得)同一产品组合中的产品能够提供无缝,一致的体验。 重复开发也可能意味着您的产品无法无缝协作或根本无法协作。 如果您的目标是提供完全集成的解决方案,那么这是个坏消息。 如果您不花时间重新发明轮子,那么您可能可以更快地进入市场。
缩短上市时间
缩短开发时间可能是重复开发的结果,但也可能是由于封闭和孤立的环境所带来的依赖性。 如果您的产品与另一无输入的产品集成,则必须等待有人同意添加您的功能或修复该错误。 这意味着您需要花费较长时间才能使用该功能或修复程序进入市场。 您会因为放慢速度而错过市场机会吗? 别人会在那里打你吗?
局限性
如果您的环境是孤立的或封闭的,则仅限于特定组中的测试人员。 在漏洞响应和问题解决的资源方面,您也可能会受到限制。 拥有不同经验和观点的人群可以找到并解决多少个问题? 这会对产品质量产生什么影响?
许多开发人员开始与聪明,敬业的人们一起工作,他们为出色的产品构建和支持功能。 这太妙了。 但是在封闭或孤立的环境中,您可能有机会与三,五或十个其他人一起工作,建立关系并相互信任并向他们学习。
如果您可以建立关系并与20或30个或更多杰出的开发人员一起工作会更好吗? 你能实现什么? 你能学到什么? 如果您可以从其他项目和领域中学习,将会获得什么技能? 您不想在这样的地方工作吗?
一切如何融合在一起?
让我们看一下内部源程序的一些关键组件。 我与50多个开发人员进行了交谈,询问他们需要什么。 他们回答:
给我们:
- 准入门槛低
- 正确的环境(例如,如果不需要,不要让我们更改工具包)
- 准则,非强制性
让我们:
- 控制自己的命运
- 管理和管理我们自己的项目
- 有效沟通
和:
- 把事情简单化; 不要使过程或程序繁重
以下是主要注意事项:
文化
社区内部已经达成共识,即内部资源更多地是关于变更管理和文化转变,而不是关于能够共享代码和拥有正确的工具。 为了获得正确的内部资源,公司需要在内部培养开放性和透明性的文化和环境 。 对于许多公司而言,这意味着转型。
信任是所需文化的重要组成部分。 使用团队内部开发模型,开发人员有机会与自己的团队成员建立信任,并且他们对团队代码的完整性充满信心。 Innersource向这些团队开放以征求团队外部的帮助,因此他们自然会对质量和风险感到担忧。 必须建立信任,这需要一个允许协作和开放式通信的环境,这对于健康的内部资源工作至关重要。
指导是健康文化的另一个关键方面。 简而言之,在内部资源环境中,思维定式是:“让我们讨论如何将这些代码提升到可以合并的水平”,而不是:“我们并不真正了解您;因此,我们不要相信此代码;因此,我们拒绝了它。”
法律方面
根据公司的性质,构建内部源程序的最大步骤之一就是修订策略和流程,以使开发人员能够内部访问大多数代码。 与您的法律部门紧密合作以达成协议,同时又不损害系统应用程序的协议和保护内部代码的安全性,这一点很重要。
教育
在为开发人员提供的信息太少与提供授权或过于严格的要求之间寻求平衡。 提供有关如何入门的清晰易懂的信息,参与的一般准则以及基本的操作方法信息。 根据协作开发的成熟度级别,某些团队可能需要更多的深入培训或动手培训。 在这些情况下,它有助于确定可以进行指导和非正式培训其同事的早期采用者。
工具类
内部资源需要一个能够实现高级别安全访问,协作,通信和可查找性的环境。 如果开发人员已经在使用强大而安全的协作工具进行域内开发,请考虑坚持使用。 不管您使用哪种工具,都应为代码传输或从其他工具的迁移提供清晰的过程。
机会
尤其是在开始使用时,内部资源可能需要投入大量精力来进行一般参与,代码审查,修订,甚至是寻找合适的协作机会。 为这些活动分配时间和资源对于成功至关重要。
指标
内部源程序会产生大量活动。 成员将加入,他们将合作,并且一些人将做出贡献。 通过所有这些活动,您将产生许多东西。 将创建项目,您将看到发行,代码提交,构建和请求请求。
这些是在程序早期阶段易于测量的数据点,看到它们呈上升趋势可能会令人鼓舞。 但重要的是要记住,它们只是数据点。 他们没有完整地描绘出价值。
专注于最终目标至关重要。 使用innersource,您可能会寻求实现以下一项或多项:
- 提高质量,员工和客户满意度,创新和/或整合
- 缩短上市时间,降低成本和/或减少缺陷
您是否正在捕获反映您的成就的数据? 您收集的数据可以帮助揭示要解决的问题,以及帮助您讲述所获得的价值。 在鼓励他人协作的过程中分享您的成功和经验。
学到更多
有兴趣了解更多吗? 退房:
- Jono Bacon 如何创建内部内部资源社区
- Jono Bacon 在2017年实现组织内部资源的10个步骤
- 内部资源共享峰会
- 内部资源模式
- Jim Jagielski制作的Innersource 101
要深入探讨该主题,请参加10月23日至24日在北卡罗来纳州罗利市举行的All Things Open上的Erin Bank和Jim Jagielski的演讲,“ 内部源案例研究:利用开源智慧的公司”。
企业资源管理系统开源软件