DevOps开发人员指南:提升交付效率与质量
1. 关键时间指标解析
在软件开发过程中,有几个关键的时间指标对于评估和优化流程至关重要。
1.1 周期时间(Cycle Time)
周期时间是指从功能开始开发到最终交付给客户并可使用的整个过程所花费的时间。Donald G. Reinertsen将其分解为三个部分:
- 模糊前端(Fuzzy Front End,FFE) :项目最早可以开始的时间点,通常以提交书面项目提案表格的日期为准。FFE结束的标志是开启一个费用编号以开始收集开发成本,这意味着公司开始认真推进该产品。
- 开发周期 :从FFE结束开始,到产品首次产生收入的发货为止。
- 达到量产时间(Time-to-volume) :当所有项目目标完成时结束,这些目标通常包括达到目标质量和满足需求的产量。
1.2 前置时间(Lead Time)
前置时间指从系统接收到请求输入到该订单完成的时间。它通常包括排队时间和工作订单准备时间。在产品开发中,测量前置时间时应包括FFE和开发周期。
1.3 节拍时间(Takt Time)
节拍时间主要是一个制造术语,指过程的节奏。例如,汽车生产线每五分钟生产一辆汽车。不过,更建议使用“节奏”(Cadence)这个词,因为它可以更灵活地指定不同的节奏,如每周部署节奏和每日测试节奏。
1.4 吞吐量(Throughput)
吞吐量既可以指输出的数量,也可以指输出的速率。为