We're sunsetting PodQuest on 2025-07-28. Thank you for your support!
Export Podcast Subscriptions
cover of episode Github Network Analysis

Github Network Analysis

2025/6/22
logo of podcast Data Skeptic

Data Skeptic

AI Deep Dive AI Chapters Transcript
People
A
Asaf
G
Gabriel Ramirez
K
Kyle
Topics
Asaf:我认为组织网络分析不应被视为严格的成绩单,不应期望开发者和项目经理有固定的模式。网络分析和中心性指标不是万能的,仪表板不适合,每个组织和网络都是不同的。定量分析可以指出需要调查的地方,但还需要定性研究,这更多关乎组织健康而非员工成功。如果发现资深专家或主题专家位于网络边缘,可能表明他们没有充分参与知识传递,或者管理者没有充分利用他们。这可能关系到组织健康和员工表现。 Kyle:组织可以根据情况选择让专家培训他人或专注于自己的工作,GH Explorer项目可以帮助了解如何组织。 Gabriel Ramirez:我创建了一个丰富的数据集,包括工程师、项目经理和参与软件制作相关对话的其他人,而不仅仅是提交代码。链接是用户和GitHub对象之间的所有交互,例如创建问题、在问题中被提及、批准或拒绝拉取请求以及参与讨论。我希望看到所有团队成员紧密合作。我不认为这些指标应该放在仪表板上,因为脱离了管理者的对话,这些指标可能意义不大,甚至可能意味着相反的事情。成为经理后,我意识到自己始终处于网络的中心,这让我意识到我是一个关键节点,如果我休假或离职,网络就会崩溃,这不是我希望看到的,经理应该赋能他人,而不是占用他们的工作。仅仅依靠数字无法量化所有的定性因素,人们的故事以及正在发生的事情,人们可能会通过在所有事情上发表评论来操纵系统,但评论的质量可能很低,因此网络指标可能会很高,但工作质量却很低。网络分析只是更大拼图中的一部分,而不是我们可以作为任何依据的指标。

Deep Dive

Chapters
This chapter explores using GitHub metadata (pull requests, issues, discussions) for network analysis to understand team collaboration. It introduces the concept of analyzing this data as a bipartite graph and using network centrality measures to reveal organizational dynamics.
  • GitHub metadata, including pull requests, issues, and discussions, can be analyzed as a bipartite graph to understand team collaboration.
  • Network centrality measures, such as eigenvector and betweenness centrality, reveal organizational dynamics.
  • LLMs can be used to analyze networks, particularly smaller ones, providing insights into team collaboration.

Shownotes Transcript

在本期节目中,我们将讨论如何使用 GitHub 数据作为网络来提取有关团队合作的见解。我们的嘉宾 Gabriel Ramirez(GitHub 通知团队经理)将展示如何应用网络分析来更好地理解和改进其工程团队内部的协作,方法是将 GitHub 元数据(例如拉取请求、问题和讨论)分析为人员和项目的二部图。我们将讨论的一些见解包括:网络中心性度量(如特征向量和介数中心性)如何揭示组织动态,假期模式如何影响团队连接性,以及如何分散沟通中心以促进更健康的协作。Gabriel 的开源项目 GH Graph Explorer 使其他经理和工程师能够使用 Python、Neo4j、Gephi 和大型语言模型 (LLM) 等工具提取、可视化和分析他们自己的 GitHub 活动以生成见解,但始终记住——不要轻信结果。相反,应使用结果来指导您的定性调查。</context> <raw_text>0 您正在收听 Data Skeptic:图与网络播客,该播客探讨了图数据结构如何影响科学、工业以及其他领域。欢迎收听 Data Skeptic:图与网络的另一期节目。今天,我们将探讨我最喜欢的主题之一,即围绕 Git、Git 提交、拉取请求以及所有这些好东西的元数据。软件开发协作的方式以及我们如何将其视为网络。

Asaf,我认为这完全符合你的专业领域。这难道不是组织网络分析吗?正是如此。这是一个非常有趣的数据集。真的,非常酷。是的,它就在那里,对吧?如果你的组织正在使用 GitHub,那么……

并且有竞争对手。我不想以这种方式表达偏见,但是 Git 作为你的源代码控制工具,它拥有丰富的元数据。今天,我们将更多地关注项目管理方面,我不知道你是否使用过,但是 GitHub Issues,我使用过一点。所以类似于许多其他任务跟踪软件,但是它与 GitHub 集成在一起。

人们可以互相提及,所以你可以看到谁在相同的讨论线程中,谁在评论相同的 PR,突然之间我们就有了节点和边。Gabriel 和我讨论的一个问题是,即使他是一位经理,试图弄清楚我该如何更好地支持我的团队并最大限度地发挥团队的作用,也没有严格的成绩单,不像我希望开发人员看起来像这种类型的节点,项目经理必须看起来不一样,它是

它符合当时的组织需求。这只是对该网络如何协作的一种看法。通常,当人们听到网络分析和中心性度量以及各种度量时,他们会说,好吧,我们为什么不能从中制作一个仪表板呢?但这正是重点。它不是一刀切的。每个组织都是不同的。每个网络都是不同的。这就是为什么仪表板不是合适的工具。

你可以使用定量部分来指引你需要调查的地方,但随后你需要进行定性调查。当然。在我看来,它更多的是关于组织健康,而不是员工成功或类似的东西。你的团队结构良好吗?或者你需要以某种方式重新安排它?

好吧,这取决于情况。再次回到定量-定量。假设你是高级人员或 SME,你是专家。假设你发现他们在网络的边缘。这是你想避免的事情,对吧?现在你需要知道,这是他们的错吗?也许他们没有足够参与传递他们的知识。或者,假设你是经理,也许是你的错。也许你……

我不知道,也许把他们送到边缘并低估了他们。所以它既可以是组织的健康状况,也可以是绩效。

是的,这里存在两极分化。在一种情况下,我可以这样说,我希望我的主题专家成为培训师,并传播思想和教导人们。或者在另一种情况下,我说,我需要这些人埋头苦干。他们只需要在需要时提供帮助,让其他人成为自发者。而且这些策略本身并没有错。但是我们今天将要讨论的 GH Explorer 项目中的一些工具可能会让你对如何管理你的组织有一些了解。

Gabriel 做的一件有趣的事情是使用 LLM 来分析网络。我尝试使用 HHPT 来分析一些网络。我向它输入了小型、中型和大型网络,并提示它分析网络并给我一些见解。这就是我给它的提示,一个非常简单的提示。

在简单的网络上,尤其是在可以在网上找到额外数据的网络上,它给出了非常好的分析,非常棒的分析,以及从互联网上获得的关于节点的更多信息和属性。这真的很酷。但是网络越大,它就越会(我不会说它产生幻觉,但是……)

失去它的思路。它没有提供关于不同集群的信息,尽管它可以提供信息,有时它会提供,有时它不会。所以我认为它还不适用于大型网络,但是对于小型网络(我说的小型网络是指 100、200 个节点),它确实做得非常好。是的,要求语言模型进行某种网络分析是一件很有趣的事情,因为……

语言模型能够做到这一点并不完全显而易见。我的意思是,也许在小型示例案例中是这样,但是如果我给你一些网络数据,我相信你有经验来分析它。假设我们把它交给一些大学生,并给他们 48 小时的时间来查看它,而他们甚至对工具都很陌生。他们不可能拥有相同的洞察力水平。而且我现在不知道 LLM 的技能水平。

我也不知道。这就是为什么我尝试了,结果非常令人惊叹。顺便说一句,对于我的学生来说,这是……因为,你知道,现在每个人都使用 LLM,而且它有点……就像使用……就像告诉学习数学的人,不要使用计算器一样,对吧?这是荒谬的。所以我告诉我的学生,使用 LLM,用 LLM 分析你的网络。我要求你做的是查看它……

批判性地。因此,当你得到分析结果后,你需要找出解释它的原因,找出它的错误之处,为什么等等。他们必须学习如何使用网络分析来批判性地看待 LLM 的结果。正如我所说,对于大型网络,你仍然需要人工参与来理解正在发生的事情。

就我所知,我最近在 All In 播客上听到 Google 创始人 Sergey Brin 说他做过类似的练习,询问 Gemini 有关他的一些数据,并根据此推荐了一名员工晋升。所以这也许是一个播客的好轶事,但事实就是这样。我很高兴看到我和 Google 的创始人意见一致。

好的。是的,让我们进入采访环节。让我们开始吧。

我是 Gabriel Ramirez,我想我的隶属关系是 GitHub。我是 GitHub 通知团队的经理。你能分享一些关于这个角色的细节吗?基本上,我们的团队运行你可能从 GitHub 收到的大部分通信。因此,每次你打开拉取请求并被要求审查它,或者你标记某人来审查他们的拉取请求、问题、讨论……

任何来自 GitHub 的 Slack 和网络电子邮件,当然还有移动端的电子邮件,所有这些通知都通过我的团队正在使用和构建的系统进行。如果我们更广泛地谈论,让我们说,源代码控制,我想 Git 是一个杰出的例子,对于不熟悉它的听众来说,你认为他们应该具备什么样的背景才能欣赏我们将要讨论的项目?嗯。

我的背景实际上是人类学、社会学,在某种程度上还有阿拉伯语,我是在职业生涯中学习的。这实际上就是我进入网络科学的方式。所以它实际上是关于理解人们沟通和存在的结构。我

我认为这是主要的前提条件。当然,有一些方法可以进行分析。你不必有特定的背景才能获得好处。基本上,我认为唯一的前提条件是你必须能够有兴趣,并且能够与人们谈论他们正在做的事情,以帮助对收集的一些数据进行情境化。

我的灵感实际上来自 Zachary 的空手道俱乐部。这是一个非常古老的数据集,可以追溯到(我认为)甚至在他们拥有量化网络的计算方法之前,对吧?你有点人,人类学家,我忘了他的名字了,但他只是在一张纸上画线。

我认为我必须核实一下,但对我来说,这似乎是试图弄清楚谁在与谁交谈以及网络将如何因争吵而分裂。所以我觉得如果你喜欢探索人和探索人类,我认为这就是你需要的背景。是的。

好吧,你提到你对网络结构的兴趣部分源于你的人类学和阿拉伯语背景以及这些东西。你好像说的很自然。这似乎不是一个显而易见的见解。也许是你必须得出的结论。网络结构在哪些方面,你知道,你是如何从这些起源找到你的方向的?

它始于学习社会学。这是我们学习的计算方法之一。至少我在本科时是这样。我认为是 UCI 和 net 之类的东西。我忘了如何发音了。但那是我们最初用来研究网络的工具。在我读本科的时候,Twitter 变得非常流行。我们经历了像发生在伊朗的 Twitter 革命这样的事件。这确实引起了我的注意。它让我对网络本身产生了兴趣,对吧?就像在线网络一样。

在那之后,在研究生院学习阿拉伯语时,我与我的室友(一位计算机科学硕士)进行了一次合作。他当时在马里兰大学使用 NodeXL,他们在那里开发了该工具。

我很惊讶于你可以如何获取 Twitter 的结构并对其进行探索和研究。我们一起在一个项目中帮助了他,我帮助他为阿拉伯之春中发生的事情提供了一些背景。

从我的角度来看,对吧,作为一名正在学习阿拉伯语并以某种研究方式阅读这些文章的人,以及他如何以网络方式使用网络科学来做到这一点。所以我们花了一两周时间一起探索这些东西,他最终写了,比如与其他人合作并撰写了一篇关于它的论文。所以在那之后,我就迷上了,我想,

哇,这是有史以来最有趣的事情。它鼓励我开始学习编程。在我从阿拉伯语硕士毕业后,我在埃及待了一段时间,我直接回到了计算机科学,我学习了很多课程,我最终在国务院用开源数据做了一些网络分析。我

在那之后,我一直坚持下去,把它放在脑后。每当我想要了解我所在的组织的新事物,或者只是了解我与谁一起工作时,我总是会回到这些网络结构和我已经完成的网络研究中。我从未放弃过。

最终,当我成为 GitHub 的经理时,我找到了一个绝佳的机会来探索我参与的网络,即我的下属(基本上是 11 个人)和项目。我觉得这会让我更好地了解人们在做什么,这样我就可以帮助改进我的团队。我开始将它用作改进自己作为经理的工具。这就是我如何开发这个工具的。我在过去一年半的时间里一直在开发它。所以当每个人在某个时候学习,开始学习编程,就像你一样,

也许你第一天就遇到了 Git 和源代码控制,我当然没有,但这是你学习的许多事情之一。在什么时刻你意识到有丰富的元数据可用?

在当今数据驱动的世界中,能够从数据中提取价值不仅仅是一种优势,它至关重要。掌握分析可以改变你的职业生涯和你工作的组织。轮到你去通过分析改变你的职业生涯并推动组织成功。让我告诉你佐治亚理工学院谢勒商学院的商业分析研究生证书。

它是 100% 在线课程。谢勒商学院在美国排名前 10 的商学院中为忙碌的商业分析专业人士提供服务。他们拥有一流的教师团队,可以帮助你在一年的时间内毕业,但是

但是也许你像我一样忙碌,你想慢一点。你可以将灵活性与严格的教育相结合。谢勒的研究生证书项目适应你的生活,而不是相反。他们的项目是为像我们这样的专业人士设计的,他们希望利用数据并解决现实世界的商业挑战,但需要灵活的时间和安排。

这就是为什么你可以根据自己的情况安排课程。最重要的是,你不仅仅是在获得证书。你还可以打开佐治亚理工学院享有盛誉的 MBA 项目的大门。现在是时候成为佐治亚理工学院商业分析研究生证书的数据精通领导者了。2026 年春季的申请现已开放。

访问 techgradcertificates.com 了解更多信息并在 8 月 1 日截止日期之前申请,网址为 techgradcertificates.com。

Delete.me 使你能够随时轻松、快速、安全地删除你的个人在线数据,当监控和数据泄露频繁发生时,每个人都容易受到攻击。像我们许多喜欢在线连接的人一样,我认真对待我的隐私和个人信息。隐私保护从未如此重要。这就是 Delete.me 的用武之地。他们的专家团队专门负责在不良行为者利用你的敏感数据之前,将其从数据经纪人网站中删除。

在一个季度内,他们审查了超过 3000 个包含我个人信息的列表。他们发送了详细的报告,准确显示他们发现了什么以及他们删除了什么。他们发现和保护了多少暴露的数据令人难以置信,同时你节省了无数小时的沮丧。通过注册 Delete Me,现在以我们听众的特别折扣价掌控你的数据,让你的私人生活保持私密。今天,通过短信发送 DATA

到 64,000 获取 Delete Me 计划 20% 的折扣。获得 20% 折扣的唯一方法是将 DATA 发送到 64,000。这是 DATA 到 64,000。可能需要支付短信和数据费。在什么时刻你意识到有丰富的元数据可用?

我花了一段时间才开始使用 Git。说实话,我不知道 Git 和 GitHub 之间的区别。即使我在 Python 中编程了一两年,我也没有使用源代码控制。我只是将东西保存到我的 Google Drive 中。最终,当我开始专业编程时,对吧,我越来越习惯于使用 GitHub。

我马上就意识到了这一点,我会说,仅仅是因为我有社会网络分析的背景,而且我知道人们已经用电子邮件做过这件事。我知道人们已经用许多与工作相关的事情做过这件事。

但这只是我没有探索的东西。部分原因是,你知道,时间,以及道德问题,说实话。就像如果你是同伴,并且正在收集关于你同伴网络的数据,并且让大家知道,这有点,我不知道,这有点像监视你的邻居。

这种情况。所以我一直知道它就在那里。我只是,我只是不想让人们感到不舒服。但是当我成为经理后,当然,你的整个工作就是了解你的团队,了解他们在做什么。如果我开始进行这种网络分析,也许我可以为我的团队做出最好的案例,并且改进我自己作为经理的能力。这就是我如何慢慢地开始做这件事的。这是

这是我多年来一直在思考的事情,但我从来没有时间或感觉不舒服真正开始做这件事。对我来说,始终存在一个强烈的伦理问题。

好吧,对于许多人来说,你可以说他们工作成果的很大一部分是他们对 Git 的提交。我的意思是,你仍然在开会等等,但是每天,我认为很多专业人士都会进行多次提交,也许每小时一次。因此,你拥有一个非常有趣的日志,记录了他们所做的所有更改。当然,还有来回的拉取请求等等。但是如果我们要谈论网络,在这种情况下,我们的节点和边是什么?

就我而言,我正在收集的数据是一个二部图,对吧?所以一端上的节点是用户。所以那是我的句柄,你的句柄,我的团队成员的句柄。然后网络的另一端是我所谓的 GitHub 对象。这可以是三件主要的事情。我可以构建更多,但我现在使用的那些是拉取请求、问题和讨论。

这些是节点。链接是它们之间发生的一切。当你创建一个问题时,那将是你和该问题之间的链接。当你在问题中被提及时,那将是你和你被提及的问题之间的链接。对于 PR 来说,创建、批准、拒绝审查的 PR 都是一样的。我为此准备了一些东西。讨论也是一样的。所以

我喜欢创建一个非常丰富的数据集,其中包括实际进行提交的工程师,以及 PM、主管、参与整个软件制作对话的人,这些对话不仅仅是提交。我认为提交非常有趣。但作为一名经理,我还必须处理我的团队的所有联系。这就是为什么我比仅仅提交更进一步,朝着不同的方向前进。

是的,所以我可以查看,然后我们有了所有正在发展的代码之上的整个结构,它描述了,你知道,从问题开始,组织想要更改什么,然后是其中的讨论,我将引用某些人,也许将其重新分配给他们,最终将其提交到拉取请求。所以二部图,我得到了这个非常丰富的数据集。你能大致告诉我们它的结构吗?我有一些直觉,但一些关键发现是什么?

它看起来像一个相当正常的网络,其中一些节点高度连接。

有些节点位于边缘,有些节点比较孤立和连接。所以它遵循相同的幂律分布。它非常清楚地显示了社区,特别是那些倾向于一起工作的人。它将他们紧密地联系在一起。那些没有一起工作的人,他们相距较远。通常,你会看到非常资深的人位于网络的中心,因为他们碰巧接触了很多不同的问题。

这个独立的网络随时间而变化。有时在假期期间,它显然非常稀疏。例如 12 月 25 日,什么也没有。人们没有工作。但是其他时候,例如在季度末或工作繁重的时候,网络实际上连接得很紧密,你会看到用户网络中的每个人,我会取他们的网络中心性度量,他们的特征向量中心性,他们往往具有几乎

非常相似的中心性,这意味着每个人都非常紧密地联系在一起。连接程度非常接近。我根据我的网络连接程度来衡量我的成功,对吧?如果我的网络非常稀疏,并且有一些人高度集中连接,而其他人都在外面,我认为这是我自己的失败。我喜欢看到,我喜欢格式化网络,在那里我与之合作的所有报告都在一起工作,并以某种方式连接在一起,所以。

网络科学给我们提供的一些指标对你来说是否很有趣?比如你提到的网络中心性。这应该放在公司 KPI 仪表板上吗?你知道,我们将中心性提高到第三季度的目标,还是目前处于更具探索性的阶段?

它是一种探索性的方法。所以我可以调出,所以主要的,我想,我使用的度量,显然是节点,对吧?网络中有多少个节点,这些节点的密度,以查看每个人连接的紧密程度。我使用特征向量中心性来找出高度连接的节点的连接性,即位于中心的人。使用介数中心性来找出位于不同集群之间的人。

这些是我在分析事物时倾向于使用的基本网络度量。没有什么特别之处。我还使用 Levain 的模块化分数来对社区算法进行社区划分。所以所有这些都是我使用的工具。是否需要放在仪表板上或

我不知道。我对这个问题有强烈的看法。我认为答案是否定的,主要是因为当你将这些度量从你作为经理进行的对话中拿出来时,对吧。作为团队,嗯,

它们可能几乎没有任何意义。它们可能意味着两件相反的事情。让我举个例子,对吧?当我第一次成为经理时,我意识到我一直处于网络的中心。起初,我很高兴。就像,我很重要。我是经理。但过了一会儿,我开始意识到我是关键节点,对吧?一个非常中心的关键节点,它也是一个单点故障,对吧?所以如果我去度假,或者如果我明天辞职,或者其他什么……

网络将开始崩溃,而那不是我想要的位置。对。作为一名经理,你应该让其他人发挥作用,而不是承担所有工作并吸收房间里所有的能量。所以我认为它不应该放在仪表板上。我认为它应该成为一个工具,让人们提出更多问题,并对实际发生的事情感到好奇。因为我认为,我认为,呃,

这些简单的数字在这种情况下无法量化所有定性内容,对吧?以及人们讲述的故事以及正在发生的事情。我可以想到其他方法让人们操纵系统,对吧?如果我去评论所有内容,就像我的评论质量一样

它可能非常低,对吧?我可以在 20 件、30 件不同的事情上说高、高、高,但质量不会在那里。但是我的网络度量会非常高。所以我觉得中心性度量会非常高,或者如果我在任何地方都这样做,介数中心性会非常高。但是我的工作质量不会。所以我想,再次强调,对我来说,它是一个更大难题中的一块,而不是我们可以据此做出任何判断的度量。

好吧,作为一名经理,你了解你的团队,尽管不是无所不知的。也许这是一个比你所能看到的更多的数据集,获得摘要可以带来新的见解。它是否主要具有你预期的结构,或者结果中是否有任何新颖且意想不到的东西?

其中之一是假期。假期让我感到惊讶。如果一个非常中心的人休假,我认为网络会崩溃然后恢复。但是我注意到,当人们休假时,新的连接开始形成。事后看来,我想,当然会这样,因为那个中心人物不再在那里交谈了。所以人们需要互相交谈。人们需要审查不同的拉取请求以推动工作向前发展。但是

我低估了这一点的重要性。它让我想起了工程学中一本非常著名的书,对吧?《凤凰项目》。有一个人对项目非常重要,然后他休假了,不知何故,情况并没有那么好,但最终会好转,因为他们不再是网络的中心了。他们不是障碍。

我看到了同样的情况。这并不是说中心节点不好。我们要求我们的高级工程师做很多事情,这就是为什么他们处于中心位置。但是同样地,对于我作为经理来说,我必须退后一步,不要参与所有事情,我认为这是我对中心节点的建议。

我想说第二件我认为非常有趣的事情是隔离度量。最初,我认为孤立的节点可能是没有进行协作的人。我有这种偏见,对吧?这就是它在网络上的样子。但是当我真正开始与人们交谈时,并且

只是好奇,我想,哦,比如,你知道,你本周在做什么?你在做什么?人们正在做各种各样的事情。有时是个人原因,对吧,为什么他们不能参与。与其我说“你做得不好”,不如说好奇地问,对吧,并帮助人们。其他时候,人们在学习和研究。当你学习和研究时,你需要埋头苦干的时间。你不能社交。所有这些都是成长的迹象,并不一定都是积极的。

在网络中表示。所以对我来说,我最初的许多假设都被推翻了,这不仅来自网络本身,也来自与人们交谈和感到好奇。这就是为什么我

在做了一年半之后,我坚信它不能像仪表板工具一样,就像它叫什么?B 面或其他量化提交和所有内容的指标。就像滥用这些指标一样。我认为这个很容易被滥用,我宁愿不把它变成那样。但我完全同意你的观点,我认为你会有,或者至少我有,我对不同的人有不同的期望,

你知道,每个工程师偶尔都需要进入一个“山洞”,花一周时间解决一个问题。这是他们在组织中的角色。我不希望他们因为这个而在某些仪表板上受到惩罚。但从5万英尺的高空获得管理层视角的洞察力,让我们面对现实吧,我无法阅读每一个PR、每一个问题和每一个讨论点。考虑到这一点,我们能否谈谈GH Graph Explorer?当然。

我们会为想要查看仓库的人们在节目说明中添加链接,但他们在这个仓库中会发现什么?是的。在这个仓库中,人们首先会发现一篇我写的小论文,我称之为白皮书,其中介绍了我的一些发现。其次,他们会发现一系列工具。

它们都基于Python,我尽力使人们能够清楚地使用它们。当然,欢迎贡献者,我一直很喜欢这样。所以,你会发现不同的数据收集方法,无论是直接在屏幕上打印内容、CSV,还是使用Neo4j(一个基于网络的数据库,允许你

以一种原生方式收集网络数据)。因此,你会发现数据收集方法,然后你会发现不同的数据分析方法。我有一些工具可以

读取CSV、读取Neo4j数据库,并直接输出基本的网络结果和指标。然后,你还会发现一个MCP服务器,这是一个你可以用来连接到云或连接到AVS代码的工具。因此,你可以下载数据,并实际让数据

由LLM为你分析,并给你一些见解。这非常有趣,因为它消除了你的一些偏见,并告诉你一些事情。我就是这样知道自己过于中心化的,就像,你就是关键节点。我当时想,哦,你知道,这让我有点震惊,它给了我一些……

严厉的反省。你会发现这一点。你还会发现一个可以设置的操作,用于收集数据并将其保存到你的仓库中。本质上,它只是一组工具,可以让你访问这些数据。你还可以获得GitHub提供的密钥来下载它。我希望人们能够自己使用和分析它,对于任何感兴趣的人来说都是如此。是的。

是什么推动了,我想,那里的设计选择?你之前已经在使用Neo4j了吗?或者是什么促使你扩展代码以提供这项服务?不,我以前从未使用过Neo4j,这是一件非常……

我很久以前就知道它了。我只是从未有机会在专业领域使用它。我知道它有很多有趣的工具、可视化效果和数据存储方式。所以我选择了它,因为我认为它会是一个很棒的工具。事实证明它确实很棒。你可以打开Neo4j Explorer并使用Cypher编写查询以获取数据。我认为这是一种非常优雅的搜索数据和查找链接的方法,并且

起初对我来说,它不如NetworkX直观,NetworkX是一个用于它的Python工具。但最近,如果我只是想查看一下,哦,本周发生了什么,我会使用Neo4j,并使用Cypher查询来获取数据。所以我的最初动机是,哦,太酷了。现在它已经变成了,哇,这是一种非常优雅的语言,也是一种获取数据的方式,比我之前使用的CSV好得多。

我想知道我们能否放大入门流程,因为我想很多听众都会查看这个。从克隆你的仓库到获得我自己的关于我的仓库的所有元数据的漂亮的CSV文件需要什么?

就是这样。首先,你会克隆它。第二件事是你需要一个Python令牌。也许我应该更新仓库,在那里添加一些关于如何获取令牌的说明。你可以将其设置为环境变量或将其放入你的仓库中。小心你放置令牌的位置,因为你的很多东西都可能被盗。所以

之后,你就可以开始收集数据了。我这里有一些脚本,如果对过去七天感兴趣,可以使用此命令。

如果你对其他内容感兴趣,可以使用该命令。有JupyterLab Notebooks。所以我认为主要的事情是下载它,获取一个Python密钥,然后你可以开始运行我编写的一些脚本。之后,我可能会回去为人们编写更详细的说明。但理想情况下,我希望它足够简单,你可以复制粘贴90%的说明,你就可以收集数据或获得一些基本的分析结果。

我非常同意我们之前的观点。现在还不是将其变成简单的仪表板或成绩单的时候,但对于其他想法,我知道你已经在自己的工作中使用了它,其他人如何才能学习它,以及他们查看自己的组织时可能会获得哪些见解?主要的见解就是了解他们的网络是什么样的。我认为最初的网络是

而且我知道我们之前讨论过这一点,让我感到惊讶,因为我比以往任何时候都更清楚地看到团队中几乎每个人都是多么重要。通常我们会讲述关于首席工程师解决所有问题或想出这个伟大想法的故事。而且,人们非常关注一两个非常擅长讲故事的人,对吧?而且非常外向地沟通。无论如何,他们都应该得到赞扬,但还有很多其他人参与了软件的构建,对吧?

也许他们在审查拉取请求。也许他们审查了很多拉取请求,对吧?他们阻止了错误进入生产环境。也许他们是在评论问题并帮助规划或做所有这些粘合工作的人。当你仅仅根据领导者或最健谈的人来理解团队时,你并没有真正看到全貌。我认为这通常是一个重要的工具,用于理解和认识到这一点。

第二件事是我将其作为一种自我评价报告。我使用这种非常具体的测量方法来做到这一点。我所做的是查看团队中每个人的中心性度量。然后我取它们的平均值,有时是平均值,有时是中位数。这给了我一个数字,我每两周绘制并对齐一次,并且

每两周,我都能看到我的团队,我的团队的中心性是上升还是下降?因为对我来说,这是衡量他们合作紧密程度的一种方法。当我看到它上升时,我会,你知道,我能感觉到它。在团队中,这是显而易见的。人们心情很好。人们一起工作。当它下降时,这意味着每个人都被拖累了。他们被文书工作困住了。也许出了什么问题,或者什么都没发生。也许有一半的团队正在休假,而且下降了。

但总的来说,它给了我一个很好的衡量标准,让我知道发生了什么。我还了解到另一件事,我必须在这里提到,那就是当新人加入团队时,这些测量值会下降。团队中节点的平均中心性会下降,因为人们

正在学习如何一起工作,对吧?当他们越来越习惯它时,三到四个月后,你就会开始看到它再次上升。人们开始一起工作了。这些见解与我们作为管理者所知道的相呼应。是什么?比如风暴、形成、风暴、规范和执行。当你进行这些测量时,你可以在图表和图表上看到这一点。所以也许我收回我说的话。也许这是一个重要的指标,我们可以放在仪表板上,但不是针对每个人,而是

一个对团队来说重要的指标。但同样,它总是可能被滥用。所以我来回思考,但我认为这是一个很好的指标,可以告诉我们团队凝聚力如何。了解组织的背景、目前正在进行的工作,以及获得这些指标,可以保持,我想,让你更了解团队的状况。是的,它绝对可以。它绝对可以。此外,是的,我发现了很多事情。我觉得我甚至……

我甚至不记得所有的事情了。太多了。如果我看到一周内节点的聚集,我会想,哦,这很有趣。也许这比我想象的更重要。或者也许这比我想象的更分散注意力。我不知道。所以你可以从不同的视角获得各种各样的见解。这就是重点,对吧?从不同的角度来理解事物。

鉴于你提供的代码,几乎任何人都可以遵循相同的路径,尽管这有点DIY。你多久才能打开它或获得订阅或其他东西?或者你对这如何成为一个更集成的产品有什么设想?

我实际上没有。这是一个好问题。我忘了我给了它什么许可证,但我允许任何人使用它并将其变成产品。如果有人有兴趣合作,我很乐意。但同样,我现在的主要工作和重点是GitHub的经理。所以我用它来做这件事。

我要说的是,我非常乐意进行更多探索,一般来说,与LLM以及LLM的参与如何影响软件工程师之间的合作方式有关。

但我认为这些问题超出了我的职权范围。但我非常乐意看看是否有人使用这些工具或其他任何工具可以开始回答这些问题。我很乐意阅读这些研究。但就目前而言,我会继续这样做。只是为人们提供进行自己研究的工具。

你认为将你正在设计的工具简单地扩展到一个大得多的组织,至少可以成为一个工具,帮助将其塑造成一个更分散的群体吗?

我认为可以。我认为可以。我认为很多分散的决策可能正在发生。只是看不见而已,对吧?我们不认识那些人。他们并没有真正被记录在任何地方,也许有一种感觉。好吧,有人可能会争辩说,一些公司在所有公共Slack频道中运作,并且你可能在那里拥有类似的数据集。这是真的。这是真的。GitHub对于……

好坏参半,对吧?我们确实会试用我们自己的产品。因此,我们倾向于真正围绕GitHub作为一个工具,我们用它来进行产品管理、编码和所有事情,对吧?用于讨论。这是因为我们相信我们拥有的工具,并且我们一直在努力改进它。所以我们一直都在使用它。但可以肯定的是,另一个可能使用Jira或其他工具的组织,我相信他们那里有不同的数据集,他们将能够提取这些数据集并了解人们是如何合作的。

但同样,我想更多的是关于基础分析而不是数据源。你认为这可以扩展到微软、谷歌、Facebook这样的规模,那里有,我不知道是数百还是数千名工程师在合作吗?在这个范围内,你需要一种不同类型的工具吗?或者你认为同样的想法可以扩展吗?我认为同样的想法可以扩展。我认为是这样。我认为我开始将东西放入Neo4j的原因就是这个原因。Neo4j可以扩展。

很多。也许有一天我成为了一名主管或招聘人员,也许我仍然会这样做。然后我将探索的人数将会更多。但我相信在整个组织中都会有一些引人入胜的见解。是的,无论哪种方式,你都构建了一些基础数据工程工具来解锁这里的大量工作。所以在这方面做得很好。谢谢。是的,我希望其他人能够尝试并尝试使用它,并获得他们自己的见解。

加布里埃尔,听众可以在网上关注你吗?没有。只有我的GitHub用户名。所以是GE Ramirez。我相信你会发布链接和所有内容。但那是我说我在社交媒体上的主要地方。非常感谢你抽出时间来介绍这个项目。非常感谢你。保重。