如何成为一名优秀的技术经理
我们都知道有的程序员能创造 10 倍的价值,那么我们是吗?
根据 20 世纪 60 年代进行的一份研究,对开发人员的各种方面(如代码简单性、程序大小、调试技巧、程序执行等)进行了比较。根据这项研究,普遍的共识是,一个优秀的开发人员和一个差劲的开发人员之间的差异可以达到20 倍之多,而中间值在大多数情况下是 10 倍。
这就是说,假设你已经苦干了多年,吸收了所有可能的技术,最终达到了令人垂涎的 10 倍高级开发人员级别。太棒了,恭喜!你应该得到名望和随之而来的尊重。现在你想攀登下一座山:成为一名优秀的技术经理。想想就觉得很美。
等等,让我们花点时间想想。
首先:技术经理到底是谁,与传统项目经理的角色有什么区别?
简单地说,技术经理的职责是计划、安排和管理与 IT
相关的项目,例如支持软件工程、应用程序开发、网络安全等的项目,虽然技术经理的主要管理技能与非技术性的基本管理技能基本类似,但强制性的技术专长(当然还有人际交往技能)才是真正的区别于传统管理者的角色。
所以,这意味着你需要对自己诚实,首先要知道是什么驱使着你。是写代码吗?是设计软件吗?或者,是让团队完成工作,帮助团队在最后期限完成工作?解决冲突,管理挑剔的利益相关者?
以上问题的答案应该在很大程度上决定你未来的行动方向。例如,在我的案例中,我以一个热衷于编写代码的开发人员的身份开始工作,在适当的时候,我发现我有管理人员、解决他们的问题以及从他们身上获得最好结果的诀窍。对我来说,成为一名技术经理是一个显而易见的选择。
一旦你确信技术领导的道路对你是正确的,那么你还有一些工作要做。你需要提高自己,培养自己的所有特质,使自己成为一名成功的技术经理。
以下是一些你需要集中注意力的关键特征。
学会授权
一个好的技术经理的重要特点是有责任心。
作为一个开发人员,解决疑难问题会给你带来乐趣。对于开发人员来说,没有什么比找到解决一个长期悬而未决的问题的最简单的解决方案,并愿意为重构那些非常糟糕、错误的代码而受到赞誉更令人兴奋的了。
但现在作为一名技术经理,规则已经改变了。当你有很多其他的事情要做的时候,你就没有足够的精力来处理这些有趣的问题。你不能错过其他的会议活动,因为它们对你来说是最重要的。同样,通过解决最难解决的问题,你剥夺了其他开发人员发展和发展技能的机会。简言之,你创造了一个瓶颈,从长远来看对任何人都没有帮助。
当然,当你的经验和知识很重要的时候,也会有一些问题,但是在这里你需要扮演一个灯塔的角色,引导船只(RD 开发者)找到海岸。您可以坐下来和开发人员一起检查解决方案,并让他们走上正确的道路,以便他们能够制定自己的解决方案。
这里的关键是信任。你需要信任开发人员,少参与,委派一个活动,这样你就能把注意力集中在最重要的事情上。
同理心
作为一名开发人员,您可以从纯编程的角度查看任何解决方案。所以这意味着你只需要关注“如何”而不是“为什么”。所以你可以专注于提供高科技的技术解决方案,把业务影响留给“管理层”去解决。
现在你不能这么做,因为你是“管理层”。这意味着您现在必须根据需要考虑业务现实、人的因素、组织文化、约束和财务。对您来说,现在一个可行的解决方案应该是一个在业务方面能够实现其目标的解决方案,并且应该远远不止是一个强大的技术解决方案。
新的技术经理常常犯错误,用技术术语而不是业务术语解释他们的计划。这会挫败业务方,导致缺乏他们的支持。所以作为一名技术经理,你需要做的最重要的事情就是用业务理解的语言重新定义想法。有些方法是可以的。
- 无论你觉得知识多么简陋,都不要妄想它。在开会前,分发一份技术术语和首字母缩略词的简化表格总是一个好主意。
- 用故事、隐喻、例子和案例研究来吸引听众,用外行的话来说明你的想法。
- 别胡闹了。尽可能简明扼要地解释这些想法,使之不利于技术。
记住这里的关键词是同理心,一种有效领导的关键技能。技术经理应该试图了解他们的业务同事的问题,并作为业务领导者而不是技术专家来陈述他们的案例,以获得有效的参与。
建立你的人际网络并赢得信任
当你是一个开发者的时候,你可以做一个独狼,做你自己的事情。是的,独立工作是开发人员所期望的品质。但当你成为一名技术经理时,你需要建立你的人际网络并获得信任。
“人际网络”这个词让大多数技术极客感到恐惧。但是,建立一个由志同道合的同事组成的人际网络并不意味着你需要外向,或者拥有杰出的社交技能。相反,建立人际网络的最好方法就是做你自己。在建立关系时,建立信任是必不可少的,而真诚和直截了当是最好的方法之一。
建立信任和建立关系的最简单方法可以是帮助其他团队处理紧急情况。这样你就开始欠他们“人情”,你可以在适当的时候毫不犹豫地问他们。自愿帮助别人发挥他们的主动性,或尽可能多地帮助别人完成他们的工作,这不仅能培养你的专业技能,而且还能在组织内建立你的影响力。这种影响是帮助你进入“完成任务”模式的秘诀。
当你开始在公司内部建立人家网络时,你很快就会发现事情发生得更快,因为他们了解你,信任你,你甚至能够完成看似无法完成的任务,而这些任务可能是你无法控制的。
最后,找时间编码
这个角色被称为技术经理是有原因的。你首先应该是一名工程师,有很强的软件工程背景和实践经验。如果你不花时间在代码上,你最终会成为一个“象牙塔架构师”,正如 Scott Ambler
在他关于“敏捷建模”的文章中恰当地定义的那样。
“象牙塔建筑通常由建筑师或建筑团队开发,与项目团队的日常开发活动相对独立。强大的建筑大师开始开发一个或多个模型来描述您团队中的仆从将要构建的架构,这是建筑师最清楚的。象牙塔建筑往往是美丽的东西,通常有很多精美的图表和美妙的视觉宣言,表明它们是你的救赎”。
这些技术经理既不会参加技术讨论,也不会在不了解其对实施或维护的实际影响的情况下领导讨论。这种反模式有灾难性的副作用,比如破坏与开发人员的信任,降低团队士气,增加新特性的开发时间,以及增加软件系统的复杂性。
因此,即使你成为了一名经理,你也应该始终保持你的技能足够敏锐,能够胜任并适应在编码和设计原则方面的领导和交谈。参与代码不仅有助于获得尊重,而且有助于使您的知识与当前的问题、可能的解决方案以及代码库的健康状况保持同步。
找到编写代码的时间的关键是确定活动的优先级。这也意味着要对你的时间花在哪里做出艰难的选择。但是一旦你在你的日历上划掉了专门的时间,你就可以放心,你的生活永远不会过时。生活就是学习。你学得越多,收获越多。
正如圣雄甘地所说的那样。
“活得像明天就要死一样。学习吧,就好像你要永远活着一样。”
- 原文作者 : Ravi Shankar Rajan
- 原文链接 : How to be a Successful Tech Manager
- 译者 : 邓士伟
关于作者:
Ravi Rajan是印度孟买的全球IT项目经理。他还是一个狂热的博客作家,俳句诗歌作家,考古学爱好者,历史狂热者。在 LinkedIn、Medium 和 Twitter 上与 Ravi 联系。