开源软件使用_从使用开源软件衡量社区健康中吸取的惨痛教训

开源软件使用

衡量开源社区的健康状况越来越重要。 从开源社区形成的那一刻起,研究人员,维护人员和组织就试图了解社区是否健康,以及使社区变得健康的原因。

“如果不衡量,就无法改善”
-彼得·德鲁克

开源软件社区健康分析(CHAOSS)项目提供了一种了解社区健康的正式方法。 该项目于2017年开始 ,将四个利益相关者(开源社区,学术界,组织和工具制造商)召集到Linux基金会的保护下。 GrimoireLab (本文的重点)是CHAOSS的共同创建项目之一。

从事开源工作已超过14年,并在攻读博士学位期间帮助组织启动了CHAOSS项目,同时研究了组织对开源的参与 。 在获得博士学位后,我加入了Bitergia ,后者是CHAOSS的共同创立者,他通过提供其开源工具集GrimoireLab共同创立了CHAOSS。 在我的新工作中,我学到了一些我认为与想要开发用于分析开源项目的工具的人有关的见解。 GrimoireLab有一个有趣的故事,因为它包含了英雄旅程的所有要素,我将分三步分享,以及沿途学习的一些经验教训。

第1幕:出发

英雄之旅的第一幕描述了还未到位的英雄和环境,并呼吁人们冒险。

GrimoireLab始于16年前的学术界,当时西班牙雷伊·胡安·卡洛斯大学的LibreSoft团队开发了用于分析软件开发项目的工具。 为了科学严谨并允许其工作可复制,所有软件均在开放源代码许可下发布。

在与组织合作以分析其软件开发项目并与该领域的专家一起验证工具时,GrimoireLab的第一批工具引起了组织的极大兴趣。 分析软件项目的商业价值显而易见, Bitergia的成立是为了提供软件开发分析,从而提高了开源GrimoireLab及其工具集的价值。

简而言之,GrimoireLab诞生于对分析和理解开源项目和社区的渴望。 冒险号召来自许诺宝藏的组织。 当Bitergia将GrimoireLab从舒适的学术环境带入未知的商业世界时,GrimoireLab超越了英雄的征途。

第二幕:启动

英雄旅程的第二步引入了考验,盟友和敌人,英雄通过克服一个又一个的挑战而成长。 英雄接近最深处的洞穴,遇到了最终的挑战,甚至可能死而重生。 这就是GrimoireLab的命运。

GrimoireLab从16年的开源项目分析中学到的经验教训为GrimoireLab的后期设计奠定了基础。 并非所有汲取的教训都很容易分享,有些教训仍然带有失败的恶臭。

选择数据库技术

关系模式是主要的关系模式,它仅允许预定的数据并对其执行规则。 不同的数据源(例如,邮件列表档案,Git日志历史记录或问题跟踪器API)具有不同的数据点,这些数据点值得收集和分析。

第二个问题是,某些数据字段可以在数据源之间进行映射和共享(例如,日期,作者),而其他数据字段是唯一的,并且需要对关系数据模式进行调整(例如,提交哈希),然后需要对数据字段进行更改。与数据库交互的数据收集和数据分析组件。 此外,开源协作平台不断发展并更改其数据API,这需要更改数据库架构。

因此,GrimoireLab必须重新设计其工具以放弃关系数据库及其缺点,这阻碍了开源社区的分析。 在英雄的旅程中,使用关系数据库构建的原始GrimoireLab工具未能通过试验,因此不得不死亡。 来自黑社会的新GrimoireLab平台设计得到了重生。

在设计当前的GrimoireLab平台时,工程师选择了Elasticsearch作为数据库。 GrimoireLab现在将JSON文件加载到Elasticsearch中,并从该灵活数据存储中查询数据。 JSON文件对于收集社区数据的不同数据源而言可能是唯一的,从而可以灵活地添加其他数据源并使不同的数据可用。

选择Elasticsearch的一个令人信服的理由是它的数据可视化平台Kibana ,它使GrimoireLab工程师能够专注于数据并重用代码以对其进行可视化。

经验教训:使用灵活的数据库架构可以处理数据更改。

管理社区成员的身份和从属关系

GrimoireLab面临的挑战之一是,开源社区使用各种不同的协作平台。 GitHub和GitLab是流行的平台,其托管源代码存储库,问题跟踪程序以及简化协作软件开发的相关工具。 电子邮件列表,即时消息传递和论坛是用于交流和协作的平台。

当我们要分析开源社区健康时,我们对所有这些平台中的社区交互感兴趣。 为了获得对社区的完整见解,我们希望集成来自这些不同数据源的数据以进行分析。

集成来自多个数据源的数据的挑战之一是确定贡献者的身份。 社区成员向各种社区捐款时可以使用不同的别名或电子邮件地址。 例如,我使用我的个人,大学和工作电子邮件地址来写邮件列表,并以“ Georg Link”,“ Georg JP Link”,“ G。Link”和“ GeorgLink”进行了贡献。 这可能不是选择,因为社区成员在首选用户名不可用时可能不得不选择其他用户名。 但是,要全面了解社区成员在开源社区中的贡献,有必要将所有这些不同的身份组合为一个。

一个相关的挑战是建立社区成员的隶属关系。 在当今的生态系统中,代表组织或雇主为开源社区做出了许多贡献。 公司越来越依赖开源软件并为之做出贡献。 分析开源社区健康的关键要素是通过员工的参与来了解代理参与哪些组织。 有时,社区成员的隶属关系很明显,例如,当他们将工作电子邮件用于组织的域时。 有时,无法直接从数据源获得此信息,因此必须手动输入。

GrimoireLab在SortingHat中找到一个盟友后可以克服这些挑战,该盟友可以识别人员及其隶属关系。 作为GrimoireLab的身份提供者, SortingHat通过收集有关捐献人员的信息来丰富收集的数据

经验教训:管理人员的身份和从属关系是在开源中进行质量分析的关键要素。

可视化社区健康数据

在英雄的旅途中,英雄可能被引诱为导致危险和挫折的“捷径”。 这就是GrimoireLab的硬编码可视化案例。 它的前身通过硬编码的“快速而肮脏的”可视化显示数据。 更改数据结构或表示形式需要更改源代码。

选择该快捷方式是因为用户也是开发人员,因此他们可以根据需要调整可视化效果。 但是,当Bitergia开始向客户提供社区健康分析时,它造成了挫折。 新用户希望浏览其数据,但无法修改源代码。

我们的英雄GrimoireLab遇到了一个盟友,可以使用通用的数据探索和可视化工具进行可视化处理,从而摆脱了困境。

GrimoireLab平台现在使用Kibana作为可视化的默认工具。 用户可以自由查询数据并创建自定义可视化。 这需要有关基础数据结构和含义的知识。 从工具的角度来看,数据结构的更改不需要更改通用数据浏览和可视化工具。

提供通用数据探索和可视化工具的一个注意事项是用户重视速赢。 数据应立即可视化,以向用户显示至少一个社区的概况。 因此, GrimoireLab Sigils允许共享可视化和仪表板。

获得的经验:如果数据的格式和类型可能发生变化,请不要对可视化进行硬编码。

向其他工具提供数据

对于拥有可靠盟友来解决问题的英雄而言,某些审判是直截了当的。 英雄不需要了解如何克服审判,也不需要感觉自己在克服审判中有任何作用。 但是,如果没有英雄,盟军将无法克服审判,甚至可能不知道这一点。

GrimoireLab用户对想要查看哪些数据以及如何查看它们有不同的偏好。 有些人可能乐于查询数据库,有些人乐于快速浏览仪表板,有些人乐于使用通用工具直观地浏览数据,而有些人只能通过其他人的报告或公告访问数据。 。

后一组可以使用数据快照。 但是,就像公司股价一样,社区健康指标也会发生变化。 因此,用户可能希望在其网站或其他地方包括“实时”指标和可视化,因此GrimoireLab为不同的用户类型提供了两个选项。

GrimoireLab中的第一个选项是使用Kibana通过HTML的嵌入式框架嵌入可视化和仪表板。 用户在Kibana中设计可视化并嵌入该可视化,该可视化是从Kibana加载的最新信息。 这要求Kibana可以公开访问。 此选项非常适合需要快速共享社区健康指标但又不想花费精力自定义可视化的用户。

经验教训:提供一种共享“实时”指标的简便方法。

第二个选项是让用户通过直接查询Elasticsearch API来构建自定义集成。 用户可以在数据库中查询所需的数据,然后构建自定义的可视化文件。 对于希望将其数据集成到其他平台并完全控制可视化和用户体验的用户,此选项非常有用。 集成商可以使用Kibana探索数据,形成特定查询,然后将查询从Kibana复制到他们自己的集成工作中。

经验教训:提供一种简单的方法来探索数据并为其他工具可能需要的数据建立自定义查询。

根据原始数据计算指标

随着英雄在每次审判中的成长,旅程将继续进行更具挑战性的审判,使故事保持吸引力。 GrimoireLab克服了收集数据,有效存储和可视化数据的试验。 下一个试验是从原始数据中产生有意义的指标。

为了演示,让我们看一下CHAOSS指标 。 可以根据可直接从数据源获得的数据来构建某些指标。 例如, “代码更改”是Git日志中的提交计数。 其他指标不是直接可用的,但需要首先处理数据。 例如,“ 问题响应时间”要求计算打开问题与提交第一个响应之间的时间差。

我希望随着CHAOSS继续定义指标,它们将变得更加复杂。 复杂度量可以基于其他度量。 诸如GrimoireLab之类的软件开发分析工具必须能够计算这些复杂的指标。

GrimoireLab的GrimoireELK在执行任何操作之前会存储传入的原始数据 。 然后,对数据进行充实,并将该过程的结果作为充实的数据单独存储。 然后进行研究 ,其中以不同的方式将来自不同数据源的丰富数据和原始数据进行组合,并针对特定目的进行计算。 例如,GrimoireLab的默认研究之一可以识别临时,常规和核心贡献者,并能够分析这些群体的贡献。

经验教训:丰富数据可能需要几个步骤,这些步骤需要将简单指标用于更复杂的指标,这些复杂指标由多个指标组合而成。

第三幕:回归

克服考验,获得奖励后,英雄的旅程的第三幕开始,英雄返回家园。 复活可以从某种复活或重生开始进行惊人的行动。 最后,英雄获得了作为两个世界的主人生活的自由。 GrimoireLab重生了。 从其祖先的骨灰中汲取的教训,已在我们今天拥有的完全复活(即经过重新设计)的GrimoireLab平台中实施。

GrimoireLab以认可的形式获得了奖励。 作为Linux基金会CHAOSS项目的创始项目,GrimoireLab上升为更大生态系统的一部分。 尽管GrimoireLab最初是由一家位于西班牙的小公司起家,但现在已成为Linux基金会创建的快速发展的商业开源生态系统的一部分,该生态系统由五个工作组和数十个贡献者组成

不受GNU通用公共许可证的约束,GrimoireLab可以自由选择自己的命运。 最重要的是,它的用户也是如此。

翻译自: https://opensource.com/article/20/3/grimoirelab

开源软件使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值