在InnerSource社区中征求贡献比在OpenSource社区中征求更具挑战性,原因有:
-
InnerSource社区中潜在的 贡献者(Contributor)数量很少。
-
贡献者 Contributor_会想要在他们的工作时间内做出贡献,省下他们的休息时间。
-
在InnerSource中工作不一定会是 贡献者(Contributor)工作正式绩效目标的一部分,因此在Inner Source上工作花费时间和精力,可能会影响到他们实现本身的绩效。
这就是为什么对于Trusted Committer而言,使潜在 贡献者(Contributor)向贡献者成长的重要性。有很多事情可以帮助到您实现这个目的:
-
在每个代码存储库中都会有一个README.md。优秀的README.md解释了代码库中的内容及其用途。此外,它应提供有关如何获取,构建,测试和使用代码库中软件的详细说明,包括有关许可证的信息。
-
拥有一个良好的CONTRIBUTING.md,其中概述了 贡献者(Contributor)的期望。它应回答常见问题,例如:
-
如何提交错误报告或功能请求?
-
如有疑问,应与谁联系,如何联系?
-
代码样式,分支或提交消息的约定是什么?
-
贡献“完成”的定义是什么?
-
有哪些管理贡献的流程步骤?
-
在贡献被接受后,我对支持贡献代码有什么期望?
-
行为准则是什么,社区运作的准则是什么?
-
如果您拥有该软件的内部许可(在某些公司中这是在法人之间共享软件的先决条件),请提供该许可的副本以及对外行的权利和义务的说明。
除了这些文档任务外,与开源软件开发类似,应该容易且直接地运行和测试潜在贡献者在本地开发的软件,以便他们可以尽量不用去实施和验证其贡献。
有两种常见的贡献模型:共享代码库 以及 fork和join。两者都有优势,作为Trusted Committer,你应该希望社区同时支持这两种模型,以适应贡献者和潜在贡献者的不同需求。您的贡献者经常会遇到有关贡献过程或社区本身的问题,而必须有人来回答这些问题。因此,对于任何InnerSource社区来说,重要的是要有一个或多个联系人可以回答这些问题。通常,来自“Trusted Committer”组中的某个人是联系人,否则,他们需要确保有“随时待命”的社区成员。
帮助潜在的 贡献者(Contributor)确定需要哪些贡献也很重要。这些可以是代码贡献,也可以是非代码贡献,例如编写文档,创建插图或组织活动。一种常见的实现方法是在社区中设置“新手任务”,或为 贡献者(Contributor)提供一个任务市场让他们能够挑选任务。
总而言之,对于公司环境中的InnerSource社区而言,将贡献的障碍降低到最低水平,以允许更多人贡献是非常重要的。这意味着成员既可以访问有用的文档,也可以回答任何问题,以此鼓励协作。总之,Trusted Committer应确保加入社区和参与贡献对他人来说是良好的经历。