研发效能
团队能够持续地为用户产生有效价值的效率,包括有效性(Effectiveness)、效率(Efficiency)和可持续性(Sustainability),就是能否长期、高效地开发出有价值的产品
效能度量
从应用程序开发的生命周期中获取数据,并使用这些数据来衡量软件开发人员的工作效率
- 研发效能难以真正地被度量
 
原则:效能度量不要与绩效挂钩,提供度量作参考和工具
指标分类:
- 速度:交付的速率
 - 准确度:是否跟计划吻合,跟用户需求吻合,能否提供较大的用户价值
 - 质量:包括产品的性能、功能、可靠性、安全等方面
 - 个人效能:开发过程中的效率指标
 
如何度量:
- 目标驱动,关注什么,度量什么
 - 先从全局上找瓶颈,再深入细节
 - 收集主观的评价,作为度量数据
 - 关注个人维度的指标提高效能
 
流程
对于优化的方法,做法是逐步优化已有的开发流程和框架,甚至只给出原则,让团队成员逐步摸索并最终找到合适的方法
入库前
- 规范化、自动化核心步骤
 - 快速反馈,增量开发
 
信息流通
- 战略目标相关信息:只有当团队成员清楚公司以及团队目标时,才能更容易把自己的目标与之对齐
 - 代码相关信息:尽量公开。代码是最直接的参考,是最实时的文档
 - 研发过程的各种文档:通过统一的工具,方便大家添加、修改、查询这些文档
 - 各种标识信息:各种工具之间流动着多种标识信息,包括任务工单、代码提交号、版本号、代码审查 ID、测试用例 ID、Bug ID 等,管理这一类信息的有效方法是,各种工具通过提供 API,做到服务化,形成工具之间的网状连接
 
研发环境
- 舍得投入资源,用资源换取开发人员时间
 - 对环境的获取进行服务化、自助化
 - 注重环境的一体化、一致性,固化最佳实践
 
代码审查
引入阶段:
- 统一思想,代码审查也是工作量
 - 选择合适的试点团队
 - 机器审查和人工审查结合,使得人工审查更聚焦
 
实施阶段:
- 保证提交原子性,重视提交说明
 - 审查时互相尊重和基于讨论
 
技术债
- 利用技术债的好处,必要时要大胆“举债前行”
 - 控制技术债,在适当的时候偿还适当部分的技术债
 
目标
- 技术目标:偿还技术债 或 前瞻性的技术准备
 - 业务目标
 
技术常常在短期被高估,在长期被低估,不要因为短期的业务目标而忽略长期的技术目标