技术管理篇(上):身为技术人该怎样带好团队并做好管理者
上节讲了职业规划和学习提升这两个话题,随着职业规划的不断落地,或者自己能力的不断提升,大家也会逐渐被提拔成“职级更高”的人。
企业规模扩张时,员工数量也会变多,意味着Boss需要更多的人来辅助管理,而管理者会从外部招聘吗?也许会,但大多企业更喜欢从内部选拔,毕竟人的天性更希望找的人值得信赖。此时,一些能力不错、做事靠谱的老员工,就会被“赶上”管理者的位子。
作管理不难,但想要“做好管理者”就需要一定情商。有情商没能力的管理者难以服众,有能力没情商的管理者难以协调资源,为此技术管理这个岗位比较特殊,通常只有能力、情商都在线的人才能做好。
技术从业者这个群体中,有能力的人不在少数,但能力、情商皆备的人如同凤毛麟角。正因如此,大家工作中遇到的很多领导,往往只满足其中一项条件,从而才会让大家心里产生这些想法:
- 这领导真傻
*,一点技术都不懂,只会催进度瞎哔哔; - 老大情商是真的低,天天只会骂,一点都不会做人;
- ……
相信大家应该都在私底下吐槽过自己的领导,那假设有一天你也被提拔成了管理层,希不希望背地里被人吐槽呢?答案是No,为此,技术人如何做好管理者,这构成了本节内容的核心。
一、漫谈技术管理
管理,这是一个庞大的话题,也许用上一整本书的篇幅也无法涵盖全部,内容发散性非常强,可以聊到人情世故、人性、沟通、资源整合……等各个方面。正因如此,本节内容不会涉及管理的方方面面,同时也会尽量用朴素的话语去聊这个话题,不会讲所谓的“驭人之道、帝王心术……”这些虚头巴脑的玩意儿。
先不说如何做管理,首先会将"技术管理"上的常见问题讲明白。
技术和管理到底怎么选?
技术人对管理这个身份可谓是一半欢喜一半愁,喜悦的情绪来自于地位提升、领导重视、工资上涨等,而忧愁的情绪来自于内心排斥、责任更大、无从下手、脱离技术、新事物的迷茫等。正因如此,很多技术人最初走上管理岗,几乎都是源自于上级的“赶鸭子上架”,半推半就的坐上了管理位子。
先来聊一个问题,到底选技术还是选管理?在接触过的一些技术者当中,总有一小批人想做纯粹的技术,有没有这样的岗位呢?答案是有,但比例也许占不到市场的千分之一,要记住,随着工资的上升,工作难免会带一点管理性质在内,分水岭是"高工"这个级别,相信大家在高级招聘中经常看到这句话:
能帮助、指导初/中级成员快速理解需求,完成技术工作。
能力越大责任越大,到了一定薪资级别,再想做纯粹的技术很难,所以只能选比重,到底是选偏管理的岗位、还是选偏技术的岗位?如果年龄不算大,遵从自己的本心即可。如若年龄已经到了28岁左右,建议是选偏管理的方向,原因有三:
- ①职业生命线更长,对比技术岗,中年危机可以大幅度往后推;
- ②选择性更多,做管理的同时别落下技术,不想做了也可以转回技术岗;
- ③可以借助公司的平台,提前锻炼自己的管理能力,方便后期创业。
如果你只做技术,到了35岁左右,如果技术无法达到不可替代的地步,多少会受到“中年危机”的影响。同时到了后期想转管理也比较乏力,只能从基层做起;后期想要创业时,也会缺乏管理实战经验,只能以技术合伙人的身份创业。
不过选择偏管理的岗位,并不意味着抛弃技术,比如在高级开发和项目经理中,选择了后者,也不要太早的将技术抛弃,因为这是吃饭的本领。牢记干的是技术管理岗,并非单纯的管理岗,作为一个持续保持技术跟进的Leader,好处如下:
- ①够强的技术能起到很好的带头作用;
- ②更便于和团队成员沟通技术进展;
- ③具有良好的技术视野才能做好技术规划;
- ④技术未脱节意味着很多决策,不需要依靠团队的资深工程师来拍板。
如果一直没有做到高层管理(总监级),抛弃技术相当于自断一臂。当然,如果混成了大领导,如事业部、事业群、分公司负责人……,这时记不记得技术就无关紧要了。
最后,在《技术管理实战36讲》这本书中,提到一句话很在理:"做技术和带团队,更像是职业发展的两条腿,而不是完全叉开的两条路"。
因此,大家看待管理岗时不应该带着有色眼镜,认为管理是另外一条路,其实不然,因为能接触到的大多数管理岗,都会有个"技术"的前缀,名为 技术管理岗。
管理的本质是什么?
先记住一个核心准则:做技术靠自己产出价值,做管理靠团队产出价值。
理解上述准则后,再来聊管理的本质,许多人对管理有很大的误解,认为管理的本质是“管人理事”,这对吗?不能说完全错,甚至百科上也是这么解释的,但请记住一点:人生来就排斥管教,好比小时候,家长、老师越管着你,反而越容易激发你的叛逆心。为此,当你拿着权利去命令别人,别人就更不会服从安排,自己也容易被孤立。
那管理的本质是什么?管事敬人,身为一位管理者,你管的是事而不是人,员工和企业属于劳务合作关系,并非主仆关系,发号施令无疑是一种令人排斥的手段。什么叫管事呢?即通过有效的策略规划、组织人员、调控资源、提升效率、降低风险等,来达成公司的目标。
什么又叫敬人呢?举个例子:
小竹过来把这个事做一下。
竹啊,现在有个事,我瞅了一大圈下来,发现没人比你更合适,事情是这样的……
两者对比,大家感受一下哪种方式更容易让人接受呢?无疑是后者,所以有句话叫“敬人者,人恒敬之”,虽然别人是你的下属,你也确实有权利去管,但技术人更喜欢被“领导”,而不是被“管理”,为此尽量别摆架子去做管理。
而权欲越重、越是平庸的管理者,往往越依靠职位带来的权利去约束、驱使下属。
如何晋升技术管理岗?
正所谓不想当将军的士兵不是好士兵,不管你的目标是架构师、技术专家,亦或是技术总监、分公司老大,基层管理岗的历练,这是必不可少的一步,否则你很难做好前面所提及的职位。
那在企业内如何晋升技术管理岗呢?满足以下条件即可。
- 工作成绩:技术要足够突出、并且能做出一定的工作成果。
- 沟通能力:如果你的性格是个闷葫芦,几乎不太可能被提拔成管理。
- 多带新人:大多数管理岗的前身,就是“老带新模式”中的老人。
- 表明想法:主动找上级、高层吐露想法,在合适的时机自然会提拔你。
- 多做分享:平时可以在团队中多分享技术,与成员交流、讨论技术。
如果能做好上述五点,在合适的时机,公司绝对会将你提到管理岗上。比如现在公司扩张,多了一个管理位子出来,一个满足上述五条的你,和一个平时正常工作的路人甲,公司会提拔谁呢?无疑是你,因为你更符合管理岗的综合要求。
管理的分类与级别
技术管理岗粗略可以分为技术、业务两大类,前者对应着架构师、技术专家这类职位,即更偏向于技术的管理岗;后者对应着项目经理、业务老大这类职位,也就是更偏向于管理的岗位。
但重点来聊聊管理者的级别,总共可分为基层、中层、高层三个级别。
基层管理是指技术组长、技术主管这类管理岗,通常负责管理某一个垂直领域的技术人员,如Java主管、前端技术组长等,管理的人数不多,在几个到十多个之间。
如果公司规模较小,可能不会设立组长、主管职位,整个组织架构也许只有“决策层、管理层、员工层”,这样的结构中,一般会设立“项目经理”这个角色,由PM带领一个小技术团队完成项目开发,按理来说经理属于中层管理,但这样PM也属于基层管理,层次的划分没有那么泾渭分明。
所谓的中层管理是指项目经理、技术经理、团队老大、架构师、小业务线负责人这类职位,主要负责管理底下的主管、组长等,作为中层管理不会太频繁的接触基层员工,很多时候是跟基层管理打交道,结构大致如下:
同理,如果公司规模不大,也许中层管理就到顶了,不会再设立更高的职位,中层向上直接对接Boss,这时中层也可以被称为“小高层”。
如果一家企业规模够大,或架构设计的较为完善,通常会拆分出多个技术团队,此时每个团队都有一个老大,而老板又不想亲自对接所有老大,为此会设立一个更高级别的技术管理岗,即技术总监/CTO(有些公司的CTO由技术联合创始人担任),如下:
当然,高层管理并不只有技术总监,有些企业会拆分出多个事业部、分公司、事业群,这些负责人的位子,技术人也可以坐上去,到了这样的级别相当于一家家独立的公司,相互之间各自为政,向上直接跟老板汇报。
PS:上述给出的示例图并不涵盖所有情况,不同企业的组织架构会有区别。
上面提及了三种管理级别,级别越高时,工作的内容会越偏离技术,因为此时不再是靠自己去干活,而是整合资源靠底下的人去做事。这就好比古代的军队,你是大头兵时需要冲锋陷阵,当慢慢成为百夫长、千夫长、将军、元帅时,真刀实枪上战场的次数会越来越少,更多时候是在后方统筹全局,制定好策略、调配好资源、指挥好战斗……即可。
下面来说说如何做好技术管理者?这个话题比较沉重,它并不像做技术那样,只需考虑纯粹的技术问题;也不像传统的管理岗,只需带好业务团队。技术管理是两者的结合,往往需要具备全方位的能力。
不同级别的管理岗,有些技巧可以共用,但有些工作又并不相同。为此,这里会基于前面说到的不同级别,分别给出对应的管理建议,接着再去叙说可共用的管理技巧。
二、怎么做好基层管理?
干基层管理最难受,夹在中间最不轻松,手里即没有多大权利,还要管一堆琐事,同时原本的工作也依旧要做。好比你晋升成了技术组长,除开要敲代码外,还要负责任务拆分、任务分配、代码review、需求评审、部门对接、成员沟通、外部面试……等一系列琐碎工作。
上述一堆琐事,大家看着都会觉得头大,所以想要做好基层管理,最重要的能力是“罗大师的时间管理”,如果无法分配好自己的时间,这会把自己搞的焦头烂额,最后技术没干好,管理也没做好,从而走进了“加班补活”的误区。
牢记:多花时间 = 工作态度好 ≠ 产出高,学会时间管理和工作排优先级才是核心。
基层管理不好做,这是许多人排斥做管理的原因,不过这是走上高职的必经之路,不存在“小马仔空降化身CTO”的情况,所以你想追求更高的职位,无可避免的就会走上这一步。
从技术到管理的心态转变
想要做好基层管理,最好先拥有"老带新"的经验沉淀,就拿作者来说,第一次走上基层管理岗,是因为入职了上家公司新开的业务线,这个业务在短期内实现了巨量增长,为此团队需要扩招。而作者在原本的初始团队中,属于表现相较突出的一个,所以入职半年就被提拔成了Java技术组长。在后续的三四个月,作者记得应该累计招了11~12个新人,在作者的英明带领下,最后留下了3个……。
没错,被作者带跑了7~8个,一方面是因为新业务加班较重,但更主要的是不会带人,每次老大看见作者,都会打趣道:是不是又跑一个?一开始作者还会找借口,但事实大于雄辩,其他组长带跑的人,比作者留下的人还少……
从这段失败的经历中,映射出一个道理,如果想要做好基层管理,第一步应该要学会转变自己的角色,千万别用做技术的心态去做管理,要学会严于律己,宽于待人。当用看Bug的心态去看小伙伴,会发现他都是缺点,说出来就变成了挑刺。以作者举例,最初是这样干的:
分配任务、验收成果、指出问题、细心说明、让其优化……
这个流程看着没问题,但由于对技术比较严谨,所以很容易给人一种"鸡蛋里挑骨头"的感觉,而且在分配任务时也没有过多沟通,仅仅只是一个"任务分配机",最终造成了不好的局面出现。
当心态转变成管理角色后,你的身份就变成了:计划执行者、进度跟踪者、资源协调者、风险把控者。不过基层管理头上还会有上级,所以权利并不会很大,但这里不做过多探讨,先聊聊如果做好基层管理,主要就聊工作安排、进度跟踪、协调沟通、风险把控这四点。
工作安排
任何稍具规模的项目,光靠一个人单枪匹马很难完成,团队内分工合作是企业常态,如果作为一个小领导,又该如何安排好工作呢?主要有三步。
其一,任务拆分。对上级下发的目标学会合理拆分,粒度别太粗,不然后续无法衡量;同时也不必太过精细化,拆分出的多个任务要具备独立性,比如A、B两个任务存在耦合性,将其拆开交给两个人负责反而不好推进,不如直接合并给一个人负责。
其二,任务分配。分配时不能一视同仁,学会因人而异,区分出团队的人才梯队,将不同难度的任务分发给不同的人,否则能力强的骨干早早干完了任务,而能力弱的普通成员加班加点都做不完。
其三,任务排期。分配完任务后,要跟任务责任人定好时间点,结合任务工作量、责任人能力、需求紧急度,自己先对任务工时进行评估。当你去定时间点时,不要直接下命令,通过协商的形式去谈,只要责任人给出的时间相对合理,也没严重超出你内心的估时,或影响项目的进度,就不要和团队成员去争论,拍板后能正常遵守和执行即可。
如果在给定的周期内无法完成任务,此时应该找到需求方去排优先级,不要无限制的丢给团队成员,让员工加班赶进度,这样的管理方式不得民心;如果需求方对排期不满意,可以申请增派人员,或砍掉一部分不紧急的需求,迫不得已再走加班这条路。
进度跟踪
作为管理者必然要对进度负责,一般会通过例会来得知任务进展,然后根据成员的反馈做好推进,但这里有两个注意点。
其一,任务比较重时不要频繁过进度,如果团队小伙伴手上的工作都比较重/急,不用每天频繁开会催进度,只要大家都在努力完成任务,没有松懈和摸鱼,这就是一种比较好的工作状态,不用反复去催进度,否则适得其反。
其二,别以过程为导向,而以结果为导向,如果你看到一个小伙伴很闲,动不动离开工位、时不时发下呆……,稍作提醒即可,只要他能在给定的时间点,交付对应的任务产出就行,具体的过程合不合理都无关紧要。
除非你带的是一个新人团队,这时才需要较强的进度跟进,因为新人对业务、风险的理解不够透彻,需要你主动推进。如果团队成员都是老人,每个人都有自己的时间观念,无需时刻督促,在关键的时间点同步一下信息即可。
协调沟通
对许多人来说,协调和沟通最费劲,毕竟之前闷头搞技术就行,突然转变成小领导,还要负责协调资源、沟通成员,这无疑很令人费脑。
先聊协调资源,在负责跨部门协调时,首先得向上级申请资源(权利),否则其他部门可能不会把你的话当回事,先向老大申请一下,把所有负责人喊一起开个会,提前做好约定,这样有利于后续部门外的对接。
同时,在处理跨部门事项时,比如自己管理的后端组,要跟前端组、产品组对接。假设你的一个小伙伴,有个需求和其他部门起了争执,找到你来进行协调,此时不要直接去找具体的人协商,而应该是去找对方的负责人协调(如产品负责人)。这样做的好处一方面自己不会很累,另一方面自己也不会越权。
再来说说成员沟通,作为小老大与成员沟通这件事在所难免,沟通也是门大学问,这里不做太多展开,主要说三个注意点。
其一,任务分配别用命令式,这点在本文开始就提到过,管理是管事并非管人,用职权去命令他人无疑会让其反感。在分配任务时,记得先跟成员聊聊需求背景,让其感到足够的尊重,这样更有利于工作推进。
PS:之前作者遇到过一位领导,亲和力特别强,无论给谁安排工作,都能让人感到自己是被重用了,因此工作起来特别卖力,其中也包括作者在内,也许这就是所谓的"领导力"。
其二,沟通问题时尽量引导而不是给答案,在成员遇到问题时,必然会找到你来反馈,这时可以根据问题来给建议,引导对方深入思考,从而让其自己推断出解决方案(也要因人而异,如果来者是个新人/或问题比较简单,这时直接给答案更好)。
其三,工作是上级,平时是朋友,这点更好理解了,团队成员都是之后跟你朝夕相处的人,如果一直摆着老大架子,在平时就特别容易被孤立,所以要学会跟团队成员建立友情关系,能打成一片最好(如偶尔去外面下馆子、给成员点个奶茶)。
风险把控
项目风险分为两类,一类是可预估风险,另一类是未知风险,前者倒还好说,毕竟是可预估的风险,所以在拆分任务时考虑周全就行。但后者就不一样了,比如项目中期人员突然离职、技术出现重大Bug……,这必然会造成项目延期。
那如何做好风险把控呢?首先建立风险管理计划(这个一般由中层管理来做),然后预留风险处理时间,比如项目周期是10天,如果你将排期也排成10天,万一出现一个未知风险,就会造成不太好的后果。更好的做法是任务排期为9天,预留1天风险处理时间。
所谓的风险把控,就是能对有可能发生的风险,建立合适的风险管理措施。
落实上述提到的几个重点,就能做好一个基层管理,因为篇幅原因就不讲到方方面面了,下面再聊聊中层管理岗。
三、怎样干好中层管理?
熬过了基层,再次晋升就是中层,这时你自己也会有一定的管理经验沉淀,但首先要做的依旧是转变角色,有些适用于基层管理的经验,放到中层管理并不适用。比如举个例子,原本你做前端组长时,成员的某个需求有好几种实现方案,此时你会参与其中,并且最终拍板。
不同角色的心态转变
当你干到了中层管理,手底下至少也有一二十人了,如果再参与每个成员的工作细节,这无疑会搞的自己身心疲惫,就好比那句话:“干着卖白菜的事,操着卖白粉的心”。并且这样干,有时也会遭到手下组长的反感,明明这是他的事,结果你什么都要插一脚……。也许你的出发点是好的,但由于你没有转变角色,结果反而事与愿违。
前面也提过角色转变,如何做好这点呢?首先得理解不同级别的工作职责。
- 高层:制定战略,规划目标。
- 中层:理解目标,制定计划。
- 基层:拆分任务,执行计划。
- 成员:领取任务,完成工作。
作为中层的工作核心是:根据高层规划的目标,制定实现目标的具体计划,并且推动计划的落地,而且要为整个计划的最终结果负责。此时你管理的并不是小伙伴了,而是底下的小组长。为此先牢记一点,因为你已经不再是基层管理,所以很多事情不需要你去亲力亲为,抓细节的工作应该交给小组长去做!
不同的企业,中层管理的职责会有差异,但核心工作绝对跟上面提到的大差不差,细分下来可能会有:整体业务分析、制定工作计划、技术架构设计、制定技术规范、跟进项目整体进度、做好团队建设、资源协调/跨部门沟通、招聘用人拍板等。
中层管理的工作,有一部分是与基层管理重叠的,但中层管理所需的全局观更强,举个例子来说明,比如你做后端开发时,只需要对自己的任务负责;你做后端组长时,就要对整个项目的后端领域负责;你做经理时,就需要对整个项目所有领域负责(前端、后端、移动端……);做总监时,需要对整个公司技术负责。用一句话来总结:做小伙伴是点、基层是线、中层是面、高层是体,越往上所需的全局观越强。
下面正式聊聊如何做好中层管理,主要聊制定工作计划、制定技术规范、做好团队建设、用人选人这四方面。
制定工作计划
下面说说制定计划的通用步骤。
- ①明确目标:首先要理解高层目标的背景、含义,确保不会出现理解偏差。
- ②分解目标:分析并对目标进行拆解,将其细化为多项可行的具体步骤。
- ③预估时间:对分解的每个步骤定下时间表,确保能在规定时间内完成目标。
- ④确定资源:预估完成目标所需的资源,如人力、设备、预算、权限等。
- ⑤制定方案:根据需求优先级排序,完善第二步的细节,并向下推进方案。
- ⑥完善计划:向下收集任务的责任人、排期、所需资源等,制定行动计划。
- ⑦定期审查:定期开会审查实施的进度,并根据需要及时做出调整和更新。
- ⑧高层交涉:与高层保持沟通/反馈,申请资源支持,需求变更时及时调整。
跟着上述步骤走,就能做好中层管理的职责:理解目标,制定计划,这八步从考虑高层目标,到具体的行动计划制定,以及后续的跟进、维护都有包含在内,剩下要做的就是,确保计划始终与高层目标保持一致并稳步实施即可。
制定技术规范
制定规范前要先看自己是什么类型的中层管理,如果你是技术经理,其实也只管了某一个垂直领域,只是手底下有多个技术组而已,此时就只需制定这个领域的技术规范,如Java编码规范;如果你是项目经理,手下有多个技术小组,但属于不同领域(前端组、后端组……),此时如若你头上还有技术总监,制定技术规范的工作应该交由他负责;如果没有的话,才应该轮到你负责,这种情况下就需为每个流程制定规范(具体规范在后面说)。
做好团队建设
有句话叫做“兵怂怂一个,将怂怂一窝”,一个团队的作风如何,这跟管理者的风格有直接关系,如果管理者不作为,那整个团队绝对是一盘散沙,没有一点凝聚力,最终造成员工责任感不强、团队纪律涣散、做事马虎敷衍、工作效率/质量不高……。
那又该如何做好团队建设呢?下面来说说具体步骤。
- ①树立作风:以身作则将正确的观念传递给团队(你摸鱼,成员会跟着摸)。
- ②制定规范:对团队中的各个岗位,给出标准的工作职责和流程。
- ③做好沟通:通过定期交流会、回访单聊、反馈等,建立双向沟通机制。
- ④给予激励:建立透明的奖励、晋升、涨薪等机制,以此提升员工的积极性。
- ⑤建立信任:通过团建活动,加强自己与成员、成员与成员之间的信任度。
- ⑥技术分享:通过分享来提升成员的能力,以及小伙伴对团队的认可感。
上述几点做到极致,绝对能带出一个优良的团队,但究竟能做到什么程度,这就取决于每个人自己了,好比通过团建活动来加强信任,平庸的管理者也许就喊出去聚餐吃个饭,而更有想法的领导,会找一些成员都感兴趣的活动来团建,两者对比显然后者会更好(但管理者更难,要向上争求更多福利)。
又比如技术分享,很多管理者只会定期组织一下培训,如同在走过场,怎么做更好呢?前期可以自己来分享,或邀请外部大牛分享,但后期可以让小伙伴来分享。技术分享的结果好坏不重要,重点是这个过程,让小伙伴也有参与感,而不是把“分享”做成“培训”。
用好人选好人
用人方面,在安排正常成员的工作时,尽量让其感受到一股被重视感,不要直接下命令,这个在前面多次提及,不再反复强调,重点聊聊“刺头”。
不少管理者都遇到过刺头,该怎么办呢?团队出现刺头的原因,要么是对方性格使然,要么就是他不服你,这时可以跟他单独掏心窝子的交流,先尝试挽回纠正,如果苦口婆心也劝不住,最好的做法是将他从你的团队移除,有句话叫“一颗老鼠屎坏了一锅汤”,如果团队中有一个刺头,在某些情况下会酿成大祸。
当然,实则也跟自己有关,具备够强的人格魅力,刺头也能照样用好。
最后就是选人,中层有权利决定要招谁,建议是:尽量选那些思维逻辑跳跃、具有深度思考能力的人,如果招的小伙伴思维比较固化、行事也很呆板,这时做管理会很累。而深度思考能力越强、思维越跳跃的人,各方面的能力会更优秀,带起来也更轻松。
大家可以参考学生时代,循规蹈矩的学生毕业越平庸,越有个性的学生反而更突出。
总之,在用人选人方面一定要重视,如果底下的人本身就有问题,再好的管理手段也无济于事,很少有人仅凭一己之力,就能做到"挽狂澜于既倒,扶大厦之将倾",团队小伙伴才是推着你前进的动力。