行业协会如何促进彭博工程内部技术思想和最佳实践的交流

彭博的工程师拥有广泛的知识、技能和专业知识,涉及广泛的技术领域。各种内部工具和机制已经存在,可以更容易地共享这些知识。在过去的十年中,随着构建更好软件的关键工具和技术(包括开源工具)数量的增加,内部聚会形成了一种非正式的方式来分享经验、交换技术信息,并协调彭博工程部金宝搏网址门对这些工具和技术的采用。

为了鼓励围绕特定技术和相关技术主题形成更多的“兴趣社区”,并促进它们在彭博社的采用,我们在2016年底首次在工程中引入了“公会”的概念。

在科技行业,这并不是一个新概念。公会最早是在2012年由Spotify推广的,敏捷工程团队会利用它确定跨团队的专家小组分享最佳实践

自中世纪以来,“行会”一词描述的是一群专家,他们聚在一起解决挑战并分享他们的技巧。在彭博社,我们的行业协会由组织中广泛的工程师组成,他们对与特定技术领域相关的知识、工具、代码和实践有兴趣,并致力于有机地共享。他们是彭博社关注的特定技术主题和技术进步的社区。

如今,彭博的工程部门有以下10个行业协会:

  • 自动化测试
  • C++
  • 分布式系统
  • Java与JVM
  • JavaScript
  • 机器学习(毫升)
  • 自然语言处理(NLP)
  • Python
  • 关系数据库
  • Web前端

每个公会都由一组来自各个工程部门的核心领导来驱动,他们负责公会任务的成功。这些公会领袖负责在内部影响技术的使用,并在外部参与各自的技术社区。

一个特殊的称号是给一个负责代表公会更高级别的人。这些人被称为公会主席。有些公会有两个联合主席。

工会领导人和主席必须共同确保每个工会在以下四个方面提供内部和外部的价值:

  • 内部演示和聚会-内部会议和主题演讲,外部演讲者参与,继续教育培训,行业通讯等。
  • 工程影响-应用程序设计支持,平台影响和开发,基础设施路线图,创建和记录最佳实践,论坛管理,发表讨论和发现,等等。
  • 协作开发-金宝搏网址开源和InnerSource项目和贡献,开源日,内部金宝搏网址开发经验(DevX)活动,等等。
  • 参与会议,确定要参加的会议,提名与会者,确定和协调技术会谈等。

为了更深入地了解彭博社协会如何运作,我们与机器学习协会主席Ania Musial、自动化测试协会主席Denis Chekhlov和Python协会联合主席Marianna Polatoglou进行了交谈:

你们最初是如何加入彭博社的公会的?

有空:我是机器学习协会的最初成员之一,代表机器学习平台团队和彭博社的更大团队数据科学平台倡议.让基础设施提供商成为行业协会的成员,表明了我们对提供ML从业人员所需工具的承诺和支持。

Ania Musial,机器学习协会主席
Ania Musial,机器学习协会主席(摄影师:Lori Hoffman/Bloomberg)

丹尼斯:加入彭博社后不久,我与一名外部顾问参加了为期两天的测试驱动开发(TDD)课程。回顾过去,这彻底改变了我对待软件工程的方式。我的脑子里突然有了点东西。在接下来的几年中,通过大量的尝试和错误,我成功地将TDD技术磨练到了一个水平,我看到了一个机会,通过传播在项目中进行自动化测试是好的以及如何以可持续的方式实现这一知识,来帮助我团队中的其他人。我和其他几位工程师开始为初级工程师开发一门课程,将单元测试和集成测试的实践引入到入职课程中。

共享代码的实践和对跨组织不同工程师团队之间协作的关注开始同时出现,由我们的内部带头冠军项目. 我参加了几次介绍共享库来帮助C++中的单元测试的工作,包括引入一些开源产品,并将它们的使用集成到我们的开发环境中。金宝搏网址

当成立一个自动化测试协会的想法出现时,我们已经有了一个遍布整个公司的狂热爱好者社区,他们定期开会讨论最佳实践和现实经验。当公会成立时,我们已经在纽约和伦敦举办了每月一次的内部聚会,参加人数很多。公会的成立帮助我们将这些努力正式化,让我们有能力制定愿景和重点,并将更多独立开展类似项目的人引入社区。

玛丽安娜:我以前使用过Python,并且非常喜欢使用这种编程语言。在公会启动之前,已经形成了一些内部聚会,我认为如果有关于Python的聚会将是一个很好的主意。我问了部门里的其他人,结果发现马里奥Corchero已经开始计划这些非正式会议。当然,我欣然接受了这个参与的机会。从那时起,组织聚会的团体演变成了如今的公会,做了更多的事情。目前,马特Wozniski我是Python协会的联合主席。

你的公会负责什么?

丹尼斯:自动化测试协会的愿景是帮助每个工程师在他们的工作流程中最大限度地利用自动化测试。我们主要关注自动化测试和实践(如TDD)如何帮助指导工程师的开发,将质量构建到产品中,并促进敏捷实践的采用。自动化测试在工具和多个涉众方面有很大的范围。我们的主要目标是帮助工程师在他们的开发实践中,将更多的测试工作转移到左边,并解放我们的QA人员去做更多的探索性和可用性测试。当然,我们也与持续集成/持续交付(CI/CD)社区的工程师有着密切的联系,许多人参与了这两方面的工作。

Denis Chekhlov,自动化测试协会主席
Denis Chekhlov,自动化测试协会主席

玛丽安娜:所有的公会都有类似的收费。我喜欢把它看作是滋养彭博内部的Python社区,以授权那些使用这种编程语言的工程师,并提升彭博作为一家致力于Python的公司的形象。

有空:机器学习协会有一个非常简单的任务。我喜欢它的简洁性和可扩展性:“创建一个统一的机器学习社区,并在彭博网上促进对ML问题、技术和最佳实践的讨论。”

你的公会有哪些主要的成就?

玛丽安娜:Python行会在过去几年里做了很多事情,但我将尽量保持简短。我相信,我们与培训团队在新材料上的合作将持续带来好处。这确保了新加入彭博社的工程师以及其他已经在这里工作、希望学习新技能的工程师分享知识的一致性和质量。此外,来自培训团队的反馈是无价的整个公会存在。

另一个非常重要的贡献是我们跟踪并确保彭博社在相关会议上的代表,并确保通过内部会议与我们的工程师分享我们在这些行业活动中获得的知识。此外,我们还举办了关于迁移到Python 3的内部研讨会。我相信工程师们在这方面得到帮助是非常有用的,这样我们可以更快地将我们的系统推向那个方向。从编码的角度来看,我们已经记录了一些实用的方法来帮助工程师完成艰难的决策,或者只是提供一些指导。

最后,我们的Python基础架构团队和Guild之间的合作是必不可少的。在公会中有基础设施团队的成员确保了我们之间的交流线路总是开放的。

Marianna Polatoglou,蟒蛇协会联合主席
Marianna Polatoglou,蟒蛇协会联合主席

有空:我们很自豪能与CTO办公室的数据科学团队,使我们得以发展ML教育计划(您见过我们的机器学习的基础“视频课程?”)和出席会议。今年,我们在彭博社有一个专注于模型开发生命周期的小组,这让我非常兴奋。

丹尼斯:总的来说,公会的主要成就是塑造内部培训课程,引入和支持一堆InnerSource工具,使工程师更快地编写测试,以及影响内部基础设施团队注意开发可测试api的需求,并支持工程师在基础设施产品存在的情况下进行测试。

是什么让公会成为工程师学习新技能和培养他们对新兴技术兴趣的好途径?

玛丽安娜:行会是流动的社区。他们为一个人提供了不断的机会来贡献、学习和发展自己和社区。从组织的角度来看,Python公会已经转变为拥有一个小型的工程师小组,每个小组关注社区的不同方面及其需求,例如培训。这些团体中的每一个都有一个或多个指导工作的行会领袖,社区总是非常欢迎和需要帮助。这一变化源于在公会内部进行的对话,我们在对话中寻找改进沟通和效率的方法。对于一个由来自不同团队和地点的工程师组成的社区来说,通过变革进行思考是行业协会所独有的,可以帮助他们发展协作思维技能。

也有很多机会参与技术讨论,以及为社区面临的挑战实现解决方案。一个工程师在解决挑战我们整个内部Python社区的问题时所能产生的影响是不可估量的。此外,由于我们的公会有来自世界各地的参与者,我们的成员学习作为分布式团队的一部分工作,掌握异步通信的挑战,这是一项在代码开发时非常有用的技能。

有空:对于我们的公会来说,保持理论和实践的平衡是很重要的。这为我们的AI研究人员创造了一个空间来分享他们最新的优化或关于BERT的想法,为分布式系统工程师提供了一个关于分布式模型培训的研讨会,以及介于两者之间的一切。每个人都有机会以一种平易近人的方式学习和教授新的东西!

丹尼斯:如前所述,向左移动测试对开发速度有着深远的影响——特别是在很长一段时间内。无论您使用何种语言或框架,您都需要一种方法来测试应用程序和产品的一部分,以及整个系统。程序的可测试性和它们的设计之间也有内在的协同作用。因此,掌握一种特定的语言也意味着掌握设计模式,反过来,也意味着掌握在每种上下文中进行测试的方法。这总是令人兴奋的,不断带来新的想法和方法来更好更快地进行测试。最后,但并非最不重要的一点是,当您将测试放在产品的驾驶座上时,它也是一种有趣且有益的体验。