锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

李昊:从技术到管理,如何实现螺旋上升?

时间:2022-10-24 20:30:00 5kp90a直插二极管

从开发人员到技术经理应该如何提高他们的能力?李浩认为,开发管理之间的差距并不难跨越。他将从深入了解基层技术管理岗位的角色,纠正对技术经理的误解,通过日常执行层真正做好管理三个维度,给开发人员一些入门指南。

作者 | 李昊

出品 | 《编辑部新程序员

自Marc Andreessen在2011年提出“Software is eating the world(软件正在吞噬世界)”,十余年来,在“软件 在互联网的推动下,各行业实现了深度融合。对于开发者来说,通过大量的行业实践,其设计硬件、编写软件、扩展架构等技术能力迅速提高,甚至在一些核心技术上取得突破,使国内IT技术从追赶者变成了领导者。

然而,当各行业面临进一步的转型升级时,我有一种强烈的忧虑感。我们迫切需要提高技术管理能力,但我们必须面对人才短缺的危机,特别是缺乏基层管理人才。

对于刚进入银行管理的开发者来说,最缺乏的是基本的管理技能,这取决于他们是否对工作有透彻的了解,如何处理技术和管理之间的关系,以及如何正确理解管理工作。如果你还没有清楚地思考这三点,你很可能会发现是在处理各种被动的紧急情况,很难有主动的创造力。从长远来看,会有一种只是打杂而不是真正控制组织管理改进的感觉。

从开发岗到管理岗,我也经历了一段适应期。我自己的感觉是,开发和管理之间的差距并不难跨越。一旦你明白自己是管理新手,并认为这是我选择的一个新的职业渠道,你就可以与我今天什么都没做的感觉和谐相处,然后开始认真学习管理,练习听、说、读、写的基本技能,让自己理解、清楚、正确。随着我管理的团队取得了好成绩,我获得了比只写代码更大的成就感。

李昊,曾在IBM、Ericsson、Myriad公司从事嵌入式、服务器端和客户端系统的研发和团队管理。2013年创业TestBird、货车帮、西瓜创客等公司担任产研负责人CTO目前,技术高管的角色等FITURE负责增长。

作为一个有经验的人,我也想与更多的管理新手分享我的想法和经验。通过分析技术经理角色的核心痛点和难点,结合我在管理不同规模的生产研究团队方面近十年的经验教训,总结从个人贡献者到基层技术经理的专业转型所需的相关知识和技能,希望能帮助您稳步、良好地走管理之路的第一步。

本文节选自《新程序员004》 『纸质书 电子刊』已开启预售

1.如何正确理解从开发者到经理的角色转换?

在进入主题讨论之前,我将简要谈谈我的经历。

我是技术背景,进入管理岗位前,在外企做到了Principal Engineer(首席工程师)。然后我意识到,如果我想开发更有创意的技术,我必须从更多的维度了解产品和业务,所以我开始做技术管理。一段时间后,我又回到了研发岗位,所以我在技术和管理之间转换了几次。

后来,我发现,如果我真的想做好产品和业务,最重要的是澄清技术和管理之间的关系,首先是深入了解技术经理的角色。

了解基层技术管理岗位的角色

万事开头难。作为工程师踏上管理岗位的第一站,可能会误解基层技术管理的供需。

在供给侧,每个人进入管理层的机会和意图是多种多样的。有的人因为专业能力强,在团队中有发言权被推到管理岗位;有些人从事管理岗位是因为他们渴望为他人的成长服务;更多的人因为世俗的原因:升职会有更多的权力和收入预期增长;甚至有些人进入管理层只是因为厌倦了被低水平的人管理,坚信自己能做得更好。无论是什么,决定成为管理者的工程师都将进入一个新的、具有挑战性的职业渠道,而不是作为个人贡献者。

事实上,技术人员在进入管理层时会面临这样的现象:只有少数公司真正愿意投资和培养管理能力,尤其是基层管理。其主要原因是有效的技术管理既需要技术能力,也需要管理能力,这两种技能的培养需要大量的时间。因此,我们可以看到,由于基层管理者的管理能力,许多企业无法正确分解和实施从各种纠纷和摩擦到高层制定的技术战略。

因此,要做好基层技术经理的工作,首先要了解这个角色到底意味着什么。做技术经理不是晋升,而是切换到一个新的职业渠道,有足够的期望作为新手,及时学习和补充缺乏管理技能,包括:如何提高团队效率;如何评估团队绩效;如何选择、教育、使用、留住人才和建设工程师文化;如何分配时间;如何做好向上和向下的管理。每个话题都很难。

技术管理离不开技术

基层技术管理的另一个困难在于软件开发的复杂性:在给定的时间点可能是平衡的,但从长远来看,软件开发仍然是动态的。例如,近年来容器技术带来的变化并不是颠覆性的技术突破,而是一个小的变化导致了另一个小的变化。当一系列的变化集中出现时,就会产生一个新的生态系统,并被泛使用。因此,与许多传统工程领域相比,软件开发本身就是一个动态平衡的过程。

然而,软件开发人员很容易迷恋特定的技术或方法,甚至形成技术栈的蔑视链。但现实世界中的软件构建并非二元选择,而是在各个细节上不断权衡。例如,后端使用Python、Ruby这种动态语言还是Java?CI/CD自建工具链还是现成云服务?如何收集、清洁和存储数据?要不要拆微服务,要不要做单体应用?这些问题不适用于任何条件的最佳解决方案。管理者必须有足够的技术判断力,才能根据项目、团队和资源的现状选择合适的妥协点来实现业务目标。

因此,要成为一名合格的技术经理,我们不能没有坚实的技术作为保证,否则就很难获得团队的信任。只有让自己成为该领域的专家,我们才能参与设计讨论,发现计划中的差距或评估错误,以解决技术冲突。同时,技术经理也应该很好地了解团队正在做什么,并在工程师不在场时向他人解释团队输出的价值,特别是管理层。

还需要注意的是,技术经理不必成为架构上的决策者(通常架构师这样做),但他们必须知道何时干预,谁干预,以促进问题的解决。

管理不仅仅是工作的一部分

基于技术的重要性,很容易误解管理是技术管理的一部分,特别是基层管理者通常因为技术优势不同于普通人而得到提升。选择管理后,你会发现自己每天都被各种各样的人和事打乱。每天精疲力竭地回家,却感觉一天下来没有做一件“有实际意义”的事,非常惶恐。这样,很多人就会回到研发的第一线,寻找意义,通过解决具体问题获得舒适的管理工作更加脆弱,最终进入负循环。

这是一个没有正确理解管理工作和管理技能的大问题。

我在管理初期也有类似的问题。所以,我记录了我的时间分配,并记录了时间块旁边的状态。很快我发现我花了很多时间参与编码。当我参与甚至负责核心模块或解决阻塞性技术问题时,我感觉很好。当我花时间完成管理相关工作时,无论是根据业务目标分解团队目标,战略分解为战术,积极推广、实施、着陆,还是花时间了解员工的需求,评估员工的能力,分配挑战但足够的任务,建立他们的上升渠道,总是感到疲惫,甚至沮丧。

然后,我开始有意识地调整我的时间表。一方面,系统地学习管理知识和技能,并留出足够的时间来完成管理工作;另一方面,逐渐退出核心模块的编码工作,只写工具或修复漏洞来保持对系统的理解。一段时间后,我发现领导团队取得了更好的效果,每个人都感受到了成长,团队的成长也给了我一种成就感,形成了一个积极的循环。

总之,管理不是技术管理的一部分,而是它的全部。我们必须全心全意地投入到支持和服务团队的工作中。

2.如何做好基层技术管理

在了解了基层技术管理岗位的角色意义后,如果你仍然对管理感兴趣,下一步就是具体执行。

从我自己的管理经验来看,最初的问题主要是缺乏基本的管理技能。你可能会整天安排团队工作,自己编写代码,并匆忙提出各种意见、回顾和确认。

在这种情况下,我们必须走出编码的线性思维,我们不能做任何事情。我该怎么办?在我看来,有五个部分:确定时机;制定标准行动日历;做好一对一沟通;练习听、说、读、写的基本沟通技巧;沿螺旋轨道上升。

确定时机

基于专业知识的必要性,技术管理不应过早。在我自己的技术团队中,P8及以下级别不单独列出管理职位。如果你还没有成为一名经理,并对成为一名经理感兴趣,还有很多事情要做。

首先,你可以读一些管理书籍,比如Camille Fournier的The Manager's Path。然后,用这些背景知识来识别你的团队经理的管理风格和技能,并从中学习。如果条件允许,可以考虑加入公司信誉好的管理团队,近距离学习这些管理技能。与此同时,你需要花时间了解公司的文化和成长阶梯。正如本文开头所说,并非每个公司都会重视基层管理者的培训。如果你发现公司建立的渠道与你想要的不一致,早点做出选择。

当你认为时机成熟时,你可以主动表达你的意愿。这里的诀窍是不要等到机会来了再表达。当你觉得自己准备好了,你可以解释一下。慷慨地告诉上级你的想法和计划,并关注公司其他团队的机会。

制定标准动作日历

当你成为一名经理时,你的时间会被切断。此时,一定要在日历上制定一些标准动作,如每天、每周、每月的标准动作。完成这些行动后,您的管理质量将得到基本的保证,您可以放心和大胆地利用其他时间来做其他工作,特别是处理各种紧急情况。

基层管理工作在组织、绩效、跨部门合作等方面参与较少,此这些标准动作主要是关注流程和团队,可以按照时间段的短、中和较长期来划分。

短期:每天

  • 了解团队每位成员的工作计划、进度和困难,可以通过站立会,也可以通过代码审核,当然也可以通过聊天的方式来完成,无论用什么方法,必须做到位。

  • 参加至少一个技术讨论,看是否能理解并发表观点。不要组织或参与冗长无功的讨论,如果还处于定义模糊的阶段,最好线下面对面地讨论。

  • 解决所有成员提出的问题和困难,这里的“解决”是说指明方向,而不是手把手教授。

  • 查看团队成员提交的代码和文档,明确是不是在做“有用功”。

  • 以身作则流程化,整理并跟踪所有的需求、结论、思路,多写文档。其作用是给自己捋思路,推荐用英文写技术文档,这样更简单明了,毕竟多数人的词汇量没有大到能够通篇“废话”的程度。

  • 做好负载均衡,把事情均匀地分配给团队成员,确保没有人同时负责太多并发任务。每个人应该专注在一两件事情上,如果发现有人停滞不前,应该主动疏通调整。

以上这些事情因为要每天做,所以最好借助系统工具来完成,如“Jira+Confluence”或“飞书+Notion”。

中期:每周

  • 审视整体进度,根据实际情况增加或延后任务。

  • 和产品经理协作,做好任务的拆解,包括提前准备线框图等,确保所有人对任务的理解一致(包括界面细节)。

  • 周报不要长篇大论。周报必须有结构,包括本周完成情况和归因分析、下周的计划目标,以及关键依赖或需要什么帮助。

较长期:两周

  • 找到感兴趣的系统细节,深入了解和思考其中的逻辑,与负责这部分的成员深度合作,或者在自己完成框架的基础上找到这部分负责人继续完成其他细节。

做好一对一沟通

和员工定期一对一沟通,就像开车出远门检查油箱还有多少油一样,非常重要。但员工身上没有仪表盘让你能够读数,那么,一对一沟通具体怎么做呢?

一对一沟通总体有两大类,一类是跟直接汇报给自己的人沟通,一般每个月都需要做。当公司有重大变化时,则不拘于频率,按需沟通。

另一类是跨级的,这对你的管理也非常重要,特别是针对新员工和即将转正的员工。不同的沟通对象要准备不同的内容。有两个核心技巧:第一,搞清楚由谁主导对话。大多数时候你要有自己主导对话的准备,但也有些时候员工想要说更多,就应该让他们尽情表达。从一个轻松的话题开始,看看他/她是不是有表达欲望,如果有,那么本次沟通应该是你倾听为主。第二,以下我列出了一些适用于沟通的问题,但都只是纲要而不是“台词本”。你可以围绕这些问题发现背后想要了解的内容,自然轻松地聊天,同时,一定要仔细记录和跟进对方的反馈。

对所有人都适用的问题:

  • 你状态还好吗?进展是否顺利?

  • 在做事的层面,有什么是我可以帮忙的?

  • 在和其他人协作的层面,有什么是我可以帮忙的?

对于刚加入的新同学:

  • 你遇到过什么问题吗?

  • 入职流程有什么可以改进的地方?

  • 有没有想法想分享给所有人?

对于即将转正的成员,除评估工作进度外,核心是建立沟通模式:

  • 哪些事情会让你觉得状态不好?

  • 我可以通过什么办法知道你状态不好?

  • 在状态不好时我可以怎样帮助你?

此外,还有针对入职一段时间的成员可以提的问题。

每次都可以提的:

• 我观察到你在做的事情,我有一些建议。

• 你的合作方对你的工作有这些反馈。

• 哪些地方做得好/不好,可以怎么改进。

• 什么样的1:1更有价值。

每个月可以提的:

• 有没有好奇或担心的变化需要我解释?

• 有没有听到或感受到的事情需要我确认?

• 让我告诉你一些可能会影响你和你团队的信息及决定。

• 让我们讨论更广泛的组织发展目标和方向,确保你的目标和公司的目标一致。

每个季度可以提的:

• 今年的目标是什么?最近三个月的目标是什么,完成得怎样?

• 需要从我这里得到什么帮助?

• 需要从团队得到什么帮助?

• 需要从团队外部得到什么帮助?

学习和成长主要有四个目的,包括有新的且更具挑战性的事情可做、能够主动和团队交流及沟通互助、营造公平向上和开放进取的团队氛围,以及定期定时、清楚明确地进行绩效反馈,确保进展顺利。

这里我需要再强调一点,一对一沟通成功的前提是双方有信任感和安全感。如果关系不熟,可以先从爱好、感受、未来规划等事情开始聊,不要强行问上面的问题,会让沟通对象有压迫感,也不会得到他们真实的想法。相信我,只要把上面这些工作做到位,你已经是相当不错的基层技术管理者了。

练好“听、说、读、写”的沟通基本功

在管理中有一个“第一团队”和“第二团队”的概念。

很多初做管理的人可能不知道,自己的平级以及汇报对象才是“第一团队”。而汇报给自己的人以及他们的下属其实是 “第二团队”。如果记录你在这两个团队中花费的时间,往往会发现,花在第二团队的时间占绝大部分。而实际上,能不能和第一团队对齐目标、协同作战,真正做好第一团队和第二团队的衔接,是在做管理岗后职业发展通道的第一道坎。

怎么迈过这道坎?我认为最重要的是提高自己面对冲突和压力的能力。大部分做基层技术管理的同学花过多时间在第二团队,说白了,是因为自己在树状结构的顶点,在里面待着比较舒适。而成熟的基层管理者,不仅要主动解决组织中的冲突,甚至常常刺激良性冲突发生,以促进组织目标的达成。

要完成这样的转变,首先要练好“听、说、读、写”的沟通基本功,提高自己获取、过滤、筛选信息并把观点简明扼要表达的能力。然后,要对如何提问、倾听、表达,以及高效达成共识等方面进行刻意练习。在这个过程中,要增强对情绪压力的认识和了解,体察自己及同事的压力和情绪状态,真正把冲突和压力转变成充分表达想法并形成团队合力的机会。

总之,只有走出自己的舒适区,与第一团队充分沟通,了解公司的战略、战术方向,清楚各种决策的上下文,才能有针对性地推动第二团队做正确的事,正确地做事。

3、沿螺旋轨道上升

回顾我自己和很多朋友的职业发展道路,我还想给基层技术管理者一个建议,就是技术管理和技术专家两条职业通道并不是对应关系。也就是说,并不是做了基层技术管理者,就只能沿着这条路走到黑。

正好相反,最好的工程师往往是做过一些管理工作的,因为他们更懂得沟通,更有成本意识,更注重交付。最好的管理者往往有2-3年在一线做技术的经验,因为他们更有技术手感,能和团队良好沟通,也能做更高质量的判断和决策。

因此,好的技术管理者和好的技术专家,发展都是沿着螺旋轨道上升的,看起来可能一会儿往西,一会儿往东,在两个通道中来回切换,但因为两部分的知识和技能都得到了扎实的发展,整体前进的潜力会更大,步子也会更稳。

当然,想要有这样的心智,在信奉“学而优则仕”的环境中不太容易。如果你从心底接受管理不是晋升的理念,就很容易接受从管理做回工程师不是“降级”。相信经过两、三个这样的螺旋上升,你就可以成长为驾驭复杂团队和系统的成熟管理者了。

4、结语

目前,我在公司内部的管理角色从产研切换到了增长,我将主要的管理规划称为“打通三套语言的目标管理体系”。实际上,无论在哪个公司,我都认为一直存在着三套语言:客户视角的语言(需求、痛点、体验);产品视角的语言(特性、流程、版本);业务视角的语言(获客、留存、转化、利润、收入)。

我曾有幸管理过大量异构团队,希望能通过一些方法和工具,在公司内让大家从需求的产生,到产品的设计,到最终商业结果的达成,形成一套完整的目标管理和执行跟进体系。

从微观到宏观,对于每一位想要成为技术管理专家的开发者来说,都需要从底层认知开始挖掘。本文主要面向初入管理岗位的基层管理者,该阶段需要习得很多知识和技能,也伴随着焦虑和压力。

作为一篇通识类技术管理文章,首先希望帮助大家理解管理岗位的特点和难点。然后从时机选择、日常管理动作,以及如何进入第一团队等方面,给出了一些具体建议和行动指南。

技术管理作为一门发展了上百年的学科,要融会贯通,需要相当长的学习和实践。但我相信,只要在从事基层管理时就有正确的认知,经过不断努力,每个人都可以成为一个成熟的管理者,在职业发展中收获丰硕的成果。

— END —

本文节选自《新程序员004》,从MySQL之父、MariaDB创始人 Michael "Monty" Widenius,到PostgreSQL全球开发组联合创始人Bruce Momjian、阿里巴巴副总裁贾扬清、指令集创始人兼 CEO潘爱民、著名科技作者吴军,再到 Vue.js 作者尤雨溪……《新程序员004》以「我们的技术时代,我的程序人生」为主题,与多位国内外知名的技术先锋和新生代程序员代表进行了深度对话,希望行业优秀人物的技术之路与人生感悟给大家带来启发

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章