技术管理的三个层次
从工作到现在,陆陆续续经历了几家公司,也创过业,做过几款游戏项目主程和互联网公司的技术总监。单纯的技术管理的工作岗位还是我现在的公司,做了接近六年,经历了很多事和人,踩了无数坑,从最初的如履薄冰到现在游刃有余,感觉还是值得总结一下。
关于技术管理,从我个人经历和对管理的感悟,我认为以时间轴分层,大致可分为三个层次:
- 搭班子、建团队
- 克制和放权
- 驱动业务
# 一、搭班子、建团队
我刚接手技术团队的时候,还很年轻,26岁,在这之前只带过几个人的手游研发团队,负责编程工作安排、重点技术攻关,98%的时间还是在加班撸代码。因为平时工作努力,也比较有自己的想法,得到大BOSS的赏识,后面安排到旗下另外一个公司做技术总监。一下子接手10多人的技术团队还是很有压力,技术栈也完全不同,从之前专注Cocos2d-x游戏客户端开发,到面对Web前端+PHP+美术+SEO+Win开发+运维等多种技能岗位以及全新业务模式,完全不知如何下手。当时大BOSS问我打算怎么带团队,我记得我的回答是:先做好工作协调和安排。回过头来看,这个回答对于当时我这种经验不多的管理者来说确实是比较好的落地方案(当然也是唯一的)。
由于是临危受命,团队人员结构和工作流程一概都不清楚,也未有过工作交接,所以开局对我是张白纸,加上我也是个小白,我是这么走过来的:
- 熟悉人员结构和职责
因为当时团队人心浮动,对我也缺乏认可和信任,我采取一对一沟通形式进行摸排,几个方面目的:
- 建立初步印象,彼此熟悉,大概了解每个人的性格、沟通方式、工作职责;
- 通过了解每个人的工作内容,梳理现有的工作流程;
- 安稳人心,展现自己开放、专业的一面,建立一定程度互信,让他们对leader和公司有期许;
- 稳定骨干,恢复士气
技术骨干是互联网公司业务发展的核心支撑力量,一旦离职,对管理者和公司来说,都会面临巨大的业务风险和招聘成本。我当时采取的方式是:稳定骨干、建立梯队。通过摸排和各方信息反馈,很快就能对团队成员的业务水平有个大概了解。业务水平好的骨干成员,也是重点需要沟通和培养目标,依据个人期望,给予一定的物质或者职称上变动,以求核心团队稳定,能够稳定持续地支撑各项业务。对于一些离职意愿强/业务能力差的,通过一定的离职缓冲期,迅速招募人员进行替补,亲自面试把关、亲自盯试用期,建立新人对管理者的认可,使其远离不良情绪的影响。这样就可以在保障业务不受影响的大前提下,慢慢建立对团队的把控力。
- 定制度立规矩
刚接手的时候,代码管理混乱,有的项目用SVN,有的项目用GIT, 几套代码和项目管理系统并存,普遍都没有文档,残存的一些历史文档都还在个别人的硬盘角落,服务器权限管理也是混乱不堪,一张架构图都无法给出。面对如此混乱的局面,必须定制度立规矩,将技术团队带入正轨。主要做法如下:
- 搭建Git仓库,将所有历史项目代码、技术文档全部重新整理归档、集中管理;
- 建立工作标准和考核标准,对团队成员对工作目标、要求、时间节点都有清晰的认知;
- 建立日报/周报/早会制度,严格掌控团队成员工作动态,了解日常工作存在的问题、不断查漏补缺,发挥团队成员的主动性和团队认同感;
- 做减法,破旧立新
做减法的目的在于提升工作效率,也是周期相对比较长、决心要大的一项工作。做减法的前提是对业务流程和技术架构比较熟悉,能够站在企业长远发展的角度去看待这个问题,需要得到公司层面的支持和配合。我的做法如下:
- 调整工作流程,建立工单系统,让业务流程可追踪,让进度可把控;
- 充分利用第三方资源(服务/开源代码/工具/API),减少造轮子(主要是自己造的质量也不高);充分利用代码组件化,提高代码复用率;
- 复杂功能简单化,祛除废弃功能,降低维护成本和使用门槛;
- 大范围采用自动化或者兼职人员,尽一切可能排除人员重复性劳动,让技术人员和其他部门人员把时间都花在产出高价值的地方,而不是重复性、低投产比的工作。
- 架构调整,服务上云,充分利用云服务优势,保障服务高可用,降低运维成本;
上列动作实施之后,执行效率得到了很大提升,但当大家面对新的工作流程和思路的之后,有些人就会出现后继乏力,甚至人浮于事,这个时候就需要对现有团队成员提出更高要求,一定程度的优胜劣汰,吸引高层次人才,淘汰掉队的成员,建立高水平业务作战能力的团队。
# 二、克制和放权
搭班子建团队的过程其实是技术管理者带节奏的过程。团队优化之后,如果管理思路还处在“工作协调”的阶段,团队成员的发展瓶颈将很快凸显。如何群策群力、发挥每个人的潜能、让整个团队协作从单线程走向1核多线程是第二个层次的考验。
我相信很多技术管理者,都有很强的把控欲望,希望自己的技术优势明显,能碾压对手,希望自己就像带领一支特种部队一样,能够高效击垮目标,不惜亲自上阵。这个固然没错,但是管理的本质是希望能够最大程度体现团队协作的价值,只有让每一个人都能成长起来,才能让团队作战能力像滚雪球一样越滚越大。这一点,我还在历练,目前,我的思路如下:
- 必须高标准高要求每一位成员,不断提高工作目标,让每一个人能够突破自己。在满足业务正常运作的前提下,给予他们一定的信心和时间,让他们去尝试和挑战。管理者本身也不要一颗“怜悯心”,必须“充分逼迫”他们成长,也必须认识到一点:只有他们成长了,他们才会感激你,否则,平时再好的关系,也只能给你发个好人牌;
- 充分授权:把自己的工作主动分担出去,做好决策和指导,永远不要担心自己被替代。例如:让团队其他成员做方案、做项目经理、做跨部门沟通,一方面可以为公司建立人才梯队、储备管理人才;另外一方面,管理者也可以从繁琐的日常事务中脱离出来,花更多的时间在人员招募、培养、学习引进新技术,甚至开拓新业务。
- 团队文化很重要:作为技术团队,我觉得“专业、担当”是基本职能,这一点必须天天讲,时时刻刻讲,贯彻到团队成员心中,成为他们日常工作的自我约束力。
- 团队要有凝聚力,大家只有目标一致,才能实现大方向的突破。如果各怀心思,各打各的算盘,会给日常管理和协作带来很大障碍,容易形成小团伙,阻碍整个团队积极向前发展。可以选择一些挑战性的团建活动增强团队成员之间信任感,提升团队凝聚力。
# 三、驱动业务
驱动业务是最难做到的一个层次,也是最高的层次。当团队内部问题基本扫清之后,需要面临的是如何将团队的产出价值进行输出,例如:利用技术积累推动企业效能升级、建立企业技术团队品牌,打造团队影响力、研发具备竞争力产品驱动企业业务向前发展等等。
驱动业务主要是依靠团队的视野格局,能否站在企业的角度、行业的角度、市场的角度去看清楚技术的价值和带来的可能性。简而言之,就是以一个“改革者”的高度去驱动公司或者行业的进步,这一点能做到的技术管理者不多,也是我孜孜不倦追求的目标。
# 结后语
管理永无止境,特别是技术管理,是脱离不开技术本身的,同时也需要对业务发展趋势有一定的洞察力,缺少整体的思考和规划的话,技术的投产比只会越来越低。技术管理既不单纯靠技术,更不单纯靠管理,也要懂得从人性的角度,思考每个人的个性、需求。也只有不断学习、归纳、实践,才能让自己的技术、心性日益强大,有勇气和智慧去面对各种突发情况、推动团队或者企业的持续发展。