研发质量与效率的绩效指标设计

程序员的 KPI 指标设计一直是业界的一大难题,因为研发人员的工作绩效很难量化,即便如此还是需要制定相应的绩效指标,这些指标有部分可以简单量化,但都无法最终衡量研发的质量和效率,还是需要经验丰富的管理人员加以主观的判断。

关于软件质量的概述在《代码大全》一书中有非常详细的介绍,其中提到软件质量包含外部质量和内部质量,外部质量指软件的外部特征包括软件易用性等,内部质量指软件内部特征包括代码质量等。

在给研发人员制定绩效指标的时候,可以综合考虑软件外部质量和软件内部质量,以便更好地引导其更全方位地提升研发质量。

研发质量指标

需要关注的研发质量指标包括以下这些:

  • 软件外部质量(软件外部特征)
    • 正确性(整个系统设计和实现的正确程度,bug 多则正确性低,但还应考虑程度)
    • 可用性(使用系统的难易程度)
    • 效率、性能(对系统资源的最小利用,包括存储和执行时间)
    • 可靠性(成功执行特定功能的能力)
    • 完整性(完整性内容包括:防止非法或不适当地访问的能力、参数校验、界面、安全性等,可以综合衡量工作的真实完成度)
    • 适应性(系统在多个环境下不做修改就能使用的能力,比如移动端也能正常使用)
    • 精确性(系统不受错误影响的程度,尤其在数据报表方面,精确性是对工作性能良好的衡量)
    • 稳定性(应对无效输入或并发较大仍能提供服务的能力)
  • 软件内部质量(软件内部特征/代码质量)
    • 符合编码规范
    • 可维护性(修改系统以增加功能、提升性能、修复 bug 的能力)
    • 灵活性(修改后能适用不同用途或环境的能力)
    • 可移植性(修改后能在其他环境下运行的能力)
    • 可重用性(用于其他系统或模块的难易程度)
    • 可读性(能理解系统源代码的能力)
    • 可测试性(对系统编写单元测试或进行系统测试的难易程度)
    • 可理解性(能从整个系统水平或细节说明上理解整个系统的难易程度,相比可读性更偏向不同系统间的交互是否易于理解)
    • 单元测试质量(测试代码质量、单元测试覆盖率等)
    • 可测试性(代码的可测试性,通常高内聚低耦合的代码更具有可测试性)
  • 文档质量
    • 外部文档(综合资料、技术方案、详细设计文档)
    • 程序内文档(编码风格、可读性、有效注释)
  • 系统安全

研发效率指标

在研发质量部分提及了许多指标,因为质量与效率的相互影响,效率部分似乎难以提取出额外指标,其实不然,研发效率不应局限于个体成员的编码速度、任务完成速度上,而应多从团队整体效率出发,对于提升团队整体效率的行为要加以鼓励。

研发效率指标包括:

  • 项目及任务按时完成率
  • 编码效率
  • 敏捷反馈(尽早提测、持续集成)
  • 敏捷编码(保持简单、合理设计、增量开发)
  • 敏捷协作
    • 代码提交质量
  • 项目提测质量
  • 及时准确地反馈真实进度
  • 团队技术指导

向专业人士看齐

以上的常规指标,可以用于管理人员制定绩效指标,也可以作为研发人员检验自己工作完成度的一份清单,除此之外,做一些对整个团队有利的事情能够更显专业。

当研发人员表现出以下的一些行为时,管理人员往往会给其「超出期望」的评价。

  • 积极参与代码审查,发表有效代码评论。
  • 踊跃分享个人知识与经验。
  • 对已有代码的有效重构。
  • 发现或修复系统现有错误。
  • 抽取通用代码,减少重复编码现象。
  • 使现有重复性工作自动化。
  • 帮助团队成员解决技术难题。
总字数: 1,325 字  最后更新: 4/12/2022, 7:42:14 PM