🧘♂️
我谈技术管理(1):技术管理是什么?
前言
之前,我在团队主动承担了一段时间Tech Lead的职责,通过技术管理来锻炼自己,让我对管理这件事情不再那么抵触。最近在做总结,这次就来总结一下我这段时间对技术管理的思考。
系列指北
”通过技术实现经营者的目标的人“
大家可能对技术管理或者Tech Lead的概念可能还比较模糊,技术管理乍一看是一个很大的课题: 技术涉及到技术团队的方方面面,包含了大量的细节,而技术管理到底需要管理什么?一些公司有单独设立技术管理的岗位,一些公司又没有,而技术管理者在团队中扮演什么样的角色?
要想知道这个问题的答案,我们要先知道,技术团队中有什么角色,这些角色都做些什么。
在技术团队的日常工作中,通常有三种角色:产品管理者,工程师管理者和技术管理者。我把产品管理者定义为”通过产品实现经营者的目标的人“,工程师管理者定义为”通过工程师下属实现经营者的目标的人“,类似的,可以把技术管理者定义为”通过技术实现经营者的目标的人“。
我将主管定义为“通过下属实现经营者的目标的人”,但根据企业实际情况的不同,主管的职责也存在着千差万别,不能一概而论。 ——《10人以下小团队管理手册》[日]堀之内克彦
一般来说产品管理者由产品经理担任,工程师管理者是技术团队的经理/主管/总监。在一些组织的里,技术管理者往往没有单独的头衔,可能由拥有头衔的工程师管理者兼任,也可能无人扮演这个角色;因此,我不打算讨论具体的职位,只讲讲技术管理者这个角色。
接下来我们继续讲讲技术管理者——”通过技术实现经营者的目标的人“。
技术管理者的职责
对技术管理者下了定义后,就不得不思考一个问题:技术管理者的职责边界是什么。接下来我们从技术到管理依次渐进,来聊聊技术管理应该做什么,不应该做什么。
应该做什么
- 统一并优化宏观和微观上的技术栈
- 宏观(架构)上的技术栈:包含了基础设施、技术组件等方面
- 微观(代码)上的技术栈:包含工程实践、业务实践等方面
- 对领域内团队的技术输出负责(架构、设计、代码、稳定性等)
- 负责在领域内指导其他工程师(对事不对人)
- 负责协助领域内任务和项目的项目管理
- 与其他管理者在领域内创造价值
- 制定领域内的技术发展规划
- 协助工程师管理者培养工程师
- 协助工程师管理者制定、实现团队目标
- 协助产品管理者制定、实现业务目标
- 跨团队推动更大规模的技术管理
- 高屋建瓴的DevOps(通过管理思想做技术管理)
不应该做什么
- 搭建与团队成员背景不符的技术栈
- 宏观上的技术栈:使用了大量团队成员不熟悉的基础设施、技术组件
- 微观上的技术栈:代码实践上过于激进或者保守,团队成员“望其项背”或者“嗤之以鼻”
- 对领域内团队的技术输出亲力亲为(恨不得管到每一行代码)
- 公开指责团队成员在领域内的过失(对人不对事)
- 项目管理的关键节点上干扰项目的实现细节
- 与其他管理者缺乏沟通
- 放任业务的发展被动的推动技术的发展
- 和工程师管理者忽略团队成员在技术上的诉求
- 被动接受其他管理者制定的目标
- 视野局限于团队内的一亩三分地
- 一叶(技术)障目不见泰山(管理)
最后
如果有可能,后续会有更多技术管理相关的分享。