保持冷静并实行内部开源
温斯顿·丘吉尔是一位有魅力的领袖和政治家,他能够在国家最需要的时候,把国家凝聚到伟大的事业上。他也喜欢偶尔在需要的时候爆发出名言,我不想再重复他那些著名的例子,只想解释一下这一句:
“Keep Calm and Move On”
尽管事实上他从未真正使用过这个特定的短语,但人们普遍猜测,他会由衷地赞同今天流行的这句话。“保持冷静并继续前进”的核心是克服障碍并找到实现目标的替代方法。即使在开源参与者不断增加的今天,仍有一些组织担心使用或贡献“自由和开放”的代码可能会出现问题。考虑到这一点,有另一种方法,可以让那些支持组织内部开源的人来帮助公司向前发展,即提倡在公司使用内部开源的模式。
什么是内部开源?它将开源的方法和最佳实践应用于内部软件开发工作。如果实施得当,将极大地激发开发人员的精力和热情,同时有利于推动软件再利用,提高组织的投资回报率。简言之,这是平息管理层恐惧的完美方法,他们虽然还没有准备好“完全开放源码”,但希望能充分利用开源的优势进行软件开发。内部开源也能够充分给予开发人员自由创新的空间。创建内部开源社区实际上与创建一个新的开源社区非常相似,但内部开源完全是建立在公司的信任圈内。下面,我重点阐述一下内部开源需要做什么,不要做什么。
要有明确的社区目标并确定合作者
要了解适合内部开源这种新的开发风格的团队和项目。选择已经扎根在特定的专业知识库中工作的团队做内部开源,并不合适。如果可以选择一个专门的团队来处理库或组件,提供多个团队使用,那么这些团队通常能够更好的应对内部开源这种新的开发模式。
不要忽略 bug/任务追踪和文档
正如在常规的开源社区中一样,降低团队之外的人贡献代码的门槛也非常重要。为此,请确保项目有一个最新的 bug/任务跟踪系统以及当前的文档,可以方便地被整个内源社区访问和使用。如果缺乏文档,文档就会成为新贡献者的任务,这可能会导致项目得到一些不必要的、无意义的贡献者。将bug/任务追踪和文档提供给潜在的新贡献者和社区成员,有利于他们更快获得有效信息,以便于贡献一些有用和有价值的东西。
要定义你的贡献管理模型
思考一下,团队外人员的贡献如何能回馈给内部开源社区。这是一个善意的独裁政权,一个人批准所有的改变?还是将控制权分配给贡献者委员会(贡献者委员会批准和审查来自核心社区之外的贡献)?虽然前者在像 Linux 这样的项目中运行良好,但是采用后者(或类似的方法)可能更简单且更有效,后者使所有社区贡献者都能够掌握控制权。分散代码提交的控制权,也给了潜在的贡献者一些期望,在真正的精英社区,为项目贡献价值最大的人,可以并且应当成为掌握提交控制权的其中一人。
不要忘了人的因素
为了使内部开源发挥作用,公司需要考虑这种模式所固有的人力资源和薪酬影响。例如,开发人员在其必要工作之外的项目中所做的贡献,必须得到衡量和赞扬,这是至关重要的。可能还有一些管理问题和其他文化障碍需要解决。这些因素虽然不是内部开源的主要“搅局者”,但如果不能尽早解决这些问题,会使公司向内部开源的过渡变得更加困难。
最后
记住关于开源的箴言: 提前发布,经常发布 (release early, release often)。选择一个或两个小项目开始内部开源,让团队以开源协作的方式进行迭代。这样不仅可以获得一些快速的胜利,而且能够展示开源方法在工作中的价值。不会有领导者反对团队协作,也不会有领导反驳团队协作的益处,但通过实施内部开源来证明协作的好处,有利于公司未来在管理层的支持下走向更开放的开源。
有关在组织中实施开放源代码风格实践的其他资源,请参阅《开放源代码方式手册》。
关于作者
Guy Martin – Guy Martin 是 Open@Autodesk 的主管,他代表公司向更广泛的开源社区发展,并与内部团队合作,帮助他们加速开源的使用和协作。在加入 Autodesk 之前,他帮助创立了三星开源集团(Samsung Open Source Group),这是一个代表公司为关键的开源项目做出持续贡献的团队。
本文由作者 Guy Martin 发表在 Opensource.com 上:Keep calm and innersource on。 由 Gitee 精心翻译共享,本文在 Creative Commons BY-SA 4.0 许可证下发布。转载请注明文章来源。
本文系作者 @Gitee 原创发布在 Gitee 官方博客。未经许可,禁止转载。