# 怎样算一个好的技术团队

# 事件起因

最近和朋友谈论起这样的一个问题,趁此机会根据这不算多的几年工作经验做了一个简单的总结。我并没有读过一些管理学或是团队建设相关的书籍,之前也从来没有对此做过深入的研究。但是在这几年的工作中还是发现了针对其一些共通之处,在这儿用团队成员的视角来记录自己的所感所想,权当以后挑选团队时能够对照的一个简单参考。

对于一个技术团队的评价,我将其简单分为三个维度进行考量,这三个维度分别是

  • 团队技术氛围
  • 团队技术积累
  • 团队成员实力以及成长

下面就这三点依次说说我自己的看法。

# 团队技术氛围

对于团队的技术氛围,从领导者的角度看到和从团队成员角度看到的,我想可能是有比较大的出入的。在之前的一次面试经历中,也问过作为团队建设者的面试官,团队的技术氛围是怎样的。虽然其中可能有面试忽悠成分在里头,但我依然得到了一个非常肯定的回答:整个团队非常热衷于技术,工作之余,也非常喜欢在茶余饭后讨论技术问题。听到了这样的回答,我的内心蠢蠢欲动,心想着这一定是一个能让我有非常巨大的成长空间的团队,心想着作为同样热爱技术的人,一定要加入它。

然而后续的体验与当时的描述还是存在着一些差距,首先我发现了自己在高强度的工作环境下,在茶余饭后根本不想再去思考任何消耗脑力的东西,对于技术的热情也在需求轰炸中有所下降,尽管平时下班后,我依旧会考虑在自己的电脑上码两行代码,写点自己喜欢的东西,但是在一些强度极高的工作周期中,每每回到家甚至连打开电脑的心情都消失殆尽了。在这样的前提下,我发现身边的人在茶余饭后所讨论的技术,大多也都是局限于日常工作中所遇到的一些难点,而非我一开始所想的,聊一些行业之内,工作之外的东西来增长自己的见识,拓宽自己的眼界。

这样的氛围,也不能说他完全没有技术氛围,只是和我最初的期望有所偏差。或许从领导者的角度看,团队中的每个人都在精进自己,都在拓宽自己的技术边界,但是从我这一介小兵的角度看,或许大家和我一样,只是在努力渴求自己在团队中那不多的生存空间。

但是反过来说,如果大家都完完全全躺平,那在我看来至少肯定算不上是一个好的技术氛围。

只是将来在评价一支团队是否拥有较好的技术氛围时,还是应该去获取更多角度的看法和意见。

# 团队技术积累

氛围毕竟是一种看不到摸不着的东西,也参杂着大量主观成分在里头,但是团队的技术积累确实实打实的。

技术积累也可以分为多个方面,首先在大的方面,可以从下面三个角度来进行考量

  • 技术文档
  • 技术工具
  • 技术规范

# 技术文档

技术文档应该是能够最直观反映出一个团队有多少技术积累的。大多数的技术文档可以被分成3类

  1. 工具教程类

这一类文档主要用来记录开发交付给其他合作人员的内部工具说明,例如游戏团队中开发为美术制作了一个工具,所对应的使用说明文档就在这一类,如果是开发对接开发,各种协议接口文档也应该包含在此。内部工具的多少,好用与否能够直接影响一个团队的产出效率,好用的内部工具肯定是一个好的技术团队所必不可少的。

  1. 开发过程记录

这一类文档主要记载开发在实现某个功能的过程中,对实现原理的说明或者是过程中踩的坑,这类文档可以使一个功能从一个开发转移到另一个开发的过程更加平滑,而不至于同一个功能换一个人就像是要从头开发起来一样费时费力。实现原理的说明和踩坑记录的积累,对整个团队也能产生积极的影响。

  1. 技术调研类

这一类文档主要着眼于对一些团队没有接触过的技术的研究,或是更好的实现方式,或是更好的功能效果,充分的预研能够在时机到来时让团队勇敢地跨出那一步,实现更好的产品效果。

# 技术工具

这部分主要想说的还是团队项目工具,例如团队所选择的代码托管工具以及是否有对应的自动化流程,这对于稳定项目开发进度有着积极的促进作用,固定周期的发版也能够及时发现项目中的问题和不足。还有是否有高效的项目管理工具来分配和平衡团队中每个人的工作量等等。但由于我并没有太多的项目管理经验,这些也只能泛泛而谈,但是内心依旧觉得对于如何安排团队中的项目进度,任务时间,以及人员之间的配合,这些也是一个好的技术团队所应该做好的事情。

# 技术规范

虽然近几年大厂们都在大搞特搞研效,但我依旧觉得技术规范可能是最容易被忽视的一个点。规范可以分为很多,除了代码规范,如果团队中有其他不参与编码的成员,那可能还会有相应的资源规范,最后的产品可能会有性能规范等等。规范的制定让一些无法量化的指标得以量化,可以对着规范找不足,可以对着规范做优化。虽然这会消耗大量的时间精力,但是假如整个团队能够对一个规范达成共识,所带来的好处也是无可比拟的。

顺带一提,我觉得一个团队能够以同一种规范共识去开发一个项目这已经是一件非常值得称道的事情了。

# 团队成员实力以及成长

工作以来待过大厂也待过不到百人的小厂,一路走来,会觉得越成熟的项目,对个人实力的稀释也就越大。小项目有一个技术大牛可以独当一面,撑起一整个项目,但是成熟的大项目中,大家无论技术强弱,都沦为了这个巨大精密器械中一颗微不足道的螺丝钉,没有一个人可以洞悉整个项目的全部细节。因此我现在反而觉得,团队成员的个人实力反而是技术团队中比较不重要的一个部分。

但是话说回来,既然作为其中一个成员处在团队中,肯定是希望自己能够在团队中有不错的发展和成长。如果团队也希望成员能够有不错的发展和成长,那这其中的门道就比较多了。如果希望团队成员能够在一个平缓过度中发展和成长,则变得更加不易。例如循序渐进的需求安排,自由而充分的交流氛围,或是团队中特定领域大牛的经验输送等等,总之这里也有着非常多的事情可以做。而做好了这些,也许能够增加成员的归属感,也许能够让成员得到不错的进步和发展,总之在成员的角度看,总是往一个好团队的角度又迈进了一步。

# 结尾

个人在互联网团队待过也在游戏团队待过,总体来说感觉互联网团队对于工具的选择和技术选型更加自由,游戏团队对于之前的积累更加注重。游戏团队也由于存在着大量非编码成员,对于一些工具的切换相对来说也没有那么容易。

总之挑选一个能够长久待着并且体验不错的团队并不是一件容易的事情,但是却是一件重要的事情。这次把自己的一些思考记录在此,也希望将来能够少踩一些坑,多一些发展空间。