一个技术团队,不管大小,如果没有“技术味道”,那么技术Leader负有很大的责任。“技术味道”的缺失,是目前技术团队存在的最大问题。特别是做业务开发的技术团队,如果管理者完全不关心技术细节,绩效完全和业务KPI绑定,就会导致工程师们整天只会写if-else的业务代码,得不到技术上的成长。在这样的技术团队,团队的战斗力和凝聚力都会每况愈下。
那么作为一个技术Leader,我们要如何去提升团队的技术氛围,重燃团队对技术的热情呢?下面是我在日常带团队的过程中使用的一些提升技术氛围的方法,方法并不难,在任何的技术团队都可以操作落地。
1、代码好坏味道
在我们团队周会中,有一个固定的环节是“代码好坏味道”:当天的会议主持人(我们的周会是轮值主持的,每个团队成员轮流组织一期)要给大家分享3个代码好味道和3个代码坏味道,这些代码既可以来自我们的工作代码,也可以来自开源软件的源码。
这个活动非常有意义,一方面每个人都会更多地去读他人的代码,另一方面自己在写代码时也会比较注意。因为一不小心,自己写的代码就可能成为反面典型被拿出来“晒”。晒代码不是关键,关键是通过晒代码,我们可以互相分享写好代码的心得和经验,特别是一些来自开源软件的好味道,对我们写好代码有非常好的指导意义。这样整个团队的技术能力都会提升,当然,也包括Leader自己。
2、技术分享
分享是倒逼我们去学习和总结的有效手段。在准备分享的过程中,我们要去阅读很多资料,要把原理弄清楚,还要用别人能听得懂的方式表述出来。最重要的是,通过分享,整个团队都能学到新的知识,分享人和倾听者都会收益颇丰,何乐而不为呢?
例如,我所在团队的近几次技术分享分别是关于Service Mesh、FaaS和Cloud Native的(见图11-1)。这些概念虽然很重要,但是日常工作中暂时还没有使用场景,没有必要每个人都去研究一遍,因此分享学习是一种非常经济的团队学习模式。一个人学,然后整个团队都能有了解和认知。期间大家还可以有讨论和碰撞,这样既学到了东西,又增加了团队成员之间的连接,其作用不亚于一次团建。
图11-1 团队正在分享Cloud Native
3、CR周报
代码审查(Code Review,CR)是保证代码质量和架构风格一致性的重要手段。我们试过很多CR的方式,有Peer Review(点对点地审查),也有Group Review(团队成员一起审查)。这些方式都很好,但有一个共同的缺点,就是很难将过程透明化。
CR周报就是要把CR的结果透明化,通过周报的形式展现团队在一周中的CR成果,包括团队成员的CR评论数排名、代码分支的质量情况,以及CR中的典型案例。这种透明化非常有价值,既可以帮助技术Leader了解代码质量的概况,也能极大地调动团队成员进行CR的积极性。
如图11-2所示,这是我所在团队一期CR周报的节选。同样,CR周报的发送人也是轮值的,通过这种方式,我们真正做到把CR变成我们工作的一部分。
图11-2 CR周报示例
4、读书会
在一个人的能力象限中,我非常看重学习能力。原因很简单,一个人一旦停止了学习,就停止了进步。读书虽然不是学习的唯一方式,但一定是不可或缺的方式。我在面试候选人时,会经常问“你过去一年都看了哪些书”,如果一本都没看过,基本该候选人就不在我的考虑范围之内了。
因此,我的团队中是非常重视读书这件事的。首先,作为一个技术Leader,我们要带头读书,现在很多的下属不信服老板,就是因为老板不读书、不学习,不能给团队带来新的输入和营养;其次,要鼓励团队多读书,成立读书会就是一个很好的形式。
关于读书会的运作,在此分享以下3点经验。
1)书的范围可以放宽一点,不要只局限在技术类书籍,毕竟除了技术,我们还有很多东西要学。例如,我们最近一次读书会选的书是《高效能人士的七个习惯》。
2)读书的方式,可以是同读一本书,也可以拆书,就是每个人分别读书的一章或者几章,然后互相分享书中的内容和读后感。拆书的效率更高,比较适合工具类的书。
3)读书会的举办频率可以灵活一些,工作任务紧的时候,频率适当放低,甚至暂停。