技术主管新年想得最多的一件事必定是如何比上一年做得更好。宏大的目标设定每个团队都会做,谈几个不引人注意的小问题。
1、主动与被动
见过一些技术团队将计划定义为“按时完成需求”,需求驱动并没有什么不对,但是研发工作仅考虑被动需求的话是很难做好。
- 之前完成的许多需求有什么共性?
- 延误的项目有哪些原因?
- 经常出问题/bug/故障的项目/功能/模块是哪些?
- 代码、关键路径、架构中有哪些已知的缺陷?
- 用户不容易发现,但是已经存在的问题有哪些?
围绕以上类似问题出发,找出在研发上需要做哪些主动改进。
2、关注效率提升
大部分团队会非常关注如按时交付等直接目标,当目标遇到障碍时,技术主管通常就会用直接的方法(如加班)来解决。但是考虑长远,有很多间接的手段能更好改善效率。
- 是否存在培训体系,针对专业知识、业务知识进行专项培训?
- 针对新人是否有进阶的各层次引导培训?
- 团队的文档建设如何,是否经常要阅读前人代码才能维护?
- 某个地方经常一修改就出bug,是否有机制保证及时重构?
- 是否有清晰的开发流程、项目流程、发布流程,还是依赖团队人员的经验或智慧?
- 开发流程中是否有方法形成共识的需求,技术设计是否有review习惯?
如果只看到直接目标或短期收益,可能一年之后技术主管还在疲于奔命,感慨有做不完的事情并埋怨团队效率低。
3、量化体系及工具
当团队较小时候,依靠team leader领头羊作用以及团队成员的内驱力就可以将目标完成得不错。当团队进一步扩大,尽量建立量化的体系及工具,比如目标“将存储时间缩短30%”,需要考虑是否有现成的方法来测量、是否有日常的采样数据等,而不能依靠一时的临时对比。业务的数据每个公司都会第一时间建设,但是衡量软件性能及效率的工具及数据通常未纳入到日常化建设。
4、持之以恒
建设一个高效的研发团队无法一撮而就,让一个10人以上的技术团队形成合力,保持持久的开发效率提升及高质量交付,需要长年的建设及努力。
一年之计在于春。