8 月 24 日, TGO 鲲鹏会 https://tgo.geekbang.org/ 西安分会 & 成都分会联合举办的 "跨蜀道秦岭, 成就「技」无止境" 分会活动上, 火币网首席架构师 & TGO 鲲鹏会会员 郑晔 进行了题为《如何成为一名卓有成效的技术管理者》的演讲分享. 在演讲中, 他分享了卓越技术管理者的定义和定位, 以及修炼为一名卓越成效技术管理者的几大方式. TGO 鲲鹏会对其演讲内容进行了分享和整理, 以飨读者. 以下内容整理自郑晔的现场发言:
大家好, 我是郑晔, 来自火币网, 担任首席架构师的角色. 同时, 我还负责一个开源项目 Moco, 也曾经翻译过几本技术书, 创过业, 还写过专栏 -- 《10X 程序员工作法》 . 如果各位是 TGO 鲲鹏会的会员, 那么我的专栏对你们应该是免费的.
今天想为大家分享一个主题, 名叫《卓有成效的技术管理者》. 其实我一般喜欢分享技术干货, 鲜有管理方面的内容. 但今日正好来到西安做技术分享, 加之这个话题已经在脑子里盘旋了很久, 于是便把一些不曾对外讲的内容拿出来跟大家分享.
不知道在座的各位有没有看过《卓有成效的管理者》这本书, 这本书的名字与我们今天的主题是类似的. 当我讲管理话题的时候, 我自然而然就会挑行业里比较重量级的人物的思想跟大家分享. 那么, 我们先看一下书中讲了什么内容, 再对照日常我们工作的时候会跟这个有什么差别.
既然是讲卓有成效的管理者, 肯定会涉及两个问题, 即什么是卓有成效, 什么是管理者. 按照书里的定义, "卓有成效" 强调对工作本身的贡献;"管理者" 强调对组织能力和绩效的影响 .
我觉得在座的各位既然能做到管理者的角色, 那么在自己原来岗位上的工作绩效都是非常好的. 但当你扮演了一个名叫管理者的新角色, 绩效的定义就和做程序员时不是一回事了. 这两个角色的偏差之大, 可能让很多人在从程序员成长为管理者时, 都需要做出思想上的转型.
很多人带领大团队做事时, 会跟大家说我们努力往前冲, 一定要把这个事做好, 这个没有任何问题. 但你有没有想过, 怎样利用自己的能力或者影响力, 让团队在与你共同工作一段时间之后, 不仅能够完成任务, 还能够提升自己的水平? 这本书强调的不是一个纯粹的技术管理者, 而是管理者的身份, 需要你既能把工作成绩做的很好, 又能把团队带的很好, 这是非常有挑战的事情.
当谈及管理者面临的挑战时, 这本书里也给出了参考答案. 书里说, 你的时间不再属于你自己, 而是属于别人. 不知道在座的各位是否也有这样的感觉? 如果你的团队是一个刚创业的小团队, 你会说我其实不错, 我有大把的时间跟团队一起写代码一起奋斗; 如果你的团队规模稍微大一点, 达到上百人的规模, 想坐下来写代码是不可能的事, 除非你的职责可以被团队中的某人替代掉.
作为一个管理者, 必须花大量的时间进行沟通, 同时也容易将注意力局限在组织内部, 很多时候团队事情做的很好, 但是外面的市场环境一变, 或者评价体系一变, 之前做的所有事情就失去了意义. 比如诺基亚, 内部运转很好, 管理非常好, 但是外部的情况都变了, 内部的运转情况也就失去了意义. 此外, 德鲁克也重点强调了知识管理. 知识管理要靠知识, 创新产生新的内容, 这跟传统的管理方式有很大的不同.
对于处于变化之中的体系来说, 上述问题还只是冰山一角, 管理者需要面对非常非常多的问题. 当我们谈及管理, 其实是要找到一条让工作更有成效的道路. 首先不妨让我们看一下书里的建议.
一, 由一本书出发, 分析管理的本质
1, 如何管理好时间
这话听起来跟一般的成功学书里强调的很像, 比如我要认识时间花在哪, 我一天很忙, 都忙什么了? 或者你要记住时间到底是怎么花费的, 对自己的时间花费有清楚的认识. 有了以上认知后, 我们要把浪费时间的活动砍掉, 有效利用整块时间. 当然, 后面还有很多时间管理的概念, 时间管理的矩阵, 如何定位出事情的优先级等等, 对我们来说, 能把最重要的事挑出来并且做好, 是时间管理的前提.
2, 如何管理好人员
最基本的是用人之长, 需要让能力普通的同事也能够很好的工作, 大家之所以能成为管理者, 很重要原因的是大家能力相对强一些, 那么你怎么能够让能力普通的员工也发挥自己的长处?
此外, 怎么管理你的上级? 这是当年此书给我印象最深的一点. 在座的各位有些已经是公司最大的老板, 这句话你可以理解成怎么管理你的投资人. 在中国传统思想结构上, 我们讲究尊卑有序, 大家在管理下级时, 通常会做得非常漂亮, 而管理上级的时候气势就小了许多. 你可能常常在思考, 如何与老板要求资源, 如何与老板讨价还价, 如何让老板帮助你, 或者你常常遇到老板提出一些不合理的情况, 说实话就是你太纵容你的上级了.
之前有人说, 高层管理者通常有一个很严重的问题 -- 自我感觉特别良好. 他们很擅长往下发号施令, 接到下面反馈的内容却很有限. 一方面, 老板未必能够倾听下面的反馈; 另一方面, 下级也未必能有效的将问题反馈上去. 这个问题是双向的, 如果在有人觉得自己的老板只是个完全听不进去话的混蛋, 可能你考虑的就是完全不同的另一个问题了.
3, 如何充分了解自己, 发挥自己所长
这点对于技术管理者来说有挑战, 技术管理者擅长的地方是什么? 往往是技术, 如果你只顾发挥自己的技术特长, 团队很有可能会完蛋. 太多的时间花在写代码上, 团队谁来管理? 这是需要权衡的地方. 要把自己作为技术管理者的能力发挥出来, 是一个需要多方权衡的问题.
4, 如何做有效决策
有效决策, 其实强调的是首先不忙于决策, 尽可能做重要决策, 一旦决定要做的事就要尽快行动; 其次是对经常发生的事情确立原则, 不重复造轮子. 如果团队给出方案时出现冲突, 需要拍板, 你要勇于承担责任.
刚才提到很多怎样做到卓有成效的管理者, 好消息是所有东西都是可以学的. 掌控自己的时间, 重视对外的贡献, 用人所长, 要事优先, 有效决策 , 这五点是这本书强调的五个工作习惯.
二, 技术管理者, 与管理者, 区别在哪里?
我快速将这本书为大家简单的复习了一遍, 但我们今天讲的主题是卓有成效的技术管理者, 主题跟《卓有成效的管理者》这本书差了两个字. 技术管理者和管理者, 差别在哪? 只差两个字 -- 技术. 我们是技术出身, 优势是了解技术细节, 但与此同时, 你也很容易陷入技术细节, 将其变成自己的劣势.
一旦陷入细节之后, 你会忽略很多东西. 比如你可能会忽略管理, 尤其是刚开始进入技术管理角色的时候. 你强调的往往是技术上的能力, 是能否带领团队搞定这个事情, 但这是一个团队, 一个人能力再强也不可能把所有的活都干了. 你的责任是带着团队把事情做了.
技术管理者在解决问题时, 很容易忽略外部情况, 比如我自己. 前段时间, 我刚带领一个团队, 努力的把系统各种问题搞定, 但是回头老板说, 状况为什么跟我理解的不一样? 我忽然意识到我有一段时间没有跟老板沟通了, 这个地方肯定出问题了. 于是我立刻跟老板沟通, 看有没有有效的管理措施.
有时, 我们也会忽略员工本身的成长. 当你的团队有一个重要员工需要离职, 你需要问自己这个哥们儿跟你干了这么长时间, 他到底有没有得到自己想要的东西, 你有没有了解这个人内心需要的东西是什么. 我时常会回头看看跟我一起干的兄弟们能力有没有成长, 如果他们只能在同样的问题上不断的重复, 对他来说, 跟你干和找任何一个公司干没有区别. 你虽然很有本事, 但跟下属没有关系.
一旦成为管理者, 尤其是需要狂奔的时候, 解决技术问题的时候, 你可能会下意识地忽略这些问题, 因为人的注意力有限.
技术管理者还有一个非常强的倾向, 就是用技术解决问题. 这个特质原本不错, 但是不能所有问题都用技术解决. 比如, 老板扔过来一大堆需求让你明天就解决, 你肯定搞不完, 怎么办? 我可以跟老板谈, 我是否可以做现价交易功能, 不做市价交易功能, 老板想了想说可以. 我继续说, 手续费可不可以这期配置成固定的, 下期改成配置的, 老板可能说也可以.
当你用这种思路解决问题的时候, 你的需求可以被砍成若干个, 而不是一定要上线一个非常完整的交易系统. 我没有写代码, 我是在用沟通商讨方式解决问题. 如果你的团队只能技术解决问题, 往往是很伤人. 我们是一个技术团队, 但是我们首先应该想到如何不用技术就能解决问题.
三, 作为技术管理者, 如何做的更好
刚才说的是作为一个技术管理者, 我们固有的优势和劣势, 下面说说我们如何做的更好.
既然要成为专业的技术管理者, 我们就应该对整个软件开发行业有一个更好的认识. 你得知道这个行业有什么, 你才能决策我选择什么技术. 当你成为技术管理者的时候, 你的角色不仅仅是一个特定领域的技术专家.
比如说对软件开发过程, 你要了解它是瀑布的模型, 还是敏捷状态; 你要了解现在的系统怎么做集成, 是手工集成, 还是每日集成, 还是持续集成到持续交付. 关于部署, 你要了解是从应用服务器开始, 还是 Docker 到 K8s.
我们自己公司内部招聘时, 发现有一个非常有意思的现象, 我们公司在同一个级别招两个角色 -- 技术专家, 技术总监, 团队带的相对比较好的往往是技术总监. 你是什么样的角色, 你给自己的定位是什么角色, 这两者往往会慢慢产生分歧. 因为技术牛成为了技术管理者, 但你不能靠技术牛来长期的维持在这里. 如果你把自己定位成技术管理者, 那么就意味着不仅要自己把这件事做好, 还要带着团队把这件事搞定, 你要选择一个适当的方式方法, 让团队整体有一个很好的提升.
上面我们虽然讲过大家应该了解软件行业的最新发展, 但是这里还有一个更麻烦的事, 你能不能开放心态持续学习? 你在做某一个决定, 某一个技术选择, 某一个过程选择的时候, 到底是因为什么? 仅仅因为你熟悉, 还是它真的是好东西?
技术人员可能还有一个更大的风险, 就是一种冒险的冲动. 比如说微服务, 如果轻易地走上微服务的道路, 很多团队会死的非常难看. 我就知道很多团队仅仅听某一个技术大会说微服务不错, 就冒险选择了微服务方案, 结果预定两个月上线的项目上了半年.
当然情况也可能相反, 技术管理者会由激进的心态变成保守的心态. 我之前做过一些咨询公司, 去一些公司跟别人谈, 比如说过程改进, 朝敏捷的方向走吧? 很多人反对, 但说白了他也不知道自己反对什么, 你能听出来, 不是因为他现在的过程中做的很好, 而是现在的过程他非常熟悉.
当你成为一个技术管理者时, 你是什么样的心态, 是一个开放的心态, 还是一个封闭的心态, 其实有非常大的差别. 如果你是开放的心态, 好东西会进入到团队中来. 如果你是封闭的心态, 团队就会变得闭塞. 当团队有很多老员工时, 你可能会对这种心态感觉尤其明显.
你应该有开放的心态学习知识, 更重要的是要持续学习. 持续学习不光是学习技术, 学习软件开发相关知识, 而是要持续学习你不知道的所有东西. 最近几年, 我看了很多书, 但我发现技术方面的书占比越来越少, 其他方面的书越来越多. 如果非得在管理者的身份上套上技术两个字, 想问题的范围会变窄. 如果去掉技术符号, 你能学的东西, 要学的东西几乎是无限的, 对于每个人来说都有很大的提升空间. 对我个人来说, 开放心态, 持续学习是我从业近 20 年后, 自我感觉还能提升的重要的一个原因.
最后一点, 作为一个技术管理者, 我们不仅要关注一个事情的表面, 更要关注事情背后的本质 . 比如对于持续集成, 我们真正关注的是能否实现很好的自动化; 再比如, 关于说验收标准, 验收标准的格式是什么没有那么重要, 更多的是在一开始你能否清晰定义结束的标志, 就是以终为始.
讲了那么多关于技术管理的东西, 本质还是回归五个工作习惯, 你能否有效掌控你的时间; 能否对外做出有效的贡献; 能否充分发挥团队成员的能力; 能否做到要事优先; 以及能否做到有效决策.
Q&A
Q1: 咱们要做技术管理, 如何成功吸引 CEO 的注意力, 如何表现你的成果, 如何向 CEO 展示技术管理者的成果. 有时, 我们做研发, 老大不太关注, 今年销售多少钱他特别关注, 技术管理者的角度, 我们用什么很好的办法能够吸引 CEO 的注意力, 让我们的成果被 CEO 更好的理解.
郑晔: 任何一个公司对研发来说都不是很有力的角色, 对任何一个公司来说, 老板最终关注的是结果. 看你的团队有多大, 如果团队规模很小, 很多东西你跟老板会走得比较近, 你多跟老板沟通, 他会逐渐体量你一些, 如果你的团队规模比较大, 老板只能拿结果要求各位, 你能做的事是什么? 尽可能的把结果做好.
回过头来, 如果你想把事尽可能的做好, 一是管控老板的预期 , 不能让老板想什么是什么, 老板也是人, 欲望是无限的, 你今年能干一个月的活, 明年为什么不能干两个月的活, 会给你规划 24 个月的工作量. 二是自己对于内部尽可能达成目标 , 我要想达成目标肯定要把一切没那么重要的东西尽量往下砍. 当你的团队规模够大, 浪费会非常严重, 把不必要的事想办法砍掉, 尽可能完成老板预期目标是有可能的. 用 MVP 的思路解决问题, 从需求端先砍掉, 再交给下面的人, 要控制他们天马行空的想象力, 让他们把注意力聚焦到问题的点上, 道理大家都懂, 真正做到我个人认为是非常困难的.
如果问我有没有一招制敌的办法, 我的回答是, 没有. 我会经常跟我的老板沟通, 大家互相设计预期. 我一旦注意力钻进去我也会经常会跑偏, 刚才讲的原则是大家容易听懂的, 但是真正把它践行到实际工作中是非常困难的, 你要时时刻刻提醒自己, 为了让我自己内部的工作做好, 一定要管好老板.
Q2: 我们成为技术管理者, 原来是团队里写代码比较出色的, 或者基于深度广度都有认识, 转到管理之后, 看的技术的书越来越少, 其他书比较多. 后面的过程中, 对于技术的深度和广度, 在技术管理者中重要性, 或者你觉得它重要如何保持技术的深度和广度, 尤其是有些技术不一定能在你的项目中实现.
郑晔: 我自己写程序写了十几年, 看你的关注技术是哪方面的技术, 你会发现技术没你想象的变化的那么快, 应用技术变化的快.
比如说今天出来个 AI, 明天出来个物联网, 5G 又出来了. 实际上你自己关注的东西是否变化的那么快? 比如说我自己最关注的领域是软件设计, 我翻了一下软件设计, 最近几年比较火的 DDD, 大概是 03,04 年出来的, 十几年前的技术我十几年前可能已经看过了, 再去理解新的技术对你来说难度不高.
你自己要想好, 你想成为什么? 你想成为技术专家, 你得先在技术上有一个足够的积累, 你想成为一个技术总监, 你应该逐渐扩展对于软件开发整个过程的把控, 这两条路发展变化都没有那么快, 当你成为一个专家之后, 你再学习新东西, 其实你学的不是从 0-100, 你学的只是其中很小的部分.
最近我也学新的东西, Facebook 新出来一个语言叫 Move , 我花了一两天时间看了一下, Move 最核心的概念是每个资源只有唯一的所有者, 资源只能消费一次, 并限制创建新资源. 它解决什么问题? 防止智能合约里面不小心搞错了, 对数字货币安全的必要保障. 有新的技术出来了, 你能否很快的学习, 取决于你之前有没有那个领域足够深的积累, 如果你有积累再学这个东西, 你学的都是差值, 这个学起来是非常快的. 不是说现在新技术不学, 每天我也会关注很多新东西, 哪一个新东西值得我花时间去看.
在我的职业生涯中, 我有一段时间做了咨询, 中间有两三年没做 JAVA, 发现 JAVA 的东西几乎没有变, 我花了 20 天捡起来, 写了一系列的文章告诉别人应该学什么.
对于各位来说, 你自己想好自己发展的定位是什么, 如果是技术专家, 你在技术上下功夫, 把技术积累到一定的深度, 学习会很快. 如果你想成为技术管理者, 软件开发过程管控的很好, 这个领域变化也非常少, 在我看来我为什么觉得这些年读的技术方面的书没有以前多, 说实话我觉得值得读的书没有那么多. 我觉得, 你应该想好自己的发展路径是什么, 在这个领域里你要有足够深的积累.
Q3: 刚才讲到要事优先, 一次做一件事, 怎么理解这个点. 在我们管理日常工作中, 很多事情需要同步推进, 怎样实践这个点?
郑晔: 刚才说要事优先的原则, 谁都躲不开每天有各种各样的事, 你会把自己的时间做划分, 哪些事对你来说是重要的, 哪些事是不紧急的. 很多既不重要又不紧急的事就不要做了, 有些事是不是非得你来做, 这个事你不做让别人去做有什么不一样.
对于大家来说每天都很忙, 能不能把这些事放出去, 作为技术管理者总有一种错觉, 觉得我很重要, 你想多了, 有些事你不做别人会做的很好. 你一行代码不写, 让你手下做的好的兄弟们来做, 你要管理好你的老板, 不要让老板有更多的需求, 兄弟们就能很好的完成. 你自己应该把注意力放在什么地方, 肯定有一百件你不满意的事, 你能不能同时解决, 估计不可能, 每个人的能力都是有限的, 在一段时间内只能选择你认为最重要的事.
你自己最重要的事到底是什么? 你不要把自己看的太重要, 尽可能的让手下的兄弟们分这些活, 其他不重要的事就不做了, 这是一个做事划分的原则, 能不能实践好这个原则, 很大程度上是你把自己看的多重要. 能甩出去的事尽量往出甩.
TGO 鲲鹏会 https://tgo.geekbang.org/ , 是极客邦科技旗下高端技术人聚集和交流的组织, 旨在组建全球最具影响力的科技领导者社交网络, 线上线下相结合, 为会员提供专享服务. 目前, TGO 鲲鹏会已在北京, 上海, 杭州, 广州, 深圳, 成都, 硅谷, 台湾, 南京, 厦门, 武汉, 苏州十二个城市设立分会. 现在全球拥有在册会员 800+ 名, 60% 为 CTO, 技术 VP, 技术合伙人.
会员覆盖了 BATJ 等互联网巨头公司技术领导者, 同时, 阿里巴巴王坚博士, 同程艺龙技术委员会主任张海龙, 苏宁易购 IT 总部执行副总裁乔新亮已经受邀, 成为 TGO 鲲鹏会荣誉导师.
来源: http://www.tuicool.com/articles/MBFnyqe