每当提及「研发效能」,我们都在谈论什么?
研发效能管理要在保证质量的前提下,思考如何更快地向客户交付价值。在管理实践中,效能度量涉及三大维度:交付速率、交付质量、交付价值。
技术团队对内如何优化开发流程,以提升交付速率和质量?对外如何围绕价值交付,与产品、业务侧同事开展紧密高效的研发协作?在众多急需攻破的效能难题中,Cycle Time 都是极为关键的速率管理发力点。
01 是什么 Cycle Time?
Cycle Time 原是精益生产的专业术语,描述了某个工序制造一单位产品或某过程完成一个工作循环所需的平均完整时间,可以确定机器或工序的生产能力和效率。
在软件研发中,Cycle Time 是指技术团队从头到尾完成一单位研发工作平均需要的时间,即研发工作从进入开发到发布上线所经历的平均时间。
02 为什么应该关注 Cycle Time?
Cycle Time 是反映技术团队工作速率的结果度量指标,可以帮助团队识别障碍、有的放矢地优化改进并实现更快更好的价值交付。
- 更快地响应。 缩短 Cycle Time 的本质是更快地向客户交付价值,响应变化。
- 识别障碍和待改进空间。 跟踪对比多项目或跨周期的 Cycle Time 有助于识别和定位效能瓶颈,便于及时调整优化。
- 及时反馈,避免浪费。 分析优化前后的 Cycle Time 可以快速掌握优化效果,辅助进一步决策,避免长时间的空耗和等待。
- 提供风险预警支撑。 以历史和平均 Cycle Time 为效率基准,在过程管理中为风险预警和进度管理提供数据辅助。
总的来说,研发团队应该持续跟踪 Cycle Time,灵敏地识别开发过程中的效能瓶颈,并通过建立标准、流程优化、任务拆分等持续改进,增强组织敏捷性,提高开发速率,快速交付价值。
03 如何计算 Cycle Time?
前面说到,Cycle Time 表示一单位研发工作经历从「进入开发」到「发布上线」平均需要的完整时间。
为了便于计算,此处定义一单位研发工作为「Git 中的一个工程任务」。在管理实践中,一单位研发工作也可以是一个故事点数、一个用户故事等等。
技术团队需要提前约定开发流程中每个环节「工作开始」和「工作完成」的标准,并确保所有人都为此达成共识。
- 编码时间:DoR 是技术团队需求准入的标准,因此编码时间是「需求符合 DoR 要求,抵达技术团队」到「完成编码,发起 Pull Request 请求」的平均时间。
- 拾取时间:从「发起合并请求」到「代码审查开始」的等待时间为代码拾取时间。拾取时间越短,说明跨职能的技术团队协作越紧密,审查过程越健康。
- 审查时间:一般将「首条评论产生的时间」视作代码审查的起点,而「分支确认合并」则是代码审查结束的标志。
- 部署时间:常以「分支确认合并」为始,以「新代码成功同步到生产环境」为终。
基于清晰统一的节点标准,技术团队就可以计算各个环节的平均工作周期,并通过平均值加总得到 Git 工程任务的 Cycle Time。
同时,结合不同环节的耗时分布和交付数量,技术团队还可以制定流程规范和优化方案,将效能瓶颈逐个击破。
04 如何缩短编码时间,提高效率?
技术团队的编码周期过长,可能有以下原因:
- 需求很复杂:功能复杂、耦合度高、颗粒度大的研发任务通常需要花费更多时间。
- 需求不明确:用户调研或需求分析不到位、产品频繁变更都会拉高沟通成本,多次返工和变更也会影响代码质量和速率。
- 需求太难了:开发人员缺乏项目必备的专业知识,边学边做,或者突现计划外的技术难题都会制约开发效率。
- 流程繁琐混乱:代码提测路径长、被频繁打断而无法专注于代码实现,都是工作流程不优导致的效能瓶颈。
- 重复的机械劳动:代码手动 Commit、人为的消息通知和任务指派也是对技术团队精力和时间的极大浪费。
因此,提高技术团队的编码效率可以从流程规范和优化、自动化工具的投入,和能力提升与培养三个角度入手。
1. 建立流程标准和协作规范,把控准入需求
开展工作的前提是保证技术团队一直在交付最有价值的事情,因此可以采用敏捷开发方法,对需求进行价值排序,确定优先顺序。
第二,同产品团队一起建立协作流程规范,并明确需求准入的标准(DoR),说明含需求粒度、任务拆分和分解、相关的上下文和说明文件等在内的要求。通过加强起点的把控,提升开发速率。
2. 构建内部知识库,将繁复的操作和流程自动化
合理利用优质开源项目、时兴的效率工具与自动化插件,加快代码编写的速度并提高质量,以减轻语法检查、手动提交等事务性工作的压力。
同时,鼓励开发人员积极沟通,定期举办内部知识分享会,促进相互学习;建立代码知识库,收纳相关代码以供检索和复用,避免低效和浪费。
3. 规范开发标准和良好习惯,持续学习
由上至下地推行统一的代码规范,鼓励开发人员遵循最佳实践,例如编写干净、文档齐全的代码和使用一致的编码约定,减少调试和故障排除的时间。
定期组织培训或展开指导,持续了解新技术,学习新知识,尝试新工具。不断精进专业实力的同时,主动扩展知识带宽。
LigaAI 总结一下
Cycle Time 是衡量技术团队开发速率和交付能力的重要指标。在相同的交付质量和价值度量的前提下,更短的 Cycle Time 意味着研发团队能更快地响应市场和需求的变化,更快地向用户交付价值。
Cycle Time 表示研发工作从符合 DoR 并进入技术团队起,到发布上线所需的平均完成时间,与编码、拾取、评审和部署的周期皆有联系。其中,控制好需求准入标准,合理利用新兴技术和项目都有助于缩短编码周期,加快开发速率。
关注研发效能,专注科学管理。LigaAI 将持续分享更多研发效能度量体系的搭建经验,以及度量指标管理方法等干货内容,助力研发团队击碎效能瓶颈。
请持续关注 LigaAI@oschina 帐号,获取更多资讯。
也期待您点击 LigaAI - 新一代智能研发协作平台,在线申请体验我们的产品,与 LigaAI 一起做大做强????