Skip to content

技术Leader的职责

clarkehe edited this page Sep 24, 2016 · 18 revisions

今天突然觉得有些工作还是应该做,而且应该重点做。--题记

带android的项目组已经快两年了,之前有点是根据感觉与经验做事情,今天觉得有必要对自己做下定位,分析下作为一个技术Leader的的主要责任,有哪些工作重点,要做哪些事情。

工作盘点

先盘点下目前的工作状态及日常做的一些事情:

  1. Code Review。每日根据SVN提交记录,看前一天提交的代码,有问题则当面或RTX提出来。
  2. 体验实现的功能,同时看代码实现,发现问题也提出来。
  3. 技术难点的解决,比较复杂技术问题基本要参与或独立解决。技术上的难点有一些,不会太多。
  4. 跟进项目中的一些问题,进度主要是项目经理跟进,我主要关注技术上的问题有那些,解决怎么样了,要不要介入。
  5. 根据自己的思路,对一些技术点进入深入的一些了解,或可提升产品质量的方法。如包大小优化、Glide的内存效率、一直有上报但不怎么关注的ANR问题、过度绘制等。
  6. 根据上报(主要是自己开发或重点关心功能模块),定位并解决一些外网的问题。
  7. 查看用户反馈邮件,分析日志、联系用户,解决用户问题,尽量从用户得到一些关于产品的意见。
  8. 提测,注意写测试要点。
  9. 专门的兼容性测试(android平台的兼容性及新旧版本之间兼容性)。
  10. 发布,打基线。
  11. 很重要的一个,需求评审。
  12. 发现问题、提出问题,让大家一起分析解决,这算是提升团队整体能力的工作。
  13. 新技术的引入,如RxJava、热补丁。

还有其他的一些点,在《去年手游宝一年项目总结》中也列举了不少。事情比较杂,有些事件是随着项目迭代推进的,有些是自己找的。对,有些事情是自己找的。

相对而言,作为技术Leader,Coding实现业务的工作相对少一些(看SVN提交统计,实际Coding量并不少,相反要对项目整体的代码要有足够的了解),时间安排上可以更灵活些。这既有好处,也不太好。没有分配具体的工作,刚开始不知道自己该找什么事情做,不像Coding实现具体的功能有充实感,会觉得空虚、心会发慌。现在,有一些思路与方法,开始习惯了。

抛开这些具体的事情,技术Leader的职责是什么?应该怎么排自己的工作,时间应该花那些事情上?

定位与职责

关于职责的问题,可引用阿朱(早之前看过他写的《走出软件作坊》)的一段话:

公司再长大些。如果你就有一个研发团队(含产品/开发/测试),你就一套主产品,而且你的研发团队小于15人,那么你需要的就是一个研发Leader。
因为你已经有了1-2个高级程序员,核心难题攻克和核心功能研发进度与质量保证,已经可以靠他们自身能力解决掉了。那么你需要研发Leader干什么。
研发Leader的职责是:
1、团队任务管理:开发工作量评估、开发任务分配。
2、团队生产质量提升:代码审核、开发风险识别/报告/协调解决。
3、团队生产力提升:代码模板研发与推广、最佳实践规范总结与推广、自动化研发生产工具研发与推广。
4、团队专业力提升:招聘面试、新人指导、领导复盘总结改进。

阿朱说的这几个点都从团队的角度说的,技术Leader有三大块职责:分配任务、保证质量、提升团队效率与专业。那么,技术Leader是一个开发团队的负责人,要履行好这三块职责,打造高绩效的团队,交付高质量的产品。

前面说的一堆的各种工作,都可归为这三大类职责。

分配任务

  • 需求评审
  • 技术方案制定

保证质量

  • Code Review
  • 体验功能,查看代码实现
  • 技术难点的实现(控制项目风险)
  • 跟进项目中的技术问题
  • Crash、ANR上报
  • 产品及协议等数据上报
  • 提升产品质量
  • 解决外网及用户反馈问题

提升团队效率与专业
效率的提升,可分为两个部分:流程制定、工具开发与使用。

流程制定

  • 代码每日自动化扫描(下面说到的工具)
  • 转测要写测试要点
  • 专门的兼容性测试
  • 发布前不要重构代码
  • 发布打基线
  • 拉开发流
  • 全量前灰度

工具开发与使用

  • 冗余资源文件扫描
  • 代码规范扫描
  • FindBugs扫描
  • Tapd(迭代、转测、Bug管理)平台
  • RDM、灯塔、MTA平台
  • 自动构建
  • 打渠道包工具

团队专业提升

  • 发现问题、提出问题,大家一起解决
  • 新技术的评估、引入
  • 面试、引用新人
  • 日常技术问题,提出建议

作为技术Leader,日常的工作基本就以这三大任务为中心,所有事情不一定要亲力亲为,但要保证整个团队成员的工作也是根据这三大任务进行开展。

职责矩阵

日常工作以版本迭代的形式(敏捷开发)开展的,每个迭代在时间维度上进行需求评审、技术方案制定、排期、开发、转测、发布等工作。技术Leader三大块职责的任务会贯穿迭代的整个过程,如果将这三大职责的任务放在项目迭代的过程中,会有下面的职责矩阵。

Clone this wiki locally