用开源的方式做事 - InnerSource在AI时代的作用和潜力

困扰现代组织的问题 #

当无数开发者争论prompt工程和context工程的优劣,当影响者展示他们最新的AI编码技巧,当初创公司转向AI优先开发时,一个明显的空白在讨论中持续存在。我们淹没在关于个人生产力和小团队战术的讨论中,但渴望关于大型成熟组织应该如何导航AI转型的指导。

这不仅仅是大企业的问题。即使是拥有强大10人AI团队的小型初创公司,最终也会处理庞大的代码库,并在一夜之间扩展到大型系统。根本问题变成:组织如何准备其源代码和协作实践,使其能够在速度上与AI无缝配合而不崩溃?

这不是另一篇关于如何写更好的prompt或优化你的copilot体验的文章。这是关于组织DNA,它将决定你的公司在AI时代是繁荣还是仅仅生存。


TL;DR: 五个关键的组织挑战 #

AI驱动的开发面临五个关键的组织挑战,开源方式可以解决:

  1. 标准化困境:组织希望AI理解他们的专有方法,但AI在开放标准而非专有标准方面表现出色。关键是认识到AI已经从开放和标准化的实践中大量学习。

  2. 质量保证瓶颈:AI生成大量重复代码,人类无法全部审查。与其让AI重复发明轮子,组织需要通过内部共享质量保证的代码来防止重复,避免无限的审查循环。

  3. 信息孤岛问题:随着AI变得更加自主,组织希望它能访问更广泛的组织知识,但分割的信息创建了多层访问问题。透明、非分割的组织允许AI访问它需要的信息,而不会有官僚瓶颈。

  4. 文档格式混乱:AI在处理PowerPoint、Excel和专有格式时遇到困难。开源风格的协作自然趋向于基于Markdown的文档和基于议题的协作——AI可以轻松解析和理解的格式。

  5. 缺失上下文危机:人们给AI即时信息,却没有决策背后的关键"为什么"上下文。开源文化自然记录决策过程,创建AI需要的上下文理解以提出适当建议。

将AI视为一个天才但没有上下文的工程师,突然加入了你的组织 —— 就像一个开源贡献者,他来时对你的系统、流程或历史没有任何背景知识。我们需要为AI提供组织指导,但这不能是个人努力——需要全组织的系统支持,帮助AI理解我们不仅做什么,还有如何以及为什么这样做。

在组织内实施这种开源方式就是我们所说的InnerSource。开源实践鼓励透明协作、共享标准和社区驱动的改进。开源方法论帮助团队自然地趋向于AI理解的实践,同时保留使你的组织独特的机构知识。开源方法开发策略,逐步将组织与"AI已知的标准方法"对齐,同时构建这种转变所需的组织资源和个人能力。这不是关于强制改变——而是关于创造条件,让改变感觉自然和有益。


1. “我们的方式"vs"标准方式” #

想象一下:你的组织花费了数年时间完善其代码审查流程、文档标准和测试方法论。这些不仅仅是实践——它们是你组织身份的一部分。然后AI来了,突然它不理解你精心制作的约定。它生成遵循PEP8风格的代码,而不是你自定义的Python风格指南。它按Jest标准编写测试,而不是你的专有测试框架。

当然,你可以教AI你的特定方式,但显然利用它已经拥有的零样本知识更容易。这就是为什么大多数人最终趋向于Bootstrap、Tailwind和其他完善的标准——因为这样更高效。

不舒服的真相 #

AI不知道你的专有信息。它没有在你的内部编码标准、自定义框架或独特架构决策上训练。它说开源的语言——全世界开发者的通用语言,已经被广泛记录和分享。

这创造了一个直接的摩擦点。组织在他们的"特殊方式"做事上投入了大量资金,通常是有充分理由的。也许他们的编码标准是从痛苦的调试会话中产生的。也许他们的文档格式是为了满足特定的合规要求而演变的。这些不是任意的选择——它们是在流程中结晶的机构智慧。

短期解决方案:拥抱标准 #

至少现在,实用的答案是标准化。采用Python的PEP8。使用传统提交消息。遵循既定的测试标准。以AI可以解析和理解的格式构建你的文档。

这不是投降——这是实用主义。当AI生成符合你标准的代码时,摩擦就消失了。随着上下文窗口的急剧扩展,你最终可以将所有源代码和专有信息都倾倒到上下文中。代码审查变得更顺畅。集成变得无缝。你的开发者花更少的时间与AI生成的代码斗争,更多的时间利用其能力。

长期现实:AI将学会你的方式 #

但这里有一个大多数讨论错过的细微差别:这可能是一个暂时的问题。AI系统在理解上下文和专有信息方面正在快速改进。微调、改进的上下文学习和更长的上下文窗口最终将允许AI吸收你的组织特质。

问题变成:为了解决一个可能自行解决的问题,值得进行组织动荡吗?

InnerSource作为桥梁 #

这就是InnerSource变得无价的地方。InnerSource不要求你一夜之间放弃组织身份。相反,它提供了一个渐进转换的框架——帮助你的小红帽找到一条既安全又高效的路径。

InnerSource不是关于为自己写代码——而是为你的团队、更广泛的组织、邻近团队以及一两跳之外的团队写代码。这意味着写每个人都能轻松阅读的代码,无论是新的初级工程师还是经验丰富的老手。这种哲学延伸到代码之外,涵盖代码内文档和架构决策。

InnerSource鼓励在你的组织内采用开源实践:透明协作、共享标准和社区驱动的改进。它帮助团队自然地趋向于AI理解的实践,同时保留使你的组织独特的机构知识。

该方法论开发策略,逐步将组织与"AI已知的标准方法"对齐,同时构建这种转变所需的组织资源和个人能力。这不是关于强制改变——而是关于创造条件,让改变感觉自然和有益。


2. 质量保证瓶颈:当AI超越人类审查时 #

这真的不是秘密——每个人都在与这个令人不舒服的真相斗争。AI能力继续指数级扩展,但人类认知能力保持相对静态。虽然AI确实可以帮助代码理解并使审查更高效,但我们无法通过工程消除的人类处理能力有基本限制。

AI可以在几秒钟内生成一千行代码。一个熟练的开发者可以在一小时内审查几百行。数学不起作用,而且随着AI能力的改善,情况变得更糟。

审查问题难以扩展 #

编写测试确实可以显著改善这种情况,许多组织的共识是测试变得比以往任何时候都更加关键——它们在AI辅助开发的世界中起到必要的护栏作用。即使AI与实现代码一起生成测试代码,仍然需要有人审查这些测试。即使AI解释其推理,仍然需要有人验证该推理。基本约束仍然存在:人类认知带宽。

传统的质量保证假设稀缺——代码编写成本高,因此值得仔细审查。但当代码生成变得便宜时,我们的质量模型完全崩溃。

解决方案:共享质量保证的代码 #

关键洞察是防止AI重复发明轮子。与其让每个AI解决相同的问题并生成类似的代码,不如创建经过审查、测试、批准的代码组件存储库,供团队重用。

当你有许多可共享的部分,如在开源和InnerSource环境中,有趣的事情发生了:多个人最终使用这些工具和代码组件。质量通过集体使用得到保证——许多眼睛最终检查那些代码,发现问题并随时间改进它。

这种方法需要心态的根本转变。代码变得不再是个人所有权,而更多是资源的集体管理。然而,这意味着实施弱代码所有权而不是集体代码所有权——因为当每个人都拥有某样东西时,实际上没有人真正拥有它。这暗示我们还需要适当的源代码维护文化。

但这里有好消息:AI现在可以处理很多源代码维护。真正的问题是组织将如何拥有和管理这样的共享代码存储库。

团队需要超越他们的直接需求思考,考虑他们的解决方案如何在整个组织中惠及他人。

InnerSource启用系统化共享 #

InnerSource为这种转型提供了文化基础。它鼓励开发者像开源维护者一样思考——不仅为他们的直接需求编写代码,而是创建其他人可以理解、修改和改进的解决方案。

这不仅仅是关于代码库。它是关于创建框架来识别哪些代码值得质量保证投资,维护共享存储库的流程,以及鼓励贡献和重用的文化实践。

该方法论解决了自动化和人工监督之间的平衡,帮助组织开发可持续的实践来整合AI生成的代码,同时维持质量标准。


3. 信息孤岛问题:AI的知识渴求 #

组织梦想拥有知道一切的AI——一个拥有所有部门知识访问权限的人工员工,能够进行卓越的跨职能工作。但这个梦想与信息孤岛的现实相冲突。

多层访问挑战 #

将你的组织想象成一个韦恩图。部门X可以访问某些信息,部门Y可以访问不同的信息,部门Z可以访问另一套信息。交集——所有部门都可以访问的信息——通常令人惊讶地小。

当你试图创建"组织AI"时,你立即遇到这个限制。当前的RAG实现按部门优化信息,但在搜索准确性和跨部门上下文方面存在困难。每个部门都有自己的AI助手,但没有一个能真正理解整个组织。

你可能认为这不是大问题,因为你希望AI引用的项目可能适合韦恩图的一个圆圈内。但这不仅仅是关于源代码访问——这是一个多层次、多阶段的问题,比这更深入。

你的组织可能在某些项目中使用Notion,在其他项目中使用Office 365。一些团队使用GitHub,其他团队使用GitLab。拥有许可证的人和没有许可证的人之间存在差异。当这些不同的系统需要协作时,问题成倍增加。即使员工在同一个项目上工作,他们的信息访问级别也可能基于他们的角色、资历或部门而大不相同。

在短期内,AI可能仍然是个人的——个人将处理他们自己的AI交互。在这种情况下,缺乏对组织信息的访问,或获得访问组织信息权限所需的交付时间,成为限制AI有效性的关键瓶颈。

信息重叠的力量 #

解决方案不是给AI更多信息的访问权限——而是增加韦恩图中的重叠。部门之间共享信息的交集越大,你的组织AI就越强大。

这需要文化转型。组织成员可能在他们的个人Google Drive或本地存储中保留大量信息。如果没有适当的规则和文化变化,员工、工程师和产品所有者将自然地默认将信息保留在他们的个人拥有中,而不是使其在组织上可访问。

员工需要从囤积信息转向分享信息。部门需要从保护他们的知识转向为组织智能做贡献。

安全和访问考虑 #

这并不意味着移除所有访问控制或创建安全漏洞。这意味着深思熟虑地扩展对可以安全共享的信息的访问,同时为敏感数据保持适当的边界。

挑战既是文化的也是技术的。AI只能处理形式化的信息——它无法访问隐性知识或个人积累的信息。因此,实现开放和透明的协作变得极其重要。

然而,向许多人展示你的想法、资源、未完成的工作和你不确信的文档会创造重大障碍,包括心理障碍。这就是为什么使这些实践变得自然和安全的培训是基础性的。

信息共享需要信任,信任需要时间来建立。组织需要框架来逐步扩展信息访问,同时保持安全和隐私要求。

InnerSource打破障碍 #

InnerSource在打破信息孤岛方面表现出色,因为它从根本上是关于在组织内创建开放、协作的环境。它提供了经过验证的知识共享、管理贡献和建设社区的实践。

该方法论帮助组织开发信任和安全模型,以实现更广泛的信息访问,同时创建鼓励开放信息共享的文化转型计划。它解决了信息访问变化不能一夜之间实施并且需要持续文化采用的现实。


4. 文档格式混乱:Markdown革命 #

你的组织在PowerPoint演示文稿、Excel电子表格、复杂的Word文档、JIRA票据、Confluence页面和Notion数据库中锁定了数十年的机构知识。你想将所有这些馈送给AI,但问题是:格式多样性创造了准确性噩梦。

AI可访问性挑战 #

对AI来说,PowerPoint文件只是XML和图像文件。它缺乏对你精心制作的幻灯片的语义理解。Excel电子表格在没有上下文的情况下变成数据汤。复杂文档在被当前AI系统处理时失去其结构和含义。

图像处理准确性仍有显著改进空间,平台墙创造了额外的障碍。你的知识分散在多个系统中,具有不同的API、搜索能力和访问控制。

激进解决方案:Markdown和GitHub中心化 #

答案听起来几乎荒谬地简单:用Markdown编写一切并在GitHub(或类似的版本控制平台)上集中一切。

这个建议可能引发立即的阻力。丰富格式怎么办?复杂可视化怎么办?我们现有的工作流程怎么办?

但考虑优势:AI访问的地方更少,AI可以理解的语义结构,内置版本控制和协作功能,可链接和可搜索的内容,以及随时间可维护的文档。

迁移挑战和渐进方法 #

从丰富文档转向Markdown代表了重大的迁移努力和文化变化,本质上要求组织更新长期培养的流程和信息存储库,转而支持更简单的文档格式。这个挑战与组织在试图从传统项目管理方法(基于PowerPoint的规划、Excel跟踪)转向基于问题的、文档设计导向的开发工作流程时面临的困难相似。

然而,这不是一个全有或全无的命题。与其在"全部PowerPoint和Excel"与"全部Markdown"之间选择,组织应该专注于逐步增加AI可读的信息格式。管理系统的特征也很重要——能够保持信息相对扁平的系统比那些需要复杂分层权限的系统更理想。

虽然支持多层权限进行企业治理的平台肯定很重要,但增加可以在组织内以高透明度管理的信息比例对每个人都有益。这是关于找到正确的平衡并为不同目的使用适当的工具,而不是做出二元选择。

团队需要学习新的工具和工作流程。复杂文档需要重新构建。权限系统需要重新设计。然而,进行这种转变的组织报告了AI集成之外的惊人好处:改善的协作、更好的版本控制、更易访问的文档和降低的工具复杂性。

InnerSource提供框架 #

InnerSource为这种类型的组织转型提供了经过验证的策略。它提供了在改善AI可访问性的同时保持文档保真度的迁移策略、统一信息架构原则和受开源启发的文档实践。

该方法论认识到丰富文档和AI可访问性之间的权衡,同时提供了最小化中断的渐进转换路径。


5. 缺失上下文危机:理解"为什么" #

AI知道"什么"但不知道"为什么"。它看到完成工作的快照,但缺乏如何以及为什么做出决策的上下文。这种限制为AI辅助开发创造了重大问题。

快照问题 #

许多人给AI即时信息并期望它理解完整的上下文,但这种方法失败了,因为它缺乏决策背后的关键"为什么"。当组织需要解决问题时,通常有大量可用信息和众多潜在解决方案。即使存在替代解决方案,通常也有广泛的原因说明为什么这些解决方案之前没有被选择——但这种推理很少被全面记录。

当前的AI系统看到完成的代码但不看开发过程。它们知道函数存在但不知道为什么以特定方式编写。它们可以识别"低效"代码,但不能区分真正有问题的代码和因特定原因故意构建的代码。

这创造了危险的场景,AI建议"改进"却破坏了精心构建的解决方案,或者删除服务于重要但不明显目的的"冗余"代码。

非正式知识差距 #

很多有价值的上下文存在于非正式交流中:GitHub问题讨论、Slack对话、Microsoft Teams线程、走廊谈话和在会议中做出的设计决策。这些机构知识通常对AI系统不可访问或随时间丢失,但对理解代码为什么以当前形式存在至关重要。

新团队成员经常无法理解为什么应该避免某些实现,AI面临同样的限制。这种历史上下文——记录不仅决定了什么,还记录了为什么拒绝替代方案——对人类贡献者和AI系统都很有价值。

创建AI可访问的决策路径 #

解决方案需要创建系统来捕获并使决策过程对AI可访问。这不意味着记录每次对话,但意味着形式化重要决策及其推理。

在开源项目中,当决策在完全不同的上下文或平台中做出时,新贡献者发现极难理解实现是如何实现的或当前决策是如何做出的。这样的障碍最终阻碍贡献者参与并使贡献更加困难。AI面临相同的挑战。

这涉及技术挑战(与通信系统集成)和文化挑战(鼓励记录决策过程)。

InnerSource文化自然记录决策 #

开源项目在记录决策方面表现出色,因为透明度对其成功至关重要。贡献者需要理解代码不仅做什么,还要理解为什么存在以及解决什么问题。

InnerSource将这种文化带入组织内部。它鼓励团队记录他们的推理,公开讨论决策,并创建保留机构知识的审计轨迹。

该方法论提供决策记录框架、形式化非正式交流的流程,以及将代码更改链接到业务决策的实践。


组织约束的现实 #

其中许多挑战可能会在短期到中期内通过技术解决。改进的AI能力、更好的集成工具和增强的上下文理解将自动解决其中一些问题。

但组织不能等待完美的解决方案。它们面临立即的压力,需要在管理现实约束的同时利用AI能力:预算限制、风险厌恶、监管要求,以及改变大型组织需要时间的简单现实。

可操作性问题 #

当这些讨论出现时,有时会提出戏剧性的建议。我记得在微软时,我们有一个客户在推进内部开发能力方面遇到困难。当我们带来微软高管与客户会面时,他的建议很直接:“既然你们是大公司,为什么不直接收购拥有许多前沿工程师的公司?”

这个建议可能是正确的,但是…

做出戏剧性建议很容易:“收购创新公司”、“重建你的系统”、“替换抵制的员工”、“雇佣AI专家”。但大多数组织无法轻易实施这样的建议。

这样的观点在社交媒体上可能被认为是正确的,实际上,有远见的CEO快速执行这样的转型可能是理想的。所以这个论点绝对是正确的。

但真正的商业领导者和真实公司的中层管理者已经知道这一点。他们知道,他们知道。然而,他们无法执行这些解决方案有很多原因。他们无法向股东证明大型收购的合理性。他们缺乏成功并购后整合的人才。他们需要昂贵的顾问进行重大系统审查。他们受到现有合同、合规要求和运营依赖的约束。

那些无法遵循戏剧性建议的公司不一定是错误的——它们在"顾问"经常忽略的现实约束内运作。

渐进转型的必要性 #

这就是为什么方法论很重要。组织需要渐进转换的框架,由充满激情的领导者、热情的贡献者和持续的文化演变支持。

改变自己相对简单。改变环境、其他人和整个部门真的很难。然而,组织必须尽管有这些约束仍要前进。

约翰的问题 #

你,正在阅读这篇文章的人,可能有成长心态并积极寻找新的AI话题。如果你是一个高薪工程师,认为这样的发展是自然的,你肯定会利用这种成长心态来不断提高性能。你可能认为反对者在组织中没有立足之地。

但想想隔壁团队的约翰。他在成长倡议中的自愿合作是可疑的。他不是无能的——他相当有能力但需要更多努力来激励,或者他在其他地方很出色但在你的领域似乎缺乏动力,因为这对他没有直接好处。

这不一定是关于个人表现——这是一个组织问题。你如何创造约翰想要参与AI转型的条件?你如何调整激励措施,使合作感觉自然而不是被迫?


“工程师"的扩展定义 #

InnerSource最初被设计为一种工程方法论,用于处理源代码、信息和协作,同时鼓励新贡献者参与开发生态系统。但"工程师"的定义显然在扩展。

当Ruby on Rails开发时,“框架用户"成为工程社区的一部分。Rails提供了他们进入软件开发的入口点。现在,“Vibe Coding"和AI辅助开发代表了工程师的新入口点。

随着更多人参与"工程”,传统边界变得模糊。以前被认为是"非工程师"的人现在参与代码创建、系统设计和技术决策制定。

你可能仍然认为非工程师和工程师之间有明确的边界。虽然我理解对非工程师是否能在没有大量学习的情况下突然获得相当于工程师能力的怀疑,但不可否认的事实是,进入门槛在不断降低,参与障碍在变得更低。

软件创建的民主化 #

这种扩展反映了以前的技术变化。正如Ruby on Rails通过提供强大的抽象来民主化Web开发一样,AI通过降低代码生成的技术障碍来民主化软件创建。

这种民主化创造了新的挑战。当更多人可以创建软件时,你如何保持质量?当系统修改的障碍更低时,你如何确保安全?当技术劳动力更加多样化时,你如何保留机构知识?

InnerSource作为组织框架 #

InnerSource为这些挑战提供了答案,因为它从根本上是关于管理具有不同技能水平和动机的多样化贡献者社区。它提供了整合新贡献者、保持质量标准和保留机构知识的经过验证的实践。

随着"工程"扩展到包括AI辅助开发者,该方法论变得越来越重要。它提供了管理这种新现实的文化和方法论框架。


结论:开源方式作为AI策略 #

未来属于能够成功混合其独特知识和流程与AI能力的组织。这不是在人类专业知识和人工智能之间选择——而是创建放大两者的协同关系。

开源方式是成功AI协作的关键。 拥抱透明度、鼓励贡献、记录决策、分享知识和建设社区的组织将在AI时代繁荣。

InnerSource,作为开源原则的组织体现,为这种转型提供了框架。它解决了组织在将AI集成到其开发过程中时面临的信息共享、质量保证、可访问性和上下文保存的基本挑战。

前进的道路 #

这不是关于一夜之间实施InnerSource或强制戏剧性的组织变化。这是关于逐步采用使你的组织更加AI友好的实践,同时保留使其独特的知识和文化。

从小处开始。选择一个团队或项目。开始更开放地分享代码。更彻底地记录决策。在有意义的地方标准化。通过透明度建立信任。

掌握这种平衡的组织——在开放性和安全性之间,在标准化和独特性之间,在AI能力和人类判断之间——将定义软件开发的下一个时代。

问题不是AI是否会改变我们构建软件的方式。问题是你的组织是会被这种转型塑造,还是帮助塑造它。

选择,一如既往,是你的。但开源方式提供了一条经过验证的前进道路。

Yuki Hattori

Yuki Hattori

President of the InnerSource Commons Foundation
Sr. Architect at GitHub
Open Source Technical Advisor at IPA (Japanese government administration)
Author of two books on AI and GitHub
O’Reilly books translator for Prompt Enginnering for LLMs and two InnerSource books[1][2]
 
Opinions expressed here are my own and do not represent any organization I am affiliated with.