- A+
编程派微信号:codingpy
最近有关某互联网公司前CTO写不写代码的话题热度很高,正好昨天又看到一名 Python 程序员在博客里也谈到了类似的话题,所以我就抓紧时间做了一些粗略的翻译,分享给大家。
本文作者是 Jeff Knupp,写过一本名为 Writing Idiomatic Python 的书,最近刚刚升任所在公司的开发总监,应该是这个职位。
另外在这里搞个小活动,具体见文末哈。别错过了。
今年早些时候,我迎来了职业生涯的一个转折:我决定不再写代码,转而成为我所在团队的开发经理(Engineering Manager)。我之所以称之为“职业转折”,是因为觉得认清这一点很重要。大多数人将这一转变看作工程师职业生涯的自然进阶之路。这样想的话就大错特错了。
大错特错的原因在于,工程师和开发经理之间没有什么可以通用的技能,除了之前已经积累的领域知识可以帮助你管理项目之外。但是几乎每名工程师都会跟你说,一个优秀的工程师不一定就是一名合格的经理。有些公司意识到了这个问题,所以为那些只想一直写代码的人规划了另一条职业路径,不会让他们没有晋升的空间。遗憾的是,大部分公司的想法没有这么前卫。不过,我们暂时假设你的情况和我一样:
-
你喜欢教别人写代码
-
你善于发掘别人的潜力,想让团队成员提升能力
-
你关心公司,想从公司层面提出改进建议
-
更重要的是,你真的关心自己的同事
恭喜!至少你转变职业方向的理由是正确的。这是好消息。坏消息呢?接下来几个月将会是你工作以来最为艰难的一段时期。就我个人的情况而言,更是如此。有生以来第一次,我感觉工作很困难。之前,我的大部分工作虽然很考验自己的智商,但是我从没觉得那些工作很“难”。因为我知道需要做那些事来解决问题。如果不知道,我还可以稍作研究,总是会找到问题的解决办法。工作的头八年里,我用 C++ 为高盛等投行开发高频交易系统,虽然那个工作不简单,但也不是那么地困难。
一个优秀的工程师不一定就是一名合格的经理
但是管理团队不一样。我有很多要学习的东西,而且我的决定会直接影响别人的工作。我很担心因为知识欠缺给团队带来不好的影响。“搞砸“对我来说有了新的意义。
但是除了承担新职责、时刻担心失败和知识不足之外,我还特别想做一件事:
写代码。
为什么开发经理特别想写代码?
为什么会出现这种情况?为什么我会想去做自愿放弃的事情?成为开发经理是我自己的选择。我的决定难道是错的吗?哪些行业的管理层会渴望去做他们手下的工作?
(注意,我这里所说的“写代码”,指的是:1. 在上班时间;2. 针对手下可以或者应该完成的任务)
说服自己有必要继续写代码是一件很容易的事。下面是开发经理经常给出的一些理由:
-
我需要保持技术水平;我不想被人抛在后面。
-
如果团队看不到我的技术能力,就不会尊敬我。
-
我是一名非常优秀的程序员,不写代码简直浪费我的才华。
-
团队需要我来写代码;他们没法自己解决这个问题。
你肯定能找到各种各样的理由,解释自己为什么应该继续去写代码。为什么你必须写代码。如果不写的话是多么地失职…没关系,我也找过这些理由。可惜你的这些想法都是错的。
这到底是为什么?
经过认真反省,我意识到自己特别想写代码有两个原因:
-
写代码对我来说是一份既熟悉又安全的工作。
-
写代码是评价自我价值的主要来源。
当面临新的挑战时,人们自然而然地想逃避到熟悉地带。我想写代码,不是因为这能更好地利用我的时间,而是我在新岗位上碰到的都是不熟悉、困难的东西。写代码是我的安全港。我知道在这方面可以做的很好,而且在写代码的时候我没有失落感和无力感。
新升任的经理决定去写代码,是因为管理团队对他/她来说是一件陌生的困难的事情,而写代码既安全又熟悉。
当面临新的挑战时,人们自然而然地想逃避到熟悉地带。
此外,我内心还是开发者心态。即使在最糟糕的时候,我还是可以指着某个东西,说“那是我做的”。管理层就没有这些东西了。事实上,评估自己的表现也是特别困难的一件事。我不仅不知道怎么胜任这份工作,甚至不知道自己做的好不好。当我把编程从自我存在感中移除,将其替换成自己都无法评价的技能,注定会出现失落的情绪。
工程师转经理之后,不代表你马上不再想开发炫酷的产品了。
说实话,我自己花在写代码上的时间很多。我写了一本 Python 方面的书,参加论坛演讲,私下还教别人学 Python。如果有“坚持不懈写代码”奖的话,我想自己应该可以候选。但我不应该拿奖。没人应该。因为对你来说有害无利。
有什么坏处?
许多经理会问,“继续和团队一起写代码有什么不好的吗?我只是想帮他们…”不管你信不信,当了经理还继续写代码是有害处的。请看以下几点:
-
你有新的工作要熟悉。这需要时间。你每花一分钟在编码上,就浪费了一分钟来看材料、和同事谈话等工作,即成为一名更好的经理。
-
团队内的权力平衡被打破。大家会对你区别对待(包括你写的代码)。他们会在代码审查时对你客客气气。如果你把他们感兴趣的任务分配给自己,他们肯定会不太高兴。他们会不太乐意和你合作,害怕在“老大”面前丢脸。给你自己分配编码任务可以说是滥用权力,赶紧醒一醒吧。
那现在怎么办?
上一节中提到的第一点,其实对你来说也可以说是一个机会。试着这样做:每次想写代码时,强迫自己读一些与管理相关的材料,即使只有一点关联。每名管理者都有会最喜欢的一些书,最喜欢看的博客等。问问同事就能找到类似的材料。
每次想写代码时,强迫自己读一些与管理相关的材料
我知道你在想什么:“这招也太老套了。真有用吗?”虽然我不喜欢用小故事来回答这类问题,但是这里还是原谅我这样做一次。我刚升经理后几个月,公司让我管理更多的人和团队。就在几周前,我成为 Enigma 公司的开发负责人,有约 30 名工程师和开发经理向我汇报工作。所以,从我的例子来看,这是有用的。虽然我会第一个承认这次升职可能只有 25% 或更少是由于我自己的能力(更多的是公司的需要以及我对公司同事的关心)。不管怎么样,这样做不会有坏处。
小活动具体说明:
昨天推送的「程序员都在读的12本书(附福利)」文章中,介绍了一本叫《软技能》的书,我拿到了 3 张在异步社区兑换该书的样书券,打算送给一直关注编程派的各位朋友。
还是和上次类似的规则吧,想参加的朋友请在本次微信推送图文的下方留言,就 #开发经理应不应该写代码# 这个话题谈谈自己的看法。我将从中选择获得点赞数前三的朋友。
留言请以#开发经理应不应该写代码#开头,并确保和话题相关哦。
另外,如果你留言了,就顺便点个广告支持一下呗~~O(∩_∩)O~
欢迎转发至朋友圈。如无特殊注明,本公号所发文章均为原创或编译,如需转载,请联系「编程派获得授权。