开源项目背后的数字告诉我们它将走向何方?这是 Jesus M. Gonzalez-Barahona 在 OSCON 2014 演讲 中将要讨论的主题,他将在本月晚些时候探讨四个开源云计算项目——OpenStack、CloudStack、Eucalyptus 和 OpenNebula,并将这些数字转化为有意义的分析。
Gonzalez-Barahona 了解分析。作为 Bitergia 的联合创始人,他是开源软件项目定量方面的专家。Bitergia 的目标是分析软件开发指标,并通过管理和改进项目流程来帮助项目和社区使用这些数字。
在这次采访中,Gonzalez-Barahona 与我谈论了他的 OSCON 2014 演讲,利用指标、趋势、可视化等等。

opensource.com
在不透露太多信息的情况下,您将在 OSCON 演讲中讨论什么?
我将展示对四个云基础设施项目(OpenStack、CloudStack、Eucalyptus 和 OpenNebula)周围开发社区的分析。 我将尝试展示,即使它们在许多方面差异很大,它们(或至少其中的一些)也显示出一些相似的趋势。
请告诉我们一些关于 Bitergia 的信息。 专注于开源项目有什么令人兴奋的地方?
我们认为,对于做出涉及自由和开源软件的理性决策,您需要牢记社区和开发社区。 为此,您需要表征它们的数字和数据。 我们的目标是提供这些数据并帮助您理解它。 开源软件项目是整个软件开发领域最令人兴奋的领域。 帮助理解它们,并为人们提供工具以提高他们对项目和社区的了解,使我们感到非常高兴,并且是持续的乐趣来源。
您认为开源项目应该注意哪些最重要的指标? 它们是否因项目而异?
它们可能因项目而异,但有些指标很有用。 例如,那些按队列(或世代)确定开发人员年龄的指标,可以立即显示项目随时间推移所经历的开发人员的吸引力和保留率。 只需快速浏览一下,您就可以确定经验丰富的人是否还在,是否获得了新鲜血液,或者是否面临很高的倦怠率。 从多样性的角度来看,公司参与度也很有趣。 当然,还有那些与中立性相关的指标:公司和独立开发人员如何相互互动,他们在互动时是否受到青睐。 活动指标已经使用了多年,这些指标显然也很有趣。 现在,我们正在努力研究性能指标:您的错误修复工作效果如何,或者您的代码审查过程中存在哪些瓶颈。
项目如何利用指标来为决策提供信息? 您能想到的最好例子是什么,表明项目如何从他们学到的东西中改进?
仅举两个例子
在看到他们的老化指标后,一家公司决定投资一项全新的政策,以使开发人员参与到他们喜爱的项目中,因为他们意识到他们在某些队列中失去了太多的开发人员,并且他们确实冒着在一两年内没有经验丰富的开发人员的风险。
对于一些开源基金会,我们一直在非常精确地确定隶属于某些公司的开发人员的参与度和努力程度,因为这对于这些公司在决定如何协调以支持项目时至关重要。
通过这些年与各种开源项目的指标合作,让您感到惊讶的是什么? 是否有任何似乎正在出现的趋势?
您一次又一次看到的是,企业支持在一些大型项目中至关重要。 诚然,个人开发人员很重要,但中/大型公司可以通过将有经验的人员分配到项目中来使开发人员的数量翻倍,从而促进它并产生很大的动力。 但这个过程并不容易:您必须仔细理解动态,以免在志愿开发人员或来自其他公司但没有以同样的速度投资该项目的其他人中引起倦怠。 有些人可能认为“帮助加速”一个项目只是投入资金(或开发人员)的问题。 相反,我们认为这几乎是一门艺术:您必须仔细跟踪正在发生的事情,并非常快速地对问题做出反应,甚至可以放慢速度,以免完全破坏工作。 但我们也看到,当它起作用时,真的有可能在短短几年内从几乎零到数百甚至数千名开发人员,并且仍然拥有可持续和健康的社区。
可视化如何帮助以有意义的方式快速向项目的社区提供数据快照?
周围有太多的数据,您需要正确的可视化来找出有趣的信息。 适当的图表,或者在某些情况下只是适当的数字,可以为您提供比大量数据更多的洞察力。 我想这在任何大数据问题中都很常见。 考虑到分析大型开源软件项目就是分析数百万条记录(提交、工单变更、帖子等)。 要么您具有正确的可视化,要么您迷失了方向。
拥有开源软件工具来分析开源项目为什么很重要?
如果您环顾四周,会发现一些用于分析和可视化开源软件开发的系统正在涌现。 但不幸的是,它们中的大多数都是专有的。 我之所以说不幸的是,是因为这对整个开源软件社区来说很遗憾。 不仅是因为您可能没有资源来使用这些系统,或者您不能按照您想要的方式使用它们,因为您无法控制它们。 即使它们是免费的,并且您基本上拥有了您所需要的,它们仍然可能没有像您希望的那样使您受益。 您无法按照您喜欢的方式进行创新。 您无法根据您的需求演变来调整系统。 您无法随意与其他数据或其他系统连接。
简而言之:您无法控制。 这不是什么新鲜事,这只是我们都更喜欢开源软件并发现它更方便和更具竞争力的原因列表。 但对我来说特别关注的是,在一个我们需要更好地理解我们的项目如何工作的领域,我们只能选择使用专有系统或服务。 在未来几年中,拥有所有开源软件、所有公开和可用的数据(包括中间数据)对于开源软件的分布式控制和改进至关重要。
1 条评论