提升企业开源开发有效性和影响力的路线图
提升企业开源开发有效性和影响力的路线图
2023 2月
Ibrahim Haddad 博士
战略计划副总裁(AI 和数据)
序言:Jessica Murillo,IBM 副总裁兼交付实践负责人
Foreword..................................3
Introduction................................5
Hire developers from the project’s community........................... 7
Support and allocate time for upstream contributions........... 7
Create a mentorship program..........................................................8
Offer training.........................................................................9
Participate in and host open source events.................................9
Provide a flexible IT infrastructure .................................................9
Track developer code contributions ............................................. 10
Identify focus areas with a broad impact................................... 10
Foster internal collaboration.............................................. 10
Implement inner sourcing practices ..............................................11
Recommendations and lessons learned......................................12
Be patient.............................................................................12
Embrace a flexible IT infrastructure ..................................................12
Adopt proper success metrics...........................................................12
Use a lightweight approval process ....................................................12
Share information........................................................12
Make strategic contributions .......................................................13
Partner with product teams..........................................................13
Grow open source talent....................................................14
Conclusion.............................................................. 15
Acknowledgments.........................................................17
Feedback........................................................................17
Linux Foundation resources .............................................17
About the author.................................................... 18
目录
Foreword
序言
“In real open source, you have the right to control your own destiny.” – LINUS TORVALDS, CREATOR OF THE LINUX KERNEL
“在真正的开源中,你有权掌握自己的命运。”
-- LINUS TORVALDS,Linux 内核的创始人
A lot has changed in the past 20 years since technology companies, like IBM, began their open source journey. In the first 10 years, enterprises started by contributing to open source projects to help fill their needs; they made strategic investments in technology, collaboration and communities and built an entirely new ecosystem. In the next 10 years, we saw the emergence of hyperscale cloud providers and Fortune 500 companies that shifted from being passive consumers to proactive participants in open source communities. This heightened collaboration spurred even faster innovation.
过去 20 年间,自 IBM 等科技公司开启开源之旅后,发生了许多变化。在最初的 10 年里,企业开始通过贡献开源项目来满足自身需求;他们对技术、协作和社区进行战略性投资,建立了全新的生态系统。接下来的 10 年,我们看到了超大规模云提供商和财富 500 强公司的出现,它们从被动的消费者转变为开源社区积极的参与者。这种加强的合作推动了更快的创新。
We have learned that companies who only participate in open source on an ad-hoc basis cannot achieve long-term success. The key is for companies to take a more structured, enterprise approach, putting open source at the core of their technology strategy. To truly benefit from the open source community model, each contributor is responsible for making the necessary investments in those communities. This includes providing open source developers from your company with the proper tooling, training, and mentoring to become strong community contributors and grow into leaders. It means we need to work together to solve not only the problems that scratch our own itch, but by broadening the scope of influence and focusing our time and talent to improve the code base and remediate issues in open source software if they arise. That is what it means to be a good member of an open source community.
我们已经深刻意识到,仅仅偶尔参与开源项目的企业无法获得长期成功。关键在于企业采用更具结构化、更具企业化的方法,将开源置于其技术战略的核心。为了真正从开源社区模式中获益,每个贡献者都应该对这些社区进行必要的投资。这包括为来自贵公司的开源开发人员提供合适的工具、培训和指导,帮助他们成为强大社区贡献者并成长为领导者。这意味着我们需要齐心协力,不仅要解决自己迫切的问题,还要拓宽影响范围,将我们的时间和才能投入到改善开源软件代码库和修复出现的漏洞上。这才是成为一个优秀开源社区成员的真正含义。
This document provides an overview and step by step guide for companies to engage in open source development, no matter where you are on your journey.
本文档为企业参与开源开发提供了概述和分步指南,适合于在开源路上的每一家企业。
JESSICA MURILLO
IBM 副总裁兼交付实践负责人
Be patient and seek out influential peers when growing your domain expertise, open source methodology, and working practices. | Practice and encourage an open and collaborative mindset when implementing open source infrastructure. | Adopt IT infrastructure that is flexible and supportive of open source development. |
在发展领域专业知识、开源方法和工作实践的同时,要有耐心并寻找有影响力的同行。 | 在实施开源基础架构的过程中,实践并鼓励开放和协作的思维模式。 | 采用灵活且支持开源开发的 IT 基础设施。 |
Track success through specifically designed metrics for an open source environment. | Follow a lightweight and tailored approach to source code contribution approvals. | Share information across divisions and foster internal collaborations for successful implementation of innersource practices. |
通过专门为开源环境设计的指标来跟踪成功。 | 遵循轻量级和量身定制的方法来批准源代码贡献。 | 跨部门共享信息并促进内部协作以成功实施内部资源实践。 |
Contribute strategically to projects that are commonly used across products and services to remain essential, justifiable, and fundable. | Allocate time for open source developers to meet upstream responsibilities, especially if they are maintainers. | Partner with product teams on upstream code development that helps reduce their technical debt. |
为产品和服务中常用的项目做出战略性贡献,以保持其必要性、合理性和可资助性。 | 为开源开发人员(尤其是维护人员)分配时间来履行上游职责。 | 与产品团队合作进行上游代码开发,帮助减少他们的技术债务。 |
Develop open source talent internally, and encourage involvement in open source from developers across the organization. | Create a mentorship program to support the growth of junior developers and increase the quality and quantity of code accepted in open source projects. | Participate in and host open source events to build developer networks, participate in technical discussions, and increase visibility. |
在企业内部培养开源人才,并鼓励整个企业的开发人员参与开源。 | 创建一个导师计划以支持初级开发人员的成长,并提高开源项目中接受的代码的质量和数量。 | 参与和主持开源活动以建立开发者网络、参与技术讨论并提高知名度。 |
Introduction
介绍
Corporate participation in open source has reached an all-time high and continues to grow as organizations realize the value of consuming and contributing to open source projects (FIGURE 1). In addition, the nature of corporate (also called enterprise) participation continues to evolve as organizations increasingly discover that open sourcing proprietary technologies can create new sources of value and more robust product ecosystems.
随着企业逐渐意识到消费和贡献开源项目的价值,企业对开源项目的参与程度达到了历史最高水平,并仍然在持续增长(图1)。 此外,随着组织越来越多地发现,开源专有技术可以创造新的价值来源和更强大的产品生态体系,公司(也称为企业)参与的性质也在不断演变。
Enterprise open source development has challenges, which we discussed in detail in "A Deep Dive into Open Source Program Offices: Structure, Roles, Responsibilities, and Challenges."
企业开源开发存在挑战,我们在 “深入了解开源程序办公室:结构、角色、职责和挑战” 有详细的讨论。
The enterprise open source journey is challenging (FIGURE 2), and an organization needs to address this to build its open source leadership. If the organization has a clear plan to implement internal practices and address those known challenges, the journey becomes easier. For instance, the Linux Kernel is the largest collaborative software project in the world, and getting involved in the development process can be overwhelming.
企业开源之旅充满挑战(图 2),但企业需要解决这一问题,以建立其开源领导力。如果组织有一个明确的计划,来实施内部实践并解决这些已知的挑战,那么开源之旅会变得更容易。 例如,Linux内核是全球最大的协作软件项目,参与开发的过程是超级难的。
If you are one of the organizations that rely on the Linux Kernel for their products and services, investing time and resources into improving your internal development abilities, contributions process, and syncing your development with the upstream project can pay off immensely in the long run.
如果您是依赖 Linux 内核提供产品和服务的企业之一,那么投入时间和资源提高你们企业的内部开发能力、贡献过程,并将企业的开发与上游项目同步,长远来看可以带来巨额的回报。
Fortunately, since so many organizations and individuals have been successful at contributing to the Linux Kernel, there is a clear path to improve your own Linux Kernel contributions and aim for a leadership role.
幸运的是,由于如此多的组织和个人已经成功地为 Linux 内核做出了贡献,因此有一条清晰的路线,可以改进您自己对 Linux 内核的贡献,并起到领导者的作用。
FIGURE 1
图1
OPEN SOURCE STRATEGIC IMPACT
开源战略影响
-
Accelerates the development of open solutions
-
Provides an implementation to an open standard
-
加速开源项目解决方案的开发
-
提供开放标准的实现
-
Commoditizes a market
-
Reduces the process of nonstrategic software assets
-
Provides an implementation to an open standard
-
Shares development costs
-
使市场商品化
-
减少非战略软件资产的处理流程
-
提供开放标准的实现
-
分摊开发成本
-
Drives demand by building an ecosystem for products and services
-
通过构建产品和服务生态系统来驱动需求
-
Partners with others
-
Engages customers
-
Strengthens relationships with common goals
-
与他人合作
-
吸引客户
-
通过共同目标加强关系
Several factors drive and motivate participation in open source projects:
推动和激励参与开源项目的几个因素:
-
Reducing the amount of work needed from product teams
-
减少产品团队所需的工作量
-
Minimizing the cost to maintain source code and internal software branches
-
最大限度地降低维护源代码和内部软件分支的成本
-
Improving code quality
-
提高代码质量
-
Supporting faster development cycles
-
支持更快的开发周期
-
Producing more stable code to serve as the base for products
-
生成更稳定的代码作为产品的基础
-
Improving the organization's reputation in critical open source communities
-
提高组织在关键性开源社区中的声誉
Organizations often upstream modifications to open source projects, which is a fundamental aspect of the open source methodology. Following this approach, enterprise developers submit internal changes to the open source project for evaluation for acceptance into the main development tree. This process achieves several technical and nontechnical benefits for the enterprise due to such contributions (see FIGURE 3).
组织经常对上游开源项目进行修改,这是开源方法论的一个基本方面。 遵循此方法,企业开发人员向开源项目提交内部更改以进行评估,以便加入到主开发树中。 由于这些贡献,该流程为企业带来了多项技术和非技术的利益。 (请参阅图 3**)。
This report covers several practices enterprises can adopt to help grow their footprint in open source projects.
本报告涵盖了企业可以采用的几种做法,以帮助扩大他们在开源项目中的足迹。
FIGURE 2
CHALLENGES ENTERPRISES FACE AS PART OF INSTITUTIONALIZING OPEN SOURCE DEVELOPMENT PRACTICES
图2
企业在推行开源开发实践时面临的挑战
Culture 文化 | Operations 运营 | Tools 工具 | Continuity 连续性 | Education 教育 |
---|---|---|---|---|
Development model 开发模型 | Governance 治理 | IT infrastructure IT基础设施 | Strategy 战略 | Executive education 高管教育 |
Collaboration 协作 | Usage 使用 | Development tools 开发工具 | Projects 项目 | Knowledge transfer 知识转移 |
Transparency 透明度 | Compliance 合规性 | Metric tracking 度量跟踪 | Priorities 优先级 | Technical training 技术培训 |
Meritocracy 精英主义 | Contribution 贡献 | Knowledge sharing 知识共享 | Funding 资金 | Compliance training 合规培训 |
Team formation 团队 组建 | Approvals 批准 | Code reuse 代码重用 | Executive support 高管支持 | Mentorship programs 导师计划 |
Hiring practices 招聘实践 | Policies 政策 | Software composition analysis 软件组合分析 | ||
Success metrics 成功指标 | Processes 流程 | tool adoption 工具选择 |
Hire developers from the project's community
从项目社区雇佣开发人员
This critical step allows your organization to gain skills and recognition immediately. Hiring two or three people is a great start toward making a noticeable impact on a large project, such as the Linux Kernel, attracting further hires and allowing enough resources to mentor existing junior developers.
这一关键步骤可以让你的组织立刻提升技能、获得认可。想对一个大型项目(例如Linux 内核)产生明显的影响,雇佣两三个人是一个很好的开始,这样可以吸引更多的员工, 并有足够的资源来指导已有的初级开发人员。
It is crucial to align corporate interests with individual interests.
让个人兴趣与公司利益保持一致非常重要。
It will be hard to motivate a senior open source developer to work on a given project when their interests do not match those of their employers. For instance, a memory management expert may not be interested in working on file systems; therefore, finding a match in interests is critical.
当高级开源开发人员的兴趣与雇主的兴趣不匹配时,会很难激励他们参与特定的项目。 例如一位内存管理专家可能对文件处理系统的工作根本不感兴趣;因此,找到兴趣的匹配点是 至关重要的。
Support and allocate time for upstream contributions
支持并分配时间用于上游贡献
The core principle for hiring open source developers is to support an organization's open source strategy, development, and upstream activities; however, in most cases, there is the expectation that open source developers will need to be available to support product teams due to their expertise and influence in their respective open source projects. It is also common for product teams to exercise their influence in an attempt to hijack the time of the open source developers by having them work on product development as much as possible. If this happens, many open source developers will head to the door, seeking new opportunities that allows them to work on their upstream project before an organization realizes what just happened.
雇用开源开发人员的核心原则是支持该组织的开源战略、开发和上游活动;然而,在大 多数情况下,由于开源开发人员在各自开源项目中的专业知识和影响力,人们期望他们能够支持产品团队。 产品团队利用开源开发人员的影响力,试图抢夺开源开发人员的时间、让其尽可能多地参与产品开发,这也很常见。 如果发生这种情况,许多开源开发人员会直奔门口离开,去寻求容许他们在上游项目上工作的新机会,此时这个组织可能还未意识到发生了什么。
FIGURE 3
图3
BENEFITS OF UPSTREAMING CODE
上游代码的好处
-
Lower maintenance efforts for internally managed code, i.e., minimizes technical debt.
-
减少内部管理代码的维护工作,即最大限度地减少技术债务。
-
Upstreamed code becomes visible to others and receives peer review and feedback, leading to improvements.
-
上游的代码对其他人可见,接收同行评审和反馈,进而可以优化改进。
-
Upstream contributions provide stability to the project. They send a signal that the project is useful and important, which helps attract new contributors.
-
上游贡献为项目提供了稳定性。它们发出了一个重要信号,表明该项目有用的且重要,这有 助于吸引新的贡献者。
-
Builds a positive relationship between the contributing organization and the project community.
-
在贡献组织和项目社区之间建立积极正向的关系。
-
Upstreaming code is an effective way to provide technical leadership and influence the project.
-
上游代码是提供技术领导力和影响项目的有效方法。
-
Upstreaming contributes to easier compliance and improved security due to centralizing code in upstream repos.
-
由于将代码集中在上游项目仓库中,有助于更轻松地遵从代码合规,提高 安全性。
-
Upstream contributions are an effective means of ensuring stability in a company's software supply chain.
-
上游贡献是保护公司软件供应链稳定的有效手段。
-
Helps organizations recruit talent from projects and retain their own developers by engaging them with the open source innovation engine.
-
帮助组织从项目中招募人才,同时通过让组织现有的开放人员参与开源创新引擎来吸 引留住他们。
Therefore, creating and maintaining a separation of upstream work and product work is essential. In other words, a followed practice is to provide open source developers with guaranteed time to meet their upstream aspirations and responsibilities, especially if they are maintainers. For junior developers, or other internal developers using open source in product components, such interactions with the upstream community will increase their language, communication, and technical skills. In the absence of such an upstream time guarantee, it is easy for these team members to become an extension of product teams, resulting in their upstream focus drying up in favor of product development.
因此,隔离上游工作和产品工作是必不可少的。换句话说,一个可 遵循的做法,是为开源开发人员提供有保证的时间,来满足他们的上游意愿和责任,尤其是当他们担任项目维护者时。 对于初级开发人员,或者其他在产品组件中使用开源的 内部开发人员,与上游社区的这种互动将提高他们的语言、沟通和技术能力。 如果无法保证上游开发时间的情况下,这些团队成员很容易成为产品团队的延伸,导致他们 的上游投入枯竭转而支持产品开发。
Create a mentorship program
创建导师计划
Set up a mentorship program where senior, experienced open source developers mentor junior, less experienced developers. Typically, a mentorship program runs for three to six months, during which the mentor supervises the mentee's work, assigns tasks, and ensures proper results. The mentor also conducts code reviews and provides feedback on anything the mentee produces before the mentee pushes the code to the upstream project.
建立一个导师计划,让资深的、有经验的开源开发人员来引导初级的、经验较少的开发 人员。通常情况下,导师计划持续3至6个月,在此期间,导师将监督学员的工作,分配 任务,并确保适当的结果。在学员将代码推送到上游项目之前,导师也会进行代码审查 并对学员的产出内容提供反馈。
This exercise aims to increase the number of developers contributing code to the upstream project and improve individual effectiveness by increasing the quality of code and the percentage of code accepted into the upstream project. In general, four to five mentees should work with a given mentor, and, ideally, they should work in the same area as the mentor to make code reviews more efficient.
这种练习的目的,是通过提高代码质量和上游项目接受代码的比例,来提升为上游项目贡献 代码的开发人员数量和个人效率。一般来说,4到5名学员与一位指定的导师一起工作, 理想情况下,他们应该与导师在同一领域工作,这样可以让代码审查更高效。
Formalize open source human resources tracking & performance metrics
正式制定开源人力资源跟踪和绩效指标
Mature open source organizations almost always have an open source developer track in their HR system. So, individuals hired as open source developers have a good sense of how their careers will progress within the organization. Additionally, organizations often need to adjust their performance-based bonuses and metrics to include goals related to open source development work. Closed source developers' performance metrics are often different from those of open source developers. For example, if an open source developer advocates for the implementation of a given feature, successfully gathers interest, and volunteers to write the code, how would they be rated, especially if they may not have written a single line of code?
所有成熟的开源组织,在他们的HR系统中几乎都有一个开源开发人员赛道。这样被雇用为 开源开发人员的个人,就非常清楚他们在组织内的职业发展。此外,组织往往需要调 整其基于绩效的奖金和指标,以包含与开源开发工作相关的指标。闭源开发人员的绩效指 标通常与开源开发人员的绩效指标不同。例如,如果一个开源开发人员倡导实现一个特 定的功能,成功地吸引到社区兴趣,并有志愿者们自愿编写代码,那么他们将如何被评价, 特别是如果他们自己可能没有编写一行代码的话?
Finally, organizations should allow a work-from-home (WFH) policy for open source developers regardless of the general corporate policy. During COVID-19, we witnessed organizations institute WFH policies to allow employees to be productive while under quarantine. It was a fascinating experiment for WFH policies, as organizations continued to operate, innovate, and produce, even though most of their employees worked from home. A WFH policy is almost mandatory in the open source world because open source developers are located worldwide, making hiring and retaining them easier.
最后,组织应该忽略常规的公司政策,允许开源开发人员远程办公。在COVID-19期间, 我们目睹了各组织制定的远程办公政策,让员工在隔离期间保持高效产出。对于远程办 公政策来说,这是一次引人入胜的实验,尽管他们的大多数员工都在家远程办公,但组织仍 继续运营、创新和生产。在开源世界,远程办公政策几乎是强制性的,因为开源开发 人员遍布全球,使得招聘和留住他们变得更加容易。
Offer training
提供培训
It is only possible for organizations to hire some of the senior and most expert developers. They are always looking for ways to increase the competence of their developers in a given technical domain; therefore, in addition to specialized training, organizations need to offer training on the open source development model and the basic concepts of open source legal compliance.
组织只可能聘任一些高级的、专家级的开发人员。他们总是在寻找方法来提升开发者在特定领域的能力。因此,在专业化培训之外,组织还需要开展关于开源开发模型和开源合规基本概念的培训。
Sample training courses include:
举例来说,培训课程包括:
-
An open source development methodology course that teaches staff new to open source how open source development works and how to get best engaged with the project community
-
开源开发方法论课程:向刚接触开源的员工讲授开源开发的工作原理,以及如何更好地参与项目社区;
-
An open source compliance course that teaches staff the basics of compliance principles and open source licensing. The course often includes modules covering the organization's policy and process.
-
开源合规课程,教导员工遵循开源原则和开源许可的基础知识。该课程通常涵盖了组织政策和流程的内容。
The Linux Foundation offers several technical training courses specific to open source technologies and several nontechnical courses, such as this free online open source compliance training for developers.
Linux基金会提供了一些针对开放源码的技术培训课程和非技术课程,例如上述面向开发人员的开源合规免费在线课程nontechnical courses。
Participate in and host open source events
参与并主持开源活动
Mature open source organizations support and encourage their developers to host, attend, and participate in open source conferences and events, including local community meetups, hackathons, and summits. Such participation helps open source developers connect personally with their peers, build relationships, and participate in technical discussions that guide the direction of the respective open source projects.
成熟的开源组织会对支持并鼓励自己的开发人员主持、参加和参与开源会议和活动,包括本地社区聚会、黑客马拉松和峰会。这种参与有助于开源开发人员与他们的同行建立个人联系,打造关系圈,参与并指导与各自开源项目有关的技术讨论。
As an organization that uses and adopts open source software, it is highly recommended to facilitate for your open source developers the process of attending and presenting at open source events. You can also sponsor big and small events to increase external visibility within the open source global community or simply target events tailored for specific open source projects. As a bonus benefit, such events are also great venues to look for talent.
作为使用开源软件的组织,强烈建议为开源开发人员提供便利,让其参加开源活动并进行演示。也可以赞助大大小小的活动, 以提升在全球化开源社区中的知名度,亦或者针对特定开源项目量身定制活动。作为额外的惊喜,此类活动也是发现人才的好去处。
Provide a flexible IT infrastructure
提供灵活的IT基础设施
Provide a flexible IT infrastructure that allows open source developers to communicate and work with the open source and Linux Kernel communities without any challenges. Additionally, set up an internal IT infrastructure that matches the tools used externally to help bridge the gap between internal teams and the Kernel community or any other open source project community for that purpose.
提供灵活的IT基础设施,使开源开发人员能够毫无阻碍地与开源社区和Linux内核社区进行交流和合作。此外,建立一个与外部使用的工具相匹配的内部IT基础设施,以减少内部团队与内核社区或任何其他开源项目社区之间的距离感。
Open source development uses three primary domains of IT services: knowledge sharing (wikis, collaborative editing platforms, and public websites), communication and problem solving (mailing lists, forums, and real-time chat), and code development and distribution (code repositories and bug tracking). Making some or all of these tools available internally properly supports open source development. However, this might conflict with existing organization-wide IT policies. If so, it is vital to resolve these conflicts and allow open source developers to use familiar tools.
开源开发使用IT服务的三个主要务领域: 知识共享(wiki、协作编辑平台和公共网站),沟通和解决问题(邮件列表、论坛和实时聊天),以及代码开发和分发(代码存储库和bug跟踪)。在内部提供这些工具的部分或全部,能为开源开发提供适当的支持。然而,这可能与组织现行的整体IT策略相冲突。如果出现这种情况,应重点解决这些冲突,并允许开源开发人员使用熟悉的工具。
Track developer code contributions
跟踪开发人员的代码贡献
Create an internal system to keep track of developer contributions and impact. Contributions can include upstream development, supporting product teams, knowledge transfer (mentoring, training), visibility (publications, talks), launching new open source projects, and establishing internal collaboration projects with other teams or groups.
搭建一个内部系统来跟踪开发人员的贡献和影响。贡献可以包括上游开发、支持产品团队、知识转移(指导、培训)、知名度(出版物、演讲)、启动新的开源项目,以及与其他团队或小组建立内部协作项目。
With this data, you can compare contributions from various internal development teams to identify where source code contributions are coming from.
根据这些数据,我们就可以把来自不同内部开发团队的贡献进行比较,以确定源代码贡献的来源。
For instance, you can use these metrics to compare your performance to other organizations involved in the Kernel ecosystem. This approach helps better inform you about the overall developer ecosystem for the project. In addition, these metrics provide a much better idea of your strengths and weaknesses and can help inform your overall development strategy.
例如,我们可以利用这些参数,与Kernel生态系统中的其他组织进行性能方面的比较。这种方法可以帮助我们更好地了解项目开发人员的整体生态系统。还可以更好地了解自身的优势和不足,从而影响整体开发战略。
Identify focus areas with a broad impact
确定具有广泛影响的重点领域
Contribute to and focus on areas that benefit more than one business unit or more than one product. This contribution model, driven by the criticality of software components, allows you to provide value and show return on investment across multiple business units, increasing your chances for more funding and support.
致力并专注于能让多个业务单元或多个产品受益的领域。这个基于软件重要性驱动的贡献模型,可以帮助我们提供价值并掌握横跨数个业务单元的投资回报,从而有机会获得更多资金和支持。
Foster internal collaboration
促进内部协作
Create collaboration projects with other business units that use the specific open source projects in their products. These collaborations can take one or more of many forms:
与其他在产品中使用特定开源项目的业务单元创建协作项目。这些合作可以采取一种或多种形式:
-
Deliver training to their developers.
-
为开发人员提供培训。
-
Run a workshop on a specific topic or problem.
-
举办针对特定主题或问题的研讨会。
-
Develop new functionality.
-
开发新功能。
-
Troubleshoot and resolve issues and bugs.
-
排除以及解决问题和 bug 。
-
Upstream existing code for which they lack resources.
-
对缺乏资源的代码向上溯源。
-
Help get them off an old fork and onto a mainline version.
-
帮助他们从一个旧的分支到一个主线版本。
These collaborations aim to help the product teams understand their needs and fulfill their product goals via open source enablement.
这些协作旨在帮助产品团队理解他们的需求,并通过开放源代码实现其产品目标。
Implement inner sourcing practices
落地内源实践
Inner sourcing is the application of open source methodologies to development projects inside the organization. The goal is to incubate the same capabilities within the enterprise as those in the open source community and to foster new employee-toemployee relationships that are cross-functional and touch on multiple product domains.
内源是开源方法论在组织内部开发项目的实际应用。其目的是在企业内部孵化出与开源社区一样的能力,以此来促进跨职能并且涉及多产品领域之间员工与员工之间的协作。
FIGURE 4
图4
BENEFITS OF ADOPTING INNERSOURCE PRACTICES IN THE ENTERPRISE
在企业采用内部开源实践的好处
- Releases cadency faster
- 更快的发布周期
- Improves source code quality
- 提高源代码质量
- Increases motivation
- 增加 动力
- Increases internal information sharing
- 增加内部信息共享
- Reduces costs of development
- 降低开发成本
- Increases internal collaboration
- 增加内部协作
- Increases morale, retention
- 提高士气,提高员工留存率
- Increases internal communication
- 增加内部沟通
Open source principles work well on large-scale projects distributed across an enterprise. Many Fortune 500 organizations have adopted them externally and internally for the same reasons: faster releases, improved quality, increased innovation and communications, information sharing, reduced costs, greater and more effective collaboration, and increased employee morale and retention.
开源原则适用于企业内部大规模分布式项目的研发。很多财富 500 强企业在内外部采用开源都是基于同一个原因:加快发布、提高质量、增强创新与交流、信息共享、降低成本、更好及更有效地协作以及提高员工士气和留存率。
Inner sourcing prepares organizations to work effectively with external open source communities. It encourages employees to interact with colleagues elsewhere and with external community members without switching contexts. In addition, new employees familiar with this development model may integrate more quickly into established workflows. Finally, business partners are probably already using many of these development practices, so when an organization adopts inner sourcing practices, it is also strengthening its integration with the commercial ecosystem.
内源使组织能够与外部开源社区有效合作。它鼓励员工和其他地方的同事以及外部社区成员互动,而且无需切换上下文。除此之外,熟悉这种研发模式的新员工可以更快速的融入到既定的工作流程中。 最后,企业的业务合作伙伴可能已经在使用其中的许多开发实践,因此,当一个组织采用内 部采购实践时,它也在加强与商业生态系统的集成。
Recommendations and lessons learned
建议和经验教训分享
Be patient
保持耐心
It takes considerable time to grow internal open source expertise. The goal from an enterprise perspective is to find people with enough peer recognition to be influential in the community. There are typically three pillars to this: domain expertise, open source methodology, and working practices.
培养内部开源专业知识需要相当长的时间。从企业的角度来看,目标是找到在社区中具有足够同行认可的人,能够在其中产生影响力。通常有三个支柱:领域专业知识、开源方法论和工作实践。
Shift to a more collaborative environment
转向更协作的环境
Internal organization dynamics must be favorable to open source efforts. Implementing these practices requires a shift from traditional software development practices to a more open and collaborative mindset. As an open source leader inside your organization, you will face several challenges in funding resources, justifying ROI, getting upstream focus, etc. These often require a major shift in mindset and a lot of education up the command chain.
内部组织动态必须有利于开源工作。遵循这些实践需要从传统的软件开发转向更加开放和协作的心态。作为组织内的开源领导者,您将面临一些挑战,诸如寻找资金来源、证明投资回报率、获得上游关注等。这通常需要在思维方式上进行重大转变,并在指挥链上进行大量教育。
Embrace a flexible IT infrastructure
拥抱灵活的IT基础设施
These open source practices require an IT infrastructure free from many limiting IT policies and a computing environment that supports open source development.
这些开源实践要求有一个摆脱许多限制性IT政策的IT基础设施,以及支持开源开发的计算环境。