技术管理者应不应该写代码?

标签: Tech Work management | 发表时间:2012-08-13 16:21 | 作者:Stanley Xu
出处:http://www.xuwenhao.com

我相信所有新晋的技术经理,都做过Team的工期紧张,自己加班动手写Code的事情,这种事情我自己也没少干过,事实上,偶尔我自己仍然会在critical的项目上写一些代码。相信不少同志们还引以为荣,并且不少技术管理的书上,对于技术管理人员是否应该去写代码也有不同的观点,有些认为不应该写,有些认为一定要写一点避免脱离群众外行指挥内行。我之前也一直犹犹豫豫有时候写点有时候逼着自己不写,但是黄易山在Quora上的这个回答,最终还是让我有了“还写砍手”的自我提醒。

理性上,我完全同意黄易山的观点,写工具是可以的,但是在deadline下写项目代码是对团队和个人都长期不利的,虽然也许短期内对自己的KPI有利。但是过去克制不住的愚蠢和冲动时不时让我冲到critical的项目上写一两个模块,但是每次反思,其实我知道这样对整个团队的效率,以及我自己的成长没有太大帮助。事实上,从这些项目中技术经理个人是得不到成长,还不如写点工具对自己的帮助大,原因就是为了进度压力,技术经理去写代码只能是重复自己已经做过的事情。而写代码本身是需要大片完整时间的,会占用掉大量你本来应该做的事情的时间。

也请认识我的朋友们监督我,如果还看到我在critical项目中冲进去写很多代码,阻止我一次请杯咖啡。


成为一个经理之后,你如何继续保持你的技术能力?

黄易山,一个前技术总监

作为一个足够大的团队的经理,你不应该继续写代码。我辅导过许多新晋的技术经理,我总是告诉他们 —— 当一个团队大于~4个人的时候,他们不应该再去写代码并且要抵制自己写代码的冲动。

原因在于,当你的团队遇到死命令的时候(比如,交付日期),一个年轻的经理很可能会被诱惑退回到他/她的舒适区中去解决问题。那就是,相较于做困难的(并且在时间上看来是很有风险的)更好地组织,激励团队,以及不管什么需要他们去做的“经理的工作”,他们立刻卷起袖子,熬夜加班,通过自己写代码来将项目完成。之所以这很糟糕是因为当像这样的艰难时刻出现的时候,恰恰是一个新的经理需要学习如何 有效地管理,并避免退回去使用他们的旧的技能的时候。如果他们诉诸于使用他们的技术能力来帮助他们的团队,他们永远不会学会变成一个卓有成效的经理。 这是一个那些前工程师是否最终成长为一个好的经理的至关重要的分界点。

除此之外,保持你的技术能力是非常简单明确的。

第一件事就是你真的不需要太担心失去你的优势。如果你过去干得不错,你不会像你想象地那样生锈的。在管理岗位上呆了2年+之后(并且担心这个问题),我加入了另一个公司并且重新回到了一个直接写代码的角色上,我发现非常奇怪地是,我的技术能力 进步了。如果你是一个深入参与技术的技术经理,显然从一个更广的团队层面思考软件管理是有助于将通用的概念在一个更高的层面上组织起来的,并对回过来进行个人实践是有帮助的。另一方面,我并不知道如果你在管理岗位上呆上比如10年之后这一点是否仍然还是对的。

第二种方法就是写代码。但是,你不能为有交付期限的关键项目写代码。那就是说,你不应该为你的团队“需要”来贡献代码。这就时我在本文早先部分的答案——对于你的团队需要交付的项目,你应该通过 更好地管理来提供贡献,而不是写代码。取而代之的是,你应该写一些内部工具或者为非关键项目写代码(也许是另一个团队的非正式的架子)。这些可以和那些有最后期限或者关键业务项目一样在技术上非常复杂,所以你无需担心你无法从合适的技术和算法中得到经验。或者,你可以在家里的空闲时间里写无关的技术项目。这是我第一次当经理时候选择的方法,在我的休息时间,我创建了一家创业公司并且学了一门新语言,以及关于可扩展性和数据库的许多东西。

所以,你可以用你一直用的方法来保持你的技术能力,写代码。只是 不要为你的团队写代码


相关 [技术 管理 代码] 推荐:

技术管理者应不应该写代码?

- - 灰色的灵魂
我相信所有新晋的技术经理,都做过Team的工期紧张,自己加班动手写Code的事情,这种事情我自己也没少干过,事实上,偶尔我自己仍然会在critical的项目上写一些代码. 相信不少同志们还引以为荣,并且不少技术管理的书上,对于技术管理人员是否应该去写代码也有不同的观点,有些认为不应该写,有些认为一定要写一点避免脱离群众外行指挥内行.

facebook是如何管理代码的

- NIUZHU - 无网不剩
原文在此,看完之后,终于明白为什么优秀的工程师都去了/想去facebook,因为那里是工程师们的天堂. 我对facebook的运转着迷. 这是一个很独特的环境,不容易被复制(他们的体系并不适合所有的公司,即使他们努力尝试过). 下面是我和facebook的朋友们关于他们如何开发和管理项目的记录. 现在距离我收集的这些信息又过去6个月了,我相信facebook肯定又对他们的项目开发实践进行了改进.

Facebook 是如何管理代码的

- everfly - 互联网的那点事
英文原文:How Facebook Ships Code. 中文翻译:Facebook 是如何管理代码的. 我对facebook的运转着迷. 这是一个很独特的环境,不容易被复制(他们的体系并不适合所有的公司,即使他们努力尝试过). 下面是我和facebook的朋友们关于他们如何开发和管理项目的记录.

源代码管理的十条戒律

- - 搜索引擎技术博客
源代码管理是我们工作中很重的一部分,是很多开发组的生命. 但是我们往往在这方面犯错,不理解很多基本的,核心的版本控制的概念. 我在这里列出了十条建议,可以说是戒律. 虽然我会用 Subversion 和 .NET 来做示例,但这些戒律和你用的 编程语言还有源码管理工具无关. VSS 已死,就让它离去吧.

技术经理该不该写代码?

- - 灰色的灵魂
今天微博上很多人在转MongoDB的Eliot Horowitz的 Engineering Managers Should Code 30% of Their Time,我也来说说我的观点. 首先不是所有的Senior Tech Member的角色都是Manager,比如Jeff Dean在Google的角色是 Senior Google Fellow(他们终于为Jeff Dean升职而专门发明了“Senior” Google Fellow这个职位.

Impala中的代码生成技术

- - CSDN博客云计算推荐文章
Cloudera Impala是一种为Hadoop生态系统打造的开源MPP(massive parallel processing)数据库,它主要为分析型查询负载而设计,而非OLTP. Impala能最大限度地利用现代硬件和高效查询执行的最新技术. LLVM下的运行时代码生成就是用来提升执行性能的技术之一.

如何提高代码质量(管理篇):代码复查

- - 博客 - 伯乐在线
也许你是一位项目经理,也许你是一位项目骨干成员,或者开发小组长. 在我发表“如何提高代码质量”的这一系统文章后,有许多网友都向我抱怨,说他无法把握整个项目组成员的代码质量. 我想,这也是所有项目组普遍存在的问题吧,它通常表现为以下几个问题:. 任何项目组成员都不可避免地出现新手,他们往往是刚刚从大学毕业的学生.

技术、管理与30岁的槛~

- Amom - 高春辉的 BLOG
原发表在新浪微博: @高春辉 (1)我相信在技术圈里,30 岁以后是不是去做管理的纠结,一定是每个做开发的人都会有的,包括我在内,也和很多人讨论过,但是我还是选择了自己喜欢.