对许多开发者而言,深耕技术,然后成为技术专家或许是职业发展的唯一答案。但如果你赞同「软件开发只是我众多职业目标中的一个」,也许你可以试试「技术管理之路」。
我原来觉得和计算机打交道比跟人打交道轻松得多,所以我成了一名软件开发者。一段时间后,我发现自己越来越多地在给别人提供帮助;我喜欢领导项目,热衷于推动更好的代码标准。于是,我几乎毫无挣扎地成为了一名技术管理者。
尽管这些年,外界有许多声音反复提及「技术管理转型」,但大多数开发者并不清楚「从技术到管理,我需要作出哪些适应和改变?」
如果你想要尝试探索技术管理之路,首先请你坦诚地回答几个问题:
- 为什么想要当技术管理者?
- 想成为哪种技术管理者?想对人负责,对项目负责,还是对业务负责?
- 你的转型动力是什么?是编写代码和构建软件吗?还是帮他人获得更好的结果、与利益相关者协商交付时间、说服业务团队代码重构并非浪费光阴?
如果你现在仍然确信技术管理很适合你,那么你需要为此做一些准备------与上层领导或者导师合作,在不甚熟悉的领域向他们寻求帮助。下面介绍十个重点提升方向。
01 技术领导力
真正的领导者不需要头衔或权力也能领导团队。拥有华丽头衔或被组织赋予权力的任何人都可以发号施令,但这并不是领导力。领导力的真谛在于你的行动和行为。
因此,你应该从小事做起:在困难的项目中承担更多责任、主动提供 PR 反馈、及时更新项目情况、对团队或产品工作流程贡献优化建议、为伙伴提供专业指导等等。
大家不愿面对或因为缺乏专业知识和信心而无法抓住的机会有很多。先确定同事遇到了什么困难,然后挺身而出,主动帮助他们解决问题。
02 主人翁精神
技术管理者要勇于承担责任,对自己所做或没做的一切负责,并避免将错误、超时、缺陷等问题归咎于他人。
出现问题或故障时,技术管理者应该主动、积极地协助修复工作,传授相关的解决和防范之策。为错误找借口或者满腹牢骚对任何人都没有益处,把时间花在交付承诺上吧。如有必要,可以同上级管理者协商一个更合适的交付日期。像经营自己的事业一样运营一个项目,真正地把它放在心上。
最近,我团队中的一位技术负责人拉取了最新的 Master 分支,发现单元测试覆盖率大幅下降。他没有抱怨,而是先弥补了缺失部分,然后向团队介绍如何正确检查覆盖率,以及如何编写复杂功能的单元测试。有人需要帮助时,他会主动伸以援手,从不指责任何人;团队上下都对他赞赏有加。
03 人际关系
技术管理者的人际关系问题,也可以称作办公室政治。如果你不想处理「职场政治」,那一定要再三考虑「这个技术管理者非当不可吗?」
建立有意义的关系是技术管理者的职责之一。管理,就是通过其他人把事情做成。你需要与其他技术负责人打好关系,因为他们有可能是你未来的战友。在技术分享上发表演讲、举办技术研讨会、指导团队以外的开发者都可以让你结交不少朋友。
04 技术实力
技术管理者首先是技术人,然后才是管理者。「成为团队中最厉害的开发者之一」几乎是技术管理者的一项硬性要求,因为不懂编程或不了解技术细节的人无法参与技术讨论。
所以,除了强大的软件工程背景和实践经验,你还应该保持敏锐的技术嗅觉,并保持过硬的技术实力,以便胜任更高级别的任务。
05 协作与指导
团队中任何不具备团队合作精神的「优秀开发者」都是有害无益的。技术管理者总是帮助别人提升技术水平------结对编程、代码审查、演示、开源或者内部源代码项目都是很好的指导方式。
在实际工作中,可能很少有人会主动向你寻求指导。没关系,机会全靠自己争取!你可以以技术专家的标准要求自己,主动地做上述事情;时间久了,自然会有人开始向你求助。通过为他人解惑,你将可以建立正向的人际关系并赢得团队尊重。
06 项目管理能力
保证项目能按时交付是所有管理者的核心职责之一。如果作为开发者,你总是错过交付时间,完不成研发任务,那其他成员就无法信任你。你必须有条不紊地完成工作才行。
我们都知道软件项目存在很多不确定性,所以工作估算的难度很大。但通过正确的流程,准确估算也并非不可能------你可以不断与上层领导或利益相关者沟通项目进度,了解他们的期望。
例如,我的团队每周都会做一次状态报告,让项目技术负责人有机会沟通进度、提出阻碍或延期交付的主要原因。
07 沟通能力
简洁、清晰的沟通是管理者的必备能力。如果你不能清楚地表达对团队的要求,那还没等工作开始,你的管理者生涯就宣告失败了。沟通的形式有很多种,包括口头的、书面的、甚至肢体语言。请始终致力于全面提高沟通技巧。
我的团队也曾错过几个交付时间,因为我未能清晰、及时地传达要求。有几次,成员们都不知道谁该做些什么。后来我认识到,依靠项目经理或利益相关者说明项目细节是行不通的。技术管理者必须要自己了解项目,再向研发团队解释并营销项目,激发成员的工作热情。
08 向上管理
管理你的上层领导(有时需要管理他们的领导)。这意味着要不断与他们沟通,管理好他们的期望值。相信我,管理者不怎么喜欢意外,无论好坏。
你需要与上层领导建立信任关系,成为重要的、首选的项目负责人,并按时如约地完成项目。
09 冲突和矛盾
无论进行了多少单元测试或集成测试,生产问题都会发生。你肯定希望最大程度地减少缺陷数量,但更重要的是妥善处理生产问题。一个遇到压力就自乱阵脚的人,在他人看来是没有资格担任管理者的。研发团队和其他技术负责人都希望见到一个抗压能力强、能够冷静把控一切的技术管理者。
我曾经合作过一位非常冷静且情绪稳定的技术管理者。几乎没有任何冲突或压力可以让他崩溃,至少没有人见过他「鸭梨山大」的样子;哪怕凌晨三点要处理生产问题,他也绝不会让人失望。
而另一位技术管理者总是对交付日期焦虑不已;新功能上线的那天,他还病倒了。他情绪不够稳定,所以周围的人都不愿意和他一起工作。
这是两个完全相反的例子,但你应该可以猜出谁是更成功的技术负责人。
10 产品愿景
技术管理者应该知晓自己负责的每一件事的前因后果,并确保全体成员都能理解「为什么要做它」。
你必须要传递清楚(通常需要多次说明)我们为什么要开展这个项目?为什么要让这些人参与其中?这个项目又将如何服务于大局,服务于企业/产品愿景?
研发团队必须足够相信和认可要做的事情,才能有效地开展工作。
从今天开始,阔步向前
领导力不是一两个人的特权,所以不要等待,也别犹豫,今天就行动起来,建立自己的技术影响力;加油成为垂直领域的专家,并主动地向同事和伙伴提供帮助。
努力提高沟通技巧,和当前或未来可能的战友建立良好关系。确保自己能明智地管理自己的时间,保证项目按时交付。
不要忘记,领导力是以人为本的,所以要真诚地助人成长,让他们做得最好。
(原文作者为 Alex Bachuk,内容经 LigaAI 翻译调整)
LigaAI@稀土掘金还将分享更多产品管理、研发提效等干货内容,欢迎关注我们。