通过与 Jira 对比,让您更全面了解 PingCode

  • 首页
  • 需求与产品管理
  • 项目管理
  • 测试与缺陷管理
  • 知识管理
  • 效能度量
        • 更多产品

          客户为中心的产品管理工具

          专业的软件研发项目管理工具

          简单易用的团队知识库管理

          可量化的研发效能度量工具

          测试用例维护与计划执行

          以团队为中心的协作沟通

          研发工作流自动化工具

          账号认证与安全管理工具

          Why PingCode
          为什么选择 PingCode ?

          6000+企业信赖之选,为研发团队降本增效

        • 行业解决方案
          先进制造(即将上线)
        • 解决方案1
        • 解决方案2
  • Jira替代方案

25人以下免费

目录

软件团队的知识转移方法:如何确保新员工顺利入职

每个软件开发团队都有其特有的工作方式,这涉及如何协调任务和在团队成员之间转移知识。特别是当新的工程师加入时,无论他们是合同工还是公司内部的开发人员,都显得尤为重要。建立一个有组织的知识转移流程可以帮助将员工的知识统一存储到公司的知识库中,这不仅使团队工作更加分散,还让新员工和现有员工都能轻松获取所需的所有信息。

本文将讨论三个主题:

软件公司采用的知识转移方法;

两种知识类型及其对开发过程的影响;

为什么对于快速增长的公司来说,建立独立自主的团队比设定详尽的学习和知识共享流程更为有效。

为什么知识转移重要

软件开发是一个需要大量知识的过程,团队成员及与外部相关者之间需要频繁地创建和共享知识。但是,如果知识转移流程不够明确或者结构松散,就可能导致开发效率低下。在最坏的情况下,如果关键员工离职,他们带走了所有关键知识,项目可能会因此停滞。

相比之下,如果有一个明确的知识转移计划,就可以帮助团队传播知识,使团队工作更加分散,提高生产力,并为新员工提供更好的培训。这种计划的益处包括:

高效地传递项目知识、领域专业知识和技术经验;

将分布在不同地方的员工的知识整合到一个统一的公司知识库中;

改善新员工的入职体验,为其在公司的职业旅程设定基调;

保留可能因资深工程师离职而丢失的知识;

提高团队成员技能,当团队成员能随时访问知识时,更容易提高他们的技能。

隐性知识与显性知识的区别

通过经验和实际工作积累在员工头脑中的知识称为隐性知识,包括技术专长、行业知识和商业判断,主要通过人与人之间的直接交流传递,如通过配对编程或一对一会议。

与之对比,显性知识是已经被具体编码和数字化的信息,如文档、电子表格、报告和编码规范等,这使得任何员工都可以轻松访问这些信息,也可以异步使用。

软件工程中的知识管理策略取决于开发方法的不同。例如,在敏捷开发中,人们更依赖隐性知识,而这种知识很难通过文档和图片转移给其他人。而在计划驱动的开发中,员工主要依赖显性知识,因为以文档为基础的方法更合适。

文档对于敏捷业务至关重要

敏捷宣言虽然更重视人与人之间的交互而不是流程和工具,更看重能工作的软件而非详尽的文档。但如果项目经理和工程团队只是将所有重要信息记在脑海中,这些细节可能在交流过程中丢失。而具有良好文档的软件项目则对个人的依赖较少,因此更能适应意外的变化。

敏捷软件开发的先驱之一,AlistAIr Cockburn提到:“判断多少知识应留在口头传统中,多少知识应详细记录下来,这是一门艺术。” 而组织与领导理论家Haridimos Tsoukas则认为,隐性知识和显性知识是一枚硬币的两面。他指出,“地图再复杂也不能自我解读,它需要一个有经验的读者来解释,并将地图内容与现实世界关联。”

这意味着显性知识和隐性知识需要共存,关键是找到二者之间的平衡。通过与现有团队成员的交流,可以实现这种平衡。根据反馈,了解哪些知识共享方式最有效,可以帮助确定新员工的入职流程。

为什么交互是新员工知识转移不可或缺的一部分

入职的一个目的是将公司的知识基础传递给新团队成员,另一个目的是帮助新员工融入公司的结构和文化。

据统计,46%的专业开发人员在遇到技术难题时会寻求同事或朋友的帮助,新员工也不例外。通过找到一位导师,新员工能了解其他同事的责任范围和技术经验。每日的团队会议也是一个同步项目状态的好机会。新来的开发者能通过这些会议了解团队其他成员当前的工作任务和在遇到问题时该联系的人。

与团队领导的一对一会议可以帮助确认任何未解决的疑问或问题,确保新员工能顺利接受知识的传递。

软件开发者的有效知识转移方法和技巧

指派导师

指派个人导师可以加速新开发者的学习过程,并帮助他们与新团队建立初次个人联系。对于刚刚加入公司的新员工来说,与特定团队成员进行面对面的交流非常有用,因为他们在入职初期可能难以一次性了解所有团队成员。

在选择导师时,一个关键的问题是如何识别团队中的潜在领导者。导师通常不仅仅是熟悉文档和业务逻辑的人。他们应该是具有广泛专业知识的高级开发者,能够激发他人的成功,并能在交流中提供解决方案。

结对编程会议

结对编程是一种开发技术,两名工程师在同一工作站上协作编写代码,在同一个办公室工作的开发者共用一台计算机和一个键盘。

对于远程团队,则使用屏幕共享工具,如Visual Studio Code的Live Share扩展或是SSH和tmux的组合等共享终端环境,使得多个开发者可以在不同的地点实时共同编辑和调试代码。

结对编程的主要优点是新员工可以与经验丰富的专家一起处理实际问题,学习他们是如何组织源代码、命名变量以及解决问题的。很多知识是通过实际经验才能学到的。

此外,AI技术如GitHub Copilot也可以在资深开发者通过结对编程指导新员工后提供支持。比如,GitHub Copilot可以根据开发者描述需要实现的逻辑,提出符合项目上下文和风格约定的代码建议。

代码审查

代码审查能够促进团队成员间关于代码库的讨论,现有的工程师通过指导新成员,帮助他们挖掘代码中隐藏的知识。代码审查不仅仅是一种教学活动。它应该是双向的,使得新成员能够从一个新的视角发现代码中笨拙的部分或提出不同的见解。

代码审查的一个主要目的是去中心化团队的工作,确保不是只有一个人知晓代码库的某个特定部分。这种知识共享方式非常关键,因为它能防止工程师休假或离职时给公司带来突然的困难。

一对一会议

团队领导进行一对一会议主要是为了设定期望值并向新员工介绍公司及其文化。这些会议还是了解新员工的入职和知识共享过程如何进行的必要方式。

团队领导需要询问新员工是否有任何不明确或混淆的地方,以及他们是否拥有完成任务所需的所有信息。讨论这些问题有助于新开发者更快地获得所需知识。

文档

文档能帮助使用软件的人了解其功能和用途。FreeCodeCamp建议将文档分为两种类型:流程文档和产品文档。

流程文档可能包括测试标准、时间表、项目计划、时间线和会议记录等。

产品文档描述了公司正在开发的具体软件。它分为两种形式:一种是为最终用户、系统管理员和支持人员准备的手册;另一种是为新员工和现有开发者准备的,涉及系统相关的文档。后者可能包括:

  • 产品需求
  • 总体设计和架构
  • 应用程序中的关键文件
  • 函数和子程序的解释
  • 关键算法描述
  • 发布说明

由于大多数人都是视觉学习者,文档中应包含如插图、流程图或视频教程等视觉内容,以避免使用大量文字。

代码注释

注释是用来描述程序员的意图或解释那些不立即明显的、不常用的优化和结构。如果新员工难以理解代码,那么程序就无法被维护、更新或重用。

但是,关于糟糕的注释是否比没有注释还要糟糕的问题,程序员们意见不一。例如,Stack Overflow 建议避免写出与代码内容重复的注释。相反,注释应该用来消除混淆,解释非常规的结构,并且在代码被复制的情况下提供原始来源的链接。开发者在修复漏洞或标记尚未完成的实现时,也应该添加注释。

在线教程与练习

定制的练习有助于新员工熟悉公司的基础设施和最佳实践。对于初创企业和小型企业来说,他们可能没有足够的时间和资源来实施这样的培训计划,但这在大型企业中是常见的做法。

例如,Google 的 Codelabs 提供了一个环境,让开发者通过指导式的动手编码体验来构建应用程序或向现有应用程序添加新功能。

最后的想法

一个全面的知识库和指导系统可以帮助新专家更快地适应工作,或者帮助团队或软件供应商进行全面的更换。但是,对于一个快速增长并且在大量尝试新事物的公司来说,有一个明确的培训和知识共享流程并不总是最重要的。有时候,公司会给新专业人员分配一些他们或他们的同事之前从未做过的全新任务。在这种情况下,他们可能会在Google上搜索解决方案,或在Stack Overflow上提出问题,然后尝试几种不同的方法并进行诊断。

这种挑战其实有助于增强员工的自主能力。如果团队总是依赖团队领导或高级开发者,他们就无法成为真正高效的团队。通过与同事共同做出决策,开发者在建立自己的同时,可以更快地实现团队的成功。

如果想了解更多关于新员工入职的信息,可以查看我们的逐步指南,这将帮助公司为远程开发者的第一天做好准备,并确保适应过程顺利进行。

相关文章