142 徐毅:五星级软件工程师的高效秘诀(二) 你好,我是华为云DevCloud首席技术布道师徐毅,在上一篇文章中,我们了解到影响工作效率的原因以及成为高效个人的重要性,今天我们继续探讨如何成为高效个人,我将分享一些我们的经验和方法,希望能给你带来价值。

第一,基于工作目标,定期审视现状,有针对性地提升能力。

我们团队内部有一个能力矩阵,我们会基于工作目标,定期评估员工能力现状,并有针对性地确定近期可以改进方向和目标,以此不断地提升他的能力。

在实践中,首先要根据团队的业务目标和技术目标,明确未来这个任务需要团队具备哪些技能,再根据团队成员的能力现状,有针对性地进行提升,使他们的能力与团队对齐,以便更高效地完成团队目标。在这个过程中,我们一般有四个措施:

  • 定制计划:识别成员能力GAP,制定能力提升计划;
  • 实践锻炼:任务安排采用必要任务+提升能力任务,保证交付质量的同时提供实践机会。
  • 闭环改进:通过对关键案例的技术分析、一类问题的归纳总结、复盘等来提升成员的技术分析能力;
  • 培训分享:开展课程培训、测试经验总结,让该领域能力强的人,帮助成员提升能力。

除此以外,我们还会制定能力仪表盘跟踪现状,并观察提升趋势,帮助我们实时地看到员工能力的变化。

需要注意的是,能力评估也要与知识挂钩,高水平的能力必须要产出相对应的知识,进行积累和消化,比如写Wiki和博客等。另外,我们内部有一些工具,会与任务管理系统对接,员工完成某一个特定任务之后,工具系统就会自动累计该员工的能力经验值,这也是一种能力提升的反馈。

第二,工欲善其事,必先利其器。

我们很强调工具,因为我们的业务形态很多,所以会有各种各样不同的工具提供给员工选择。同时,我们还会统计员工使用某个工具的时间,通过这样时间统计,我们可以知道工具在使用过程中出现的情况,并针对性的进行改进,或是把更合适、更好用的工具推荐给他们。

另外,在研发层面,我们也会提供工具链服务,华为的业务场景众多,原本每一个产品都有自己的工具系统,每个业务部门都有自己的工具团队去开发适合业务情况的工具。而现在,由于提倡高效工程师,要减少工具的人员,将所有的相关工具链整合为对内的新的工具链系统云龙以及对外的软件开发云,也就是我目前所在的DevCloud。

第三,提倡知识管理,从梳理和积累开始做起,坚持就有成果。

除了工具以外,我们还提倡知识管理,不论是基层员工还是管理者都需要积累知识、输出知识。

举个例子,华为的特点是以客户为中心,就强调一线团队要跟客户拉近距离,但这样一来,客户遇到问题时就会直接找研发团队,研发团队就会经常被打扰。于是,我们在团队中又设立了一个特战队,专门对接外部的问题,包括来自客户的干扰和来自产品的干扰。因为有很多问题是重复性的,所以就要求特战队在解决问题的同时将所有问题都记录下来,当有重复问题时,就可以更快“对症下药”。另外,特战队的作用就是在内部做好第一层过滤,凡是一些基础问题或是已有现成答案的问题,都不可以再推送给研发人员。

总之,我们要求所有人都积累知识,更提倡大家输出内容,这样不仅能够证明员工水平高,同时,知识的输出也能进一步促进员工做知识积累,形成良性循环。

第四,辅以贡献可视化和同行认可为反馈、标杆为激励,可以促进专精。

我们希望员工得到更多的贡献可视化和同行的反馈认可,为此,每一个员工都有一个内部档案,这个档案不是简历档案,而是该员工的成绩呈现。其他同学对该同学个人贡献的认可与反馈,可以使他获得荣誉感、归属感与激励。我们还制作了团队贡献仪表盘、团队个人平均生产率图表、个人平均代码行生产率图表与个人综合贡献排行榜等,可视化地呈现他们的贡献产出,这既是员工的成就体现也会成为他们改进的动力。

第五,知识积累配合各种解耦手段,消灭不必要的协作和沟通。

这一点的前提是先判定协作与沟通是否是不必要的,一般来说,我们会把协作分成以下四个方面来衡量。

  • 协作质量:我们可以用对内协作的量除以对内协作和对外协作量的总和,如果是高占比,就意味着是“高内聚低耦合型”的优质协作,反之就代表协作质量较低。简单来说,如果团队成员需要频繁的跟团队外部人员沟通,那就意味着协作质量存在一定问题。
  • 协作类型:关键是围绕什么进行协作,例如代码、任务、需求、服务等。如果是两个服务型团队间协作,那么他们之间的交互就不应该是围绕一个任务或需求来开展,因为服务是可以直接互用的,对于这种不合理的情况,就需要去改进。
  • 协作强度:度量的标准是协作次数与协作时长,而且,跟不同的人协作的强度也应该是不同的。
  • 协作丰富度:充分的协作可能会运用多种媒介,例如Espace、云龙、DevCloud等,而不同媒介有不同的作用,因此也可以用协作媒介数量来衡量协作丰富度。

除了根据上述四种协作类型判断协作质量,进而解耦外,我们还会根据业务形态,进行团队架构上的解耦。比如针对云化和IT类产品,我们进行服务化解耦,提倡微服务微战队,就是将服务细化拆解并分配到相应的微战队中,微战队完成任务之后再与整体服务进行对接、联调,进行整体的测试。而对于系统类产品,我们会组件化解耦,就是将系统组件化,每个组件分别开发完之后进行最后的集成,再完成上线,因此对应的团队就是组件化微战队。

其实,微战队是一种实践,我们比较高效团队和低效团队后可以发现,在很多团队中,真正干活的可能只有三五个人,或者三五个人之间的合作比较密切。因此我建议PL可以观察团队中成员的交互,看哪些人协作比较多,就可以把他们组成微战队。这样做带来的好处,除了高效沟通与协作之外,还可以减轻PL的管理工作,甚至可以减少一些管理者角色。

第六,建立成长心态,不怕失败,持续成长。

华为的文化不是特别提倡试错,而是提倡成长的心态与文化,要时刻从工作中、生活中学习。心态不同,看待同一件事情的感受和反应也不同。比如加班这件事,假如一个新的版本需求要尽快实现,有人的第一反应是“天啊,又要加班”,但也有人会说“我们又有事做了”,这其实就是僵化心态与成长心态的区别。

僵化心态主要是说,他们认为人的能力是不变的,就像成人的身高一样,在这种情况下,如果又想要在事情上、任务上有不错的表现,在面对挑战时,他们就会更倾向于避免可能会失败的情况,在他们看来,失败是有损形象的事,努力更是只有没天赋的人才会做的事。

与之相对的,成长心态则认为人的能力是可以增长的,就像肌肉一样,他们更重视学习、成长,因此对于挑战,他们拥有很强的适应力,会尽量去拥抱它,在他们看来,失败可以得到更多信息,而努力是精通的必经之路。

那我们是怎样帮助员工建立成长心态的呢?举个例子,众所周知,华为有很多研究所,不同的业务线可能都建立了它的研究所,它们都有各自的职能。我们可以通过研究所在各个地域推动工程师文化与高效个人的知识分享,举办学习活动,推荐标杆式学习并给予激励奖项等等,从而创造一个知识学习与积累的氛围,推动高效个人。

总结

从我们推行的经验来看,五星级软件工程师的高效秘诀的四个层次,用中国人的话来说就是道、法、术、器,用西方术语来说就是价值观、原则、实践、工具。我们可以这样来理解这四个层次: 第一, 道的层面:就是理念,我们认为高效的团队和个人是提升研发效率的关键; 第二, 法的层面:就是方法、套路,从活力、贡献、管理、能力、协同等维度切入改进,提升个人及团队的能力,优化协作。 第三, 术的层面:就是具体实践,我们倡导微战队、静默时间和首席工程师。静默时间就是在静默时间编程,首席工程师是把团队中的高效个人单独划分出来,组成优秀团队,由部门经理直接管理,这个团队中的同学还有一个特权,可以挑选工作。 第四, 器的层面:工欲善其事,必先利其器,要提高效率,一定要为员工提供先进、易用、贴切的工具和工具链服务。

感谢收听,我们下期再见!如果你觉得这篇文章对你有帮助的话,也欢迎把它分享给更多的朋友。

作者简介

徐毅,华为云DevCloud首席技术布道师,华为Cloud BU软件开发云产品部、华为研发能力中心特聘敏捷专家顾问,前IBM大中华区敏捷及DevOps卓越中心主管,前惠普企业服务资深敏捷顾问,前诺基亚移动设备敏捷及精益教练,前诺基亚网络全球敏捷转型中心精益及敏捷教练,业内知名敏捷教练及顾问,IT书籍译者。

参考资料

https://learn.lianglianglee.com/%e4%b8%93%e6%a0%8f/%e6%8a%80%e6%9c%af%e9%a2%86%e5%af%bc%e5%8a%9b%e5%ae%9e%e6%88%98%e7%ac%94%e8%ae%b0/142%20%e5%be%90%e6%af%85%ef%bc%9a%e4%ba%94%e6%98%9f%e7%ba%a7%e8%bd%af%e4%bb%b6%e5%b7%a5%e7%a8%8b%e5%b8%88%e7%9a%84%e9%ab%98%e6%95%88%e7%a7%98%e8%af%80%ef%bc%88%e4%ba%8c%ef%bc%89.md