• 517查看
  • 0回复

[软件质量] 汽车软件研发管理的35个指标

[复制链接]


该用户从未签到

发表于 11-5-2024 20:18:40 | 显示全部楼层 |阅读模式

汽车零部件采购、销售通信录       填写你的培训需求,我们帮你找      招募汽车专业培训老师


汽车软件研发管理的35个指标w1.jpg

指标,这是软件研发管理绕不过去的话题,这也是大家一直以来的管理惯例。
不过,在如今内卷至混乱的年代,没有太多数理逻辑的量化指标频频受到质疑,为什么是5%,不是6%;实际项目如此复杂,固定的指标合理吗?
质疑并非没有道理,但指标存在的意义不在于能够应对这些质疑。我们可以从另外两个角度理解:
    此为无奈之举,简化至可以理解和管控的可量化指标,是认识的需要,也是管理的抓手。

    指标既会作为具备相当一致性的成熟产品或团队的绩效表征,也是将不成熟推向成熟的手段,而且推动意义大于表征意义。


既然仍然需要指标,本文会汇总对汽车软件相对有价值的度量指标,以供大家选用。

1需求规模

需求规模=需求大小或颗粒度

该指标反映了单个需求交付及开发的复杂度,如果能对需求规模进行比较好的拆分与估算,十分有利于项目计划与工作量的合理规划。

按照不同的项目或产品类型,可以使用故事点、feature、功能点、对应代码当量等维度来评价。

2需求交付周期

需求交付周期=需求释放时间-需求创建时间

该指标反映了团队对新需求的评估及交付速率,这也体现了敏捷宣言中拥抱变化的力度。

算法里的需求释放时间可以按照系统里需求通过评审释放或变更经过CCB批准释放的时间来定义,而需求创建时间可以按照系统里需求打基线或者提交的时间来定义。

3需求变更率

需求变更率=发生过变更的需求数/已释放的需求总数

该指标反映了对变更控制的能力,在传统汽车瀑布式开发下,对变更控制的能力也会指向管理的水平,但敏捷时代下,低需求变更率甚至是负面的表征。

算法里的需求数可以按照需求管理系统里的条目数或者需求文本的数量来统计。

4开发交付周期
开发交付周期=软件发布时间-需求释放时间
该指标反映了开发团队的开发效率,算法里的软件发布时间可以按照软件打包发布的时间来定义,而需求释放时间可以按照系统里需求通过评审释放或变更经过CCB批准释放的时间来定义。
软件发布通常会区分内部发布和外部发布,可以根据实际业务需求来选择度量方式。

5需求吞吐量
需求吞吐量=统计周期内交付的需求规模
该指标与需求交付周期度量的目标接近,但交付周期侧重于单位需求的交付效率,吞吐量关注的则是整体产能。
算法里的统计周期可以按照月度或季度来统计。

6需求按时交付率
需求按时交付率=按时交付的需求数/计划交付需求数
该指标反映了需求按时交付的能力。
算法里的数量可以按照需求管理系统里的条目数或者变更管理系统里工作项数量来统计。

7需求评审通过率

需求评审通过率=通过评审释放的需求数/提交评审的需求数

该指标反映了需求提出者撰写需求的能力,也会反映出对需求上线进行整体规划的能力。

算法中的需求数可以按照需求管理系统里的条目或者变更管理系统里工作项的数量来统计。

8需求评审缺陷密度

需求评审缺陷密度=需求评审检出缺陷数/需求规模

该指标反映了需求评审的效果。

算法中的缺陷数可以按照评审finding或者开出的问题项的数量来统计,而需求规模可以使用故事点、feature、功能点、对应代码当量等维度来统计。

9设计评审通过率

设计评审通过率=通过评审的组件数/提交评审的组件数

该指标反映了组件及接口定义和设计的质量。

算法里的组件数可以按照软件架构的组件拆分来统计。

10设计评审缺陷密度

设计评审缺陷密度=设计评审检出缺陷数/设计规模

该指标反映了设计评审的效果。

算法中的缺陷数可以按照评审finding或者开出的问题项的数量来统计,而设计规模可以通过需求规模或者组件数来统计。

11组件按时交付率

组件按时交付率=按时交付的组件数/计划交付组件数

该指标反映了软件开发人员进行模块或组件开发的能力,软件需要多组件集成后才能进行下一步的测试和发布,各组件开发都要按节奏协调起来。

算法里的组件数可以按照软件架构的组件拆分来统计。

12组件复用率

组件复用率=复用的组件数/总组件数

该指标反映了架构设计、组件设计甚至需求沟通方面的能力,不重复造轮子、进行复用开发是我们所鼓励的。

算法里的组件数可以按照软件架构的组件拆分来统计。

13接口变更率

接口变更率=变更的接口数/总接口数

该指标与组件复用率关注的能力接近,但组件复用率提升的是单个组件开发的效率,接口变更率更会致力于跨组件、跨系统的协同开发效率。

算法里的接口数可以按照系统及软件架构中定义的软件接口与软硬件接口来统计。

14代码开发当量

代码开发当量=代码抽象语法树加权最小编辑距离

该指标反映了代码的逻辑量和修改代码的工作量,排除了编程风格、换行习惯、注释等干扰因素,准确性比传统的代码行数更好。

15代码提交频率

代码提交频率=单位时间代码提交次数

该指标反映了代码开发的活跃度,也是敏捷中鼓励的小步快跑提交,但有可能也会让开发进行表面化的频繁小提交,反而带来质量的下降。

算法中的代码提交次数可以按照代码配置管理系统中记录的代码变更次数来统计。

16代码重复率

代码重复率=重复代码的代码规模/总代码规模

该指标反映了代码的可维护性,即代码重复率越高,代码可维护性越差,因为多处修改所需的工作量越大。这个指标会驱动代码抽象,如用函数、类、库、服务来封装等。

算法中的代码规模可以用代码当量或代码行数来统计。

17代码评审缺陷密度

代码评审缺陷密度=代码评审检出的缺陷数/代码规模

该指标反映了代码评审的效果。

算法中的缺陷数可以按照评审finding或者开出的问题项的数量来统计,而代码规模可以用代码当量或代码行数来统计。

18静态扫描缺陷密度

静态扫描缺陷密度=静态扫描检出缺陷数/代码规模

该指标反映了编码规范程度,如MISRA C。

算法中的缺陷数按照工具扫出来的finding统计,而代码规模可以用代码当量或代码行数来统计。

19提测成功率

提测成功率=提测成功次数/提测总次数

该指标反映了开发满足测试准入条件的水平,除了软件质量本身,通常也会涉及一些过程规范性要求。

算法里的提测次数可以按照真实版本或者对应的releasenotes的数量来统计。

20测试一次通过率

测试一次通过率=一次性通过测试的版本数/总测试的版本数

该指标反映了开发的质量,会一定程度推进团队对代码评审或单元测试等开发测试的重视,但是,能否通过测试终归是来源于对测试准出条件的定义,如果发布压力大于质量压力,准出条件形同虚设,这个指标也就失去了意义。

算法里的版本数可以按照真实版本或者对应的releasenotes的数量来统计。

21测试覆盖率
测试覆盖率=测试覆盖的条目数量/需要测试条目的总数量

该指标反映了测试对需求或代码的覆盖程度,也细分为测试需求覆盖率或测试代码覆盖率。

算法中的条目数量,对于需求的覆盖,可以按照需求管理系统里的条目数来统计,而对于代码的覆盖,可参考《汽车软件单元测试的要点与意义》里的描述。

22测试缺陷密度
测试缺陷密度=测试检出缺陷数量/代码规模

该指标反映了测试的效果。

算法中的缺陷数可以按照开出的缺陷项的数量来统计,而代码规模可以用代码当量或代码行数来统计。

23缺陷重开率

缺陷重开率=重新打开缺陷数量/总缺陷数量

该指标反映了缺陷修复的效果,重开率高组件或团队应进行针对性的分析与改进。

算法中的重新打开缺陷可能需要缺陷管理工具配置对应的字段来统计。

24缺陷阶段移除率

缺陷阶段移除率=某一阶段引入中移除的缺陷数量/该阶段引入的总缺陷数

该指标反映了特定阶段的活动或团队对于缺陷的整体贡献,自己带来的缺陷最好自己带走。

算法中的阶段移除(这里的移除指在该阶段发现)和引入缺陷数都需要依赖缺陷管理工具配置的特定字段来统计。

25缺陷逃逸率

缺陷逃逸率=后期发现的缺陷数量/总缺陷数量

该指标反映了前期缺陷检出的效果,也直接反映了汽车软件质量的真实水平。

算法中后期发现的缺陷数量可以理解为售后、工厂、整车集成这些环节发现的缺陷数量。

26缺陷检出率
缺陷检出率=各阶段发现的缺陷数量/总缺陷数量

该指标反映了软件开发不同阶段的缺陷检出的效果,同缺陷逃逸率指向接近,但它对不同阶段的不同活动或团队的缺陷检出进行了细化,通常作为优化缺陷逃逸率的进一步指标。

算法中各阶段可以理解为需求评审、设计评审、代码评审、开发测试、集成测试、软件测试、系统测试、整车测试、工厂生产、售后这些不同环节。

27缺陷率
缺陷率=致命级别的问题个数*10+严重级别的问题个数*3+一般级别的问题个数*1+提示级别的问题个数*0.1

该指标反映了缺陷视角下的软件整体质量状态,其中的缺陷等级定义以及对应权重的划分是指标有效与否的关键。

28缺陷分布

缺陷分布=缺陷不同属性的交叉分析

该指标反映了缺陷属性交叉分析的结果,同其他分布一样,它更多作为整体对比、分析、决策的工具。

缺陷属性可以根据类型、严重度、根本原因、模块、优先级、测试环境和负责的测试人员等进行分类,这些属性之间可以进行二维或多维的交叉分析,比如,利用透视表、直方图、饼图或帕累托图等方式。

29测试自动化率

测试自动化率=自动化测试用例数/总测试用例数

该指标反映了自动化测试的能力,要想实现敏捷的频繁迭代发布,很重要一个前提就是快速的自动化测试,尤其要关注回归测试的测试自动化率。

30流负载

流负载=已开始但未交付的需求数分布

该指标反映了需求、设计、 开发、测试、发布各阶段的需求数分布状态,类似工作量分布,但关注的是在制品瓶颈和积压,控制在制品数量有助于提高交付效率。

算法里的需求数可以按照需求管理系统里的条目数或者需求文本的数量来统计。

31流效率

流效率=活跃工作时间(即无阻塞地工作)/总交付时间(包括活跃工作时间和等待时间)

该指标反映了软件开发过程的顺畅程度和资源利用效率,也能比较好地将软件开发工作透明化。

算法里的活跃工作时间指的是需求沟通、需求评审、架构设计、开发、测试、发布等实际工作的时间,而总交付时间则包括了活跃工作时间以及各种等待时间,如配置在ALM工具中的待评审、待开发、待测试、待发布之类的等待阶段的停留时间。

32工作量分布

工作量分布=不同维度下的工作量差异展示

该指标反映了软件开发过程中,不同阶段、不同团队下的工作量分布比例,通常用来支持项目管理的工作分配,也会与其他指标进行关联分析。

工作量可以通过工作项数量(缺陷、变更、任务等)或者工作时间或者代码规模或者需求规模等不同维度体现。

33售后问题响应时长
售后问题响应时长=售后问题响应时间-售后问题提出时间
该指标反映了响应售后客户问题的及时性,算是“态度”问题。
算法里的响应时间可以按照系统里分配或者给客户首次正式答复(有切实计划)的时间来定义,而提出时间可以按照接到客户投诉的时间来定义。

34售后问题解决时长

售后问题解决时长=售后问题解决时间-售后问题响应时间

该指标反映了解决售后客户问题的及时性,是“能力”问题。

算法里的解决时间可以按照系统里解决或者按照OTA或刷件解决实车问题的时间来定义,而响应时间可以按照系统里分配或者给客户首次正式答复(有切实计划)的时间来定义。

35净推荐值NPS

净推荐值NPS=客户愿意向其他人推荐某功能或场景的意愿

该指标反映了客户的主观感受,而不聚焦在工程或软件质量本身。这在场景体验评价里,是一个有价值的指标,它也可以用于客户满意度的整体评价。

净推荐值以0-10的数字范围表示,得分为0到6的客户是负面评价者;7和8的分数是中立者;9和10是推荐者。

5写在最后
软件的高质量必然指向可指标化,而指标也是高质量的重要推手。



该用户从未签到

发表于 11-3-2025 13:43:00 | 显示全部楼层
针对汽车软件研发管理的指标问题,我认为指标的存在是为了便于量化和管理研发过程。虽然存在质疑,但指标依然是管理的重要手段。以下是关于汽车软件研发管理的35个指标:

1. 代码行数
2. 代码质量评分
3. 错误率
4. 测试覆盖率
5. 需求变更次数
6. 迭代周期时间
7. 新功能引入时间
8. 用户反馈满意度指数
9. 故障修复时间
10. 代码提交频率等。这些指标有助于量化项目进展和团队绩效,从而更有效地管理和推动软件研发过程。针对具体项目,这些指标可按需选择和调整。成熟团队会使用指标推动进步而非仅作表征之用。特此回复以供参考。

[内容由汽车工程师之家人工智能总结,欢迎免费使用,见贴尾]
回复 支持 反对

使用道具 举报


  • TA的每日心情
    无聊
    1-7-2015 18:46
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 11-3-2025 13:43:00 | 显示全部楼层
    关于汽车软件研发管理的指标,确实在当前行业环境下有着重要的管理作用。以下是针对汽车软件研发管理的35个指标:

    1. 软件开发周期
    2. 代码质量
    3. 缺陷率
    4. 测试覆盖率
    5. 代码复用率
    6. 软件开发成本
    7. 研发效率
    8. 文档完整性
    9. 系统稳定性
    10. 兼容性测试通过率
    11. 用户界面设计质量
    12. 系统安全性
    13. 代码规范性
    14. 版本迭代周期
    15. 跨部门协作效率
    16. 需求变更管理效率
    17. 研发团队绩效
    18. 代码评审通过率等。同时包含质量管理指标如软件测试通过率、软件可靠性等。这些指标涵盖了软件研发的全过程,既能够表征团队的绩效,也能推动团队向成熟发展。针对复杂项目,指标的设定应结合实际情况进行调整和优化。只有这样,才能更好地进行汽车软件研发管理。这些指标只是参考,实际使用时还需结合具体业务场景和需求进行选择和调整。

    [内容由汽车工程师之家人工智能总结,欢迎免费使用,见贴尾]
    回复 支持 反对

    使用道具 举报

    

    该用户从未签到

    发表于 11-3-2025 13:43:00 | 显示全部楼层
    针对汽车软件研发管理的指标,确实在当前内卷环境下具有重要的管理意义。为有效评估和管理软件研发项目,我会为您整理并汇总相对有价值的度量指标。这些指标包括但不限于:

    1. 代码质量指标:如代码规范一致性、错误率等。
    2. 软件开发周期:包括需求响应周期、开发周期、测试周期等。
    3. 缺陷管理指标:缺陷发现率、缺陷修复率等。
    4. 性能优化指标:软件运行效率、响应时间等。
    5. 测试覆盖率及通过率。
    6. 文档管理指标:文档完整性、更新频率等。
    7. 团队协作效率:如代码提交频率、团队沟通效率等。
    8. 用户满意度:功能满足度、易用性等。
    9. 维护支持指标:故障响应时间、问题解决效率等。

    这些指标旨在提高软件研发过程的透明度和可度量性,既有助于识别问题和瓶颈,也是推动团队向更高效率和质量前进的有效工具。在实际应用中,可根据具体情况进行调整和优化。希望这些指标能为您的汽车软件研发管理带来帮助和启示。

    [内容由汽车工程师之家人工智能总结,欢迎免费使用,见贴尾]
    回复 支持 反对

    使用道具 举报

    快速发帖

    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    QQ|手机版|小黑屋|Archiver|汽车工程师之家 ( 渝ICP备18012993号-1 )

    GMT+8, 19-8-2025 02:20 , Processed in 0.361217 second(s), 37 queries .

    Powered by Discuz! X3.5

    © 2001-2013 Comsenz Inc.