发布于 2026-01-06 0 阅读
0

知识共享提升开发团队效率

知识共享提升开发团队效率

企业越来越重视软件开发团队,将其视为提升生产力的关键驱动力。与关注单个开发人员的生产力不同,关注团队生产力的驱动因素需要不同的视角和方法。而这一切都始于知识共享,因为不同开发人员之间的知识差距可能会不必要地拖累整体生产力,即使这会让某些团队成员看起来比其他成员效率更高。

首先,让我们了解一下促使企业更加关注开发团队的业务背景。开发团队的绩效对企业的重要性日益凸显,已成为全球企业董事会的重要议题。2019 年 3 月,摩根士丹利发布了一份题为《面向数字时代的新软件栈》的报告,其中描述了从旧技术栈(例如 Oracle、Tibco 和旧版微软)向新技术栈的过渡,新技术栈的代表公司包括 Atlassian、PageDuty、Splunk、MongoDB 和新版微软。报告指出,新技术栈蕴藏着 500 亿美元的市场机遇,其复合年增长率 (CAGR) 高达 22%,而旧技术栈的复合年增长率仅为 4%,这主要得益于DevOps敏捷方法的广泛应用。摩根士丹利对 DevOps 的定义是:“任何能够减少或缓解向最终客户交付新功能和服务过程中低效环节的实践、方法或架构。”

从技术角度来看,DevOps 是一种软件开发策略,旨在弥合开发人员和 IT 人员之间的鸿沟。借助 DevOps,组织可以快速发布小型功能并整合收到的反馈。这可以带来两方面的优势:1)减少软件故障;2)缩短修复周期,从而提高生产力。然而,要使这一切按预期运作,知识共享往往是缺失的一环。

知识共享至关重要

根据Coding Sans 发布的 2019 年软件开发现状报告,科技公司面临的第二大挑战是知识共享,仅次于产能不足。通常情况下,当项目积压严重、截止日期临近时,知识共享就会受到影响。换句话说,在开发人员需求远超供给的世界里(这种情况在可预见的未来仍将持续),缓解效率低下很大程度上取决于组织的知识共享能力。

该报告还指出,管理层和开发人员对 2019 年最重大挑战的看法存在差异。对于开发人员来说,知识共享是他们面临的最重要挑战,24.57% 的受访者认为这是最重要的挑战,高于 2018 年的 18.11%。

如果知识共享如此重要,那么如今的团队该如何应对这一根本挑战?敏捷流程非常重视面对面交流以传递信息,但这是否等同于拥有全面的知识共享方法?随着团队成员分布在多个时区,面对面交流已远远不够。那么,什么才能补充或取代这些面对面交流呢?

远程办公已成为新常态

远程办公在各种规模的组织中,对开发人员来说正变得越来越普遍。同一份报告显示,72.2% 的开发人员表示其所在组织允许远程办公。 拥有远程开发人员的组织通常会使用 Skype 或 Zoom 等解决方案,这些方案可以轻松取代面对面的交流。在 Slack 或 Microsoft Teams 等工具中进行异步知识共享(尤其是在涉及代码时,这种共享方式会显得繁琐)也能解答问题并分享知识。然而,这些方法对于团队或组织而言,在知识的收集和整理方面毫无帮助,无法在一个月或一年后轻松访问这些知识。相反,它们会导致重复且浪费时间的沟通,因为同样的问题和担忧会被反复提出;更糟糕的是,它们还会成为新开发人员的障碍,让他们害怕提出简单的问题,以免惹恼资深团队成员。


团队生产力和知识共享

开发者们都知道,团队的知识共享能力与其整体生产力息息相关。团队可以共享的知识种类繁多。第一种是关于编码的通用知识,可以通过帖子、论文、网络研讨会、书籍等形式传播,有助于所有团队成员对团队采用的方法和策略达成共识。例如,Davide de Paolo 在他的文章《是什么造就了 10 倍速开发者? 》中写道,知识共享是优秀开发者的必备素质之一:“一旦你学到了新东西,就应该尝试帮助别人,教导其他同事,分享你的学习成果。这可以是每日站会后给出一些建议,向团队做一个简短的演示,撰写一篇博客文章,或者成为在线编码平台的导师。”

第二种知识是代码本身特有的。这种知识无法通过在 Stack Overflow 或 Quora 上提问来获得,因为可能只有你的团队成员知道答案,而且出于安全考虑,代码可能只能在内部讨论。

许多开发者反映,他们花费大量时间(有时高达 75%)来理解他人编写的代码,这令他们感到沮丧。Stack Overflow 2018 年的调查显示,只有不到 20% 的开发者表示,他们会使用公司内部文档来理解自己正在编写的代码的工作原理。从团队效率的角度来看,这类知识应该如何共享呢?

分享关于你的代码的知识

第二类知识要想对团队生产力做出贡献,必须满足以下四个条件:

  • 它必须随时都能轻松获取
  • 这必须结合具体情况来看。
  • 它必须坚持不懈。
  • 它必须允许互动,以便进一步阐明其含义和适用性。

现在是时候将代码知识从孤立分散的来源转移到代码本身了。上下文中的知识更容易理解。团队必须摒弃“代码自解释”的观念,转而采用能够弥合知识鸿沟、提升整个团队水平的解决方案和技术。共享知识将成为整个组织的竞争优势。

你可能认为代码注释可以解决这个问题,但事实并非如此。代码注释长期以来一直被用来解释代码的工作原理,但它们存在三个主要缺点:1)随着代码的演进,注释很快就会过时;2)注释缺乏对话性,因此不利于围绕解释进行迭代;3)你无法轻松地通过代码注释提出问题,而提问或许是知识共享中最重要的环节。这是因为,解释自己代码的人无法预先知道代码的哪些部分对其他开发者来说难以理解。因此,在代码中提出问题的功能有助于提高代码质量和文档质量。

因此,关注能力提升和知识共享的团队应该寻找符合上述四个标准,并且能够融入现有工作流程和工具集的解决方案。在常用的集成开发环境 (IDE) 内共享知识可以简化代码相关的讨论,而与常用的消息传递和问题跟踪软件集成,则可以让开发人员随时了解最新进展,并在创建新问题和答案时通知整个团队。

概括

团队生产力的提升源于团队成员之间知识的广泛共享。开发人员已经深切感受到知识共享不足带来的困扰,并将其列为首要关注点。传统的面对面交流有助于解决某些类型的知识共享问题,但随着远程办公逐渐成为主流,我们需要新的解决方案来满足知识共享的短期和长期需求。描述代码工作原理的具体信息不应与代码本身脱节,否则会降低信息的可用性和可理解性。下一代面向开发人员的解决方案和工具必须弥合知识鸿沟,并提升整个团队的生产力。

文章来源:https://dev.to/codestream/knowledge-sharing-leads-to-developer-team-productivity-44a6