---
title: 技术经理涉及的工作内容：关于事
canonical: "https://xiaofeng.dev/writing/technical-manager-work/"
pubDate: 2018-01-21
author: 唐小锋 Xiaofeng TANG
description: 技术经理这个词并非一个能够精确定义的岗位，但有一点很明确：技术经理不是一个直接贡献者，而是一个间接贡献者。
tags: [Engineering Management, Technology]
---

技术经理这个词并非一个能够精确定义的岗位，但有一点很明确：技术经理不是一个直接贡献者，而是一个间接贡献者。

直接贡献者，又常常称之为个人贡献者（Individual Contributor），是通过施展自己的专业技能做贡献；而间接贡献者只能通过他人做贡献（Contribute Through Others），他们可能从事管理岗位，也可能是非管理岗位，常常需要克制自己直接去干活的冲动。

这里的“他人”通常是团队，既然是通过团队做贡献，那么所有的决策都应该以 “提高团队协作效率、提高技术研发效率（从而最终提高产品竞争力）” 作为最重要的决策原则。

技术经理在典型的日常工作中会涉及到多方面的内容（仅仅是涉及，不一定全程参与），大概有那么两类：事、人。本期只谈事。

第一类：技术管理

**版本管理和分支规范。**一个人写代码的时候，常常就一个仓库，并且直接master了，但是当多人协作，一定会碰到以下问题：代码仓库如何规划？分支如何划分？如何定义需求版本和技术版本？怎样做既规范又不影响协作效率？

**发布规范。**什么样的代码产品才是可发布的？发布的步骤应该如何描述？如何减少发布过程的犯错机率，如何减少系统波动？程序员们可以直接操纵线上应用吗？什么时候需要回滚？怎么设计回滚机制？

**代码规范（可能需要比较深的技术能力）。**如何规划仓库中的目录划分、配置分离、文档注释、调用风格、URL命名风格？这些设计要素都会直接影响到代码在不同开发人员之间传递、交流和讨论。

**质量管理。**需求开发流程中哪些节点需要引入测试？开发人员自测、测试人员集成测试？需要单元测试吗？需要UI自动化测试吗？如何在测试、研发速度方面寻求平衡？质量管理应该贯穿在整个产品的生命周期里面吗？

**系统监控。**功能上线后，如何通过多级别、立体的监控手段来保障运营状态？

**系统安全。**根据产品特征，它会面对哪些可能的风险？如何控制代码层面的风险？是否有必要的安全编程规范？如何控制架构层面的风险？

**容量规划。**产品的增长规模如何？是突发性的，还是持续性的？什么时候可以开始考虑扩容问题？

第二类：项目管理

**需求管理。**需求的一般流程是收集需求->评估需求->确认需求->进入开发。技术经理最需要关注需求评估环节，考察可行性、复杂度、研发成本，适当的时候做减法来保障迭代速度。

**任务分工与协作。**需求确定后，可以参与需求的拆解，基于不同工程师对代码的熟悉程度，不同的需求可以安排给最熟悉的人来做。必要的时候，可以安排给不熟悉的人来做，起到交叉熟悉的作用，未来碰到难点，也可以多一个人讨论技术方案。研发节奏方面也要注意把握，通常先出技术方案和接口定义，然后才开始写代码。

**迭代周期。**什么样的产品应该有什么样的迭代周期？例如App按惯例就是一月一版，其他网页端可以更快。紧急需求介入当前迭代周期时，应该如何调整当前的任务安排？

**内测/外测。**什么时候需要提供内部测试，什么时候提供给业务测试？业务测试应该算作外部测试（可能取决于技术和业务方的亲密程度、以及所在企业的文化）吗？

**晨会。**是否需要安排每天晨会？什么样的频率合适？

**项目总结反馈。**每期项目可以有一个复盘总结的时机。可以小规模（1、2个人），也可以大规模，取决于你要传达的信息是什么，需要谁接收信息。

**跨部门协作。**收到来自跨部门的一些技术工作，如何安排和处理。

下期预告：关于人。
