这是一个非常敏感的话题,每次谈论到技术总监要不要写代码的时候,总会引起一片争论。
有的程序员说技术总监如果不写代码怎么能领导好技术团队;有的说技术总监还需要写代码?如果技术总监都需要写代码的话,那技术团队有多操心呐。正反观点看起来都蛮有道理的,我也试着和大家聊聊这个话题。
我感觉自己还是蛮有资格来讨论这个话题的,我有过30人左右技术团队负责人的经历、也有过管理超100多人研发副总的经验,也经历了从一个程序员到一个技术管理者身份转变的历程,所以方便从各个角度来看待这个问题。
任何问题抛开背景来讨论都是耍流氓。
比如下面这个图片,正着看的时候是一个老太太,如果我们把手机倒过来看的话是一个小姑娘。
这就是我们看待问题的角度不同,所展现给我们的视角也是不同的。
技术总监要不要写代码这个话题,其实也是需要看公司是什么样的背景、处于什么样的阶段、技术总监管理人员的规模来定。
另外技术总监只是一个统称,很多公司还会分部门技术总监、研发中心技术总监等,不同级别也需要不同的讨论。
首选探讨一下什么样的技术总监需要写代码,这里的写代码指的是参与到具体的编码实现。个人认为有以下 3 种情况:
01 技术驱动型的技术总监需要写代码
很多互联网公司产品,完全是依赖技术来构建的,公司的命脉都是技术,那么这个技术总监就一定要参与到核心代码的编写中。
比如我一直比较关注的创业公司 PingCAP ,他们公司的主要产品是 TIDB,一个开源分布式关系型数据库。我们知道开发一个高效的数据库是一个技术含量很高的事情,那么这种类型公司的技术总监一定会参与到编码中。
02 初创技术团队的技术总监需要写代码
一个创业公司的初创团队,可能公司的技术体系、技术路线、技术文化完全都没有搭建起来的时候,必定需要技术总监参与到一线,一步步将这些内容搭建起来。
同时几乎所有的创业公司在刚开始的时候,就技术的需要程度是相当紧迫的,所以这个时期的技术总监,一定要亲自参与其中,确保核心系统功能不会出现问题。
有一个很著名的反例:
2012年的时候程维为了滴滴产品快速上线,花了 8 万找了一个外包做了一个 APP,开发出来不仅体验差,还出现了耗费流量高、耗电、听不到订单、定位不准的问题,差点直接将滴滴搞死。后来张博的加盟才逐步解决了这些问题,产品稳定后才赢得了滴滴后期的大发展。
国内外的互联网公司都存在创业早期过分注重技术,认为技术可以搞定一切;创业成熟期后又过分轻视技术,导致后期问题频发。所以对技术的重视程度应长期保持一致。
03 管理十几人以下的技术总监需要写代码
管理十几人的技术总监,个人建议总体还是需要参与到核心代码的梳理中,需要对系统的各个特性了然于胸,知道系统很可能出现的问题点,在出现问题的时候可以快速定位解决。
在这个规模的时候,如果技术总监不参与到核心代码的工作中,其实是很难掌控整个系统的稳定性,出现问题的时候需要依赖于团队中的核心骨干来解决。
当然肯定不是需要参与大量的编码工作,可以在架构设计、核心代码评审、代码优化层面来多做工作。如果这个阶段的技术总监完全脱离代码编写工作,容易导致团队技术失控。
国内技术总监现状
在国内,大多数技术总监其实是没有参与到具体的代码编写中的。一方面国内很少有上面所说的纯粹技术驱动型的公司,大多数互联网公司对技术的重视程度仍然很不够,认为技术只是服务于公司商业价值,从而不断的压迫技术团队。
特别是老板如果对技术一点都不了解的话,那对技术团队就是一个大灾难,可悲的是大多数企业都是这个情况,这个时候技术总监的很大一部分精力,就变成了如何向老板合理的解释清楚技术团队的工作情况,不是封闭几个月或者压迫一下就可以搞出一个完美的系统。
国内的大多数技术总监都被迫陷入很多的行政事务中,比如我曾经呆过的第三方支付公司,各种监管机构每个月都会有各种检查,另外还需要处理各种外部需要文档、行政事务、外部谈判、公司会议等各种各样的杂事中。
当然这些都不是最可怕的,最可怕的是如果参与到公司的办公室政治,那很多事情就已经偏移了事务的本质,不是这个事情你要不要做好的问题,还需要考虑很多其它的因素,类似的事情最容易让人心累,耗费巨大的精力。
技术总监到底需要干些什么?
首先强调一下技术总监是一个管理岗位,所以它的管理职责远远大于编码职责,技术总监的工作更应该关注宏观、全局性的问题。
如果一个技术总监自己代码写得贼溜,团队内小伙伴代码写得一片烂渣渣,那他绝对不是一个合格的技术总监。
所以技术总监不是让自己编码很爽,技术总监的工作更应该是让团队内的成员编码很爽。让团队内的小伙伴编码很爽,其实就有很多的工作要来做。
比如构建一个有技术氛围的团队,做有前瞻性的技术选型,在业务设计、架构设计、系统架构上下狠功夫。任何团队内不太爽的工作都是技术总监的责任,比如需求变动太频繁、技术选型不合理导致问题频发,团队没有定期的技术分享。
技术总监需要负责技术管理体系的建设和维护,对行业技术发展趋势和管理现状具有准确的判断,从技术层面上协助决策层实现战略目标。所以必须综合实力很强,既要懂技术,也要懂管理,而且职位越高,所需要的知识面要越广。
用通俗易懂的话来讲:技术总监的工作就是对内就是让团队干活很爽,对外要拼命接住老板吹过的牛逼。
那么我们最后来探讨一个话题:除过上面三种情况,工作中写代码的技术总监就是好的技术总监,不写代码的技术总监就不是好的技术总监吗?
答案留给大家,请在评论区告诉我。
作者简介:纯洁的微笑,一个有故事的程序员。曾在互联网金融,第三方支付公司工作,现为一名自由职业者,和你一起用技术的角度去看这个世界。我的个人微信号 puresmilea,欢迎大家找我聊天,记录你我的故事。