已经近一个季度没有更新了,主要是近期工作太忙了,“忙而不思则罔”,刚好趁季度交替加上清明假期之前,对近期工作做个总结梳理。
当下主要在对接一个事业部的技术支撑工作,相当于这个事业部的CTO。但和CTO不同的可能是一些涉及到业务战略方向、技术的长期储备这两个方面还没有过多的去投入,因此这里还是从一个技术管理者角度来探讨这个问题:
技术管理者到底需要做哪些事?再抽象一点,技术管理者到底需要打造哪些核心能力?
基于近期的思考总结实践,我认为核心是三项:业务理解能力、系统架构能力和团队管理能力。
业务理解能力
业务理解能力主要是对所负责业务的深入理解,搞清楚这个业务面对的用户群体、业务核心商业模式、业务运营过程中的动作和问题,判断从技术角度哪些是可以用技术手段去赋能解决的,哪些业务问题对应的产品需求是可以快速落地支撑实现的等。
作为一个技术管理者,良好的业务思维、商业模式的认知、问题的洞察思考等都非常重要,还需要能够很好的和事业部的老大、各个业务部门的管理者甚至业务的一线人员进行对话,搞清楚不同层级的业务人员的关注点和核心诉求是什么,如何更好的平衡不同层级业务人员的要求。如事业部老大可能对技术团队,关注的更多的是产品需求大的脉络演进何时能实现、投入的技术人力成本是多少、产品系统的稳定性和质量如何,而在一线的业务人员来看,关注更多的是具体某个需求什么时间能够上线、某个小的功能需求能否实现等。
如何了解、理解到这些不同人员的关注点和诉求呢?
一些可行的方式包括,定期的和事业部老大做沟通、同步,将系统现状、人力现状、目前遇到的问题和挑战、接下来的解决办法等及时同步,有时甚至需要将困难抛出借助事业部老大去帮忙推动。
尽可能多的参与业务的各种会议,包括日常的数据分析、业务复盘、业务需求讨论等,及时获取到业务的最新进展、想法及接下来的计划,能够在其中给出自己的意见和建议作为业务决策的参考。
深度的了解目前业务使用的产品和系统实现,通过问题反馈群、定期的和业务一线人员的交流,获取他们遇到的问题,再结合自身对系统的认识、理解、思考制定演进和改善计划。
定期的融入到业务的一线做一天、一周的轮岗,将自己当做业务的一线人员,去使用产品和系统来完成业务同学的工作,看还有哪些不顺的、待改进的事项等。
总结起来,作为技术管理者,在业务理解能力这块要能做到弄清事、搞定人、能对话。
系统架构能力
系统架构是技术管理者日常工作中需要做的另外一件重要事项。
大部分人认知中的系统架构,可能是搭建系统框架、做技术选型或对某个中间件研究实现等,这种认知相对系统架构这项工作是片面的。
在日常工作中,在系统架构层面除了需要做好和关注这几点之外,更多的是基于对业务需求的理解,做好领域和模块划分,不断对某个领域、模块的核心服务能力抽象、领域建模,对领域的服务进行不断的重构优化和持续演进。而具体的抓手包括基于需求分析的要点和方法,对MRD或产品原型建立初步的产品概念模型,梳理出产品功能列表和核心业务流程,针对复杂业务流程能够清晰的画出业务流程图、时序图、状态机等解释性文档,通过需求分析将业务述求转化成技术语言,能够给出清晰的E-R图、数据库概念模型/物理模型等详细设计文档。
系统架构当然也需要能够和业务对话,能和技术人员对话,平衡诉求、合理性和实现的人力成本、时间成本、其它资源成本的关系,做出最终的架构决策。
技术管理者重点可能不一定在其中的某个具体事项的落地执行,但需要有非常清晰的认识,包括对系统的现状、问题、未来的演进方向,对系统架构要做什么事、如何做好、如何评估做没做好的认识等。
系统架构是技术管理者将业务理解和团队管理做好衔接的一个桥梁。
团队管理能力
团队管理是技术管理者面对的另一项重要且容易被忽视的事项。
大部分技术管理者,都是从一线研发人员做起,慢慢能够独立的完成某些技术方案设计、项目的推进等,逐步从带三五个人、带中小型的项目开始,走上技术管理岗位。这样的经历也决定着大部分技术人员转型技术管理后,对团队管理的意识较欠缺,更多的还是关注在事情的解决上,有时宁愿自己动手、亲自去完成某些事项,也不愿或没意识到应培养团队人员去完成某些事项。
团队管理并不是虚而不实的,落到技术管理者身上反而应该可以是更具体可落地的具体动作、计划、过程等。
既然是团队管理,核心当然是团队,团队的核心当然是人,这也是技术管理者首先需要转变的观念。
团队管理另外一层需要关注的就是事情,关注事情具体来说就是管和理,核心在理。
需要理哪些事?
我们需要自上而下做定期的目标对焦、计划分解、落地执行和复盘,上至组织下至每个个体,让每个子团队、个体知道在当前公司大的目标下,自己的团队和自己可以做哪些事,这些事需要做怎样的计划落地,该如何定期的复盘,我们可以借助OKR等工具去推动和管理自上而下的目标。
我们需要做人才盘点,分清团队里面人员的技能情况,搞清楚每个人的优劣势、意愿和发展方向,同时对标组织需求和岗位的胜任力模型,将每个人放在合适的地方。给不同的人员不同的场景,去锻炼需要的能力,只有人员的能力锻炼出来,事情才能够更好的完成。
我们需要关注团队的组织架构划分和人员分工、沟通、协调,如何在一个大型的团队里面,仍能高效的进行团队合作达成目标?合理的组织架构划分非常重要。我们既要保证在某些技术领域有垂直的专业的组织,也需要跨团队、跨组织组建一些虚拟的组织,例如在实体的组织架构上,我们有服务端、算法、前端、测试的组织架构划分,隶属在每个不同的部门,但从面向业务的角度,又需要将服务端、算法、测试、前端融合在一个团队,来支撑某些具体的业务。又例如在服务端这样的组织架构下面,按照所负责的系统、模块等,细分不同的子部门,但又会有如项目管理、系统架构等需要横向拉通的事项,成立诸如技术委员会、项目管理小组等虚拟组织。最终我们需要有矩阵型的组织来支撑一个大团队做任务的协同,但矩阵型组织又该怎样更好的做好协同、沟通?这也是技术管理者需要基于不同的组织、业务、实际的场景去理清并找到解决办法的。
我们需要关注员工的成长,可以基于能力地图做能力项的分解,让每个员工基于能力地图中的能力项做自评、TL评,员工和TL基于每个人的能力项最好对焦,找出其中的短板,再有针对性的制定提升计划。
我们需要打造团队的技术氛围,例如组织团队内外的技术分享沙龙、培训、学习会等,提升团队的学习氛围。如何组织这些分享、培训、学习会等,形成长效健康的机制?这需要细致而又有耐心的思考落地。
我们还需要打造团队的文化,任何一个团队都应有这个团队的特质,这个特质最终就是通过团队文化的打造所带来的。团队文化的落地,又需要通过哪些方式、形式就行落地,而不会成为一个口号?
除以上之外,还有包括人才的选用育留等等需要技术管理者去理清思路,落到实处的各种和人相关事务。
事情理好后,技术管理者通过定期的check、跟进、辅导、激励表扬等,让团队的每个人去推动事情的落地、执行,让他们实践、成长,形成团队的良好氛围和循环,最终打造一个良将如云、成果频出的团队。
总结起来,团队管理,核心就是聚焦在团队人员,通过将各种和人相关维度的事儿理好,再辅以管理者的辅导、激励、定期check等,推动各项事务的有序进展。
以上三点,是作为技术管理者所要理解和实践的核心三项能力,但不代表技术管理者只需要这三项能力。
真正在落地的过程中,又会遇到各种各样不同的问题,这样的问题又往往是琐碎、突发、没有标准答案的,这就考验着技术管理者对问题的洞察、分析解决能力,也考验着技术管理者的耐心、情商、软技能等。
这就是最近一个季度,甚至是最近半年来,每天我所忙的事。
实践出真知,利用短暂的闲暇时间做个梳理总结,后面有时间再慢慢将其中的每一点,结合实践中遇到的问题做细化展开吧。