模型

  • 解决的问题是对已经实施了敏捷的组织进行评估,并给出建议

  • 每个维度具有 6 个级别,评估维度 5 个,以及参考基线,包括一些指标的最小集。

    • 组织架构

    • 交付迭代管理

    • 技术实践

    • 团队文化

    • 沟通和协作

  • 成熟度分级

    • 5 理想,团队已经能自主持续优化
    • 4 成熟,团队运行的非常好
    • 3 良好,团队能稳定运行,但是还有改进空间
    • 2 一般,团队满足部分敏捷要求,依然需要改进
    • 1 不足,团队已经有一些敏捷工作方式,存在较多问题
    • 0 初始,没有任何敏捷实践
  • 诊断的方法

    • 定量
      • 人员访谈
      • 实地实物考察
    • 定性
      • 问卷调查表
      • 数据收集
  • 输出件

    • 访谈日志
    • 维度打分表
    • 汇报 PPT

维度的特征

通过一些具体特征,描述敏捷实践的成熟度。

组织架构

  • 团队
    • 是否是特性团队
    • 团队人数
    • 团队不同角色人员职责是否清晰
      • PM
      • PO
      • TL
      • BA
      • QA
      • DEV
      • UX
  • 考核目标
    • 团队成员的汇报路线是否一致
    • 团队成员是否统一考核,有一致的目标
    • 团队责任是否共通承担
  • 人员梯队
    • 人员建设是否具有梯队性,PM、Tech lead 调动是否有破坏性的影响
    • 团队成员是否有明确的发展方向和路线

产品需求分析

  • 产品是否有明确的调研分析实践
    • 包括竞品分析
    • 市场分析
    • 客户群定位
    • 痛点分析
    • 用户画像
    • 可量化和验证的目标
    • 产品发展里程碑
  • 是否对产品有反馈机制
    • 用户测试
    • 根据运营数据调整
  • 是否会以 MVP 快速验证产品
  • 是否有度量,是否以度量驱动开发

交付迭代管理

  • 需求管理
    • 业务方是否参与迭代过程,并及时给出反馈
    • 使用用户故事传递需求,并有明确的验收条件
    • 验收条件和测试对齐
    • 使用电子工具管理
  • 敏捷计划
    • 是否以迭代的形式交付
    • 每个迭代有明确的交付计划和目标
    • 所有的需求(变更)都是通过单一的Product Backlog来管理
    • 需求/任务按照业务价值排序,并可动态调整
  • 迭代交付
    • 以何种频率进行产品发布
    • 迭代过程中有明确的 DoD,团队成员可以遵守 DoD 去协作
    • 相对稳定的迭代速率
  • 可视化
    • 团队的工作目标,任务可视化,且在每个迭代更新
    • 迭代中的风险、依赖等问题和图表可视化,且经常更新
    • 迭代速率可视化
    • 工程实践结果通过可视化方式进行展现

技术实践

  • 设计和开发

    • 团队已经制定了编码规范并且能够执行
    • 定期列出技术债,并排优先级,在日常工作中偿还技术债
    • 有明确的接口技术规范。例如RESTful
    • 跨模块/团队开发时,有接口设计文档,并且有版本化管理
  • 代码评审

    • 有代码评审活动
    • 代码检查单,用于自查
    • 代码评审结果中的问题能够被及时修复
  • 持续集成

    • 代码静态分析工具是否整合在持续集成工具上
    • 提交后进行自动的构建与测试
    • CI 构建失败问题,开发团队能够第一时间修复
    • 配置、脚本、测试代码等代码是否全部代码化
    • 基础设施是否足够自动化
    • 基于主干的开发,并小步提交
  • 持续部署

    • 滚动发布
    • 金丝雀发布(蓝绿部署)
    • 每个环节有健康检查,健康检查不通过自动回滚,部署失败
  • 质量保证

    • 代码静态分析
    • 测试参与整个迭代周期
    • 测试是否有用例产出
    • 单元测试
    • API 测试
    • 自动 E2E 测试
    • 性能测试

团队文化

  • 持续改进
    • 敏捷运作过程中有对浪费项的识别和分析
    • 每个迭代执行回顾会,并识别改进措施
    • 业务目标/研发效率/研发质量(JIT)度量并制定改进目标
    • 进行周期性的目标设定和改进,例如缺陷密度值
  • 交流分享
    • 在部落内/小组内定期贡献话题分享
  • 职责共享
    • 成员明确自己和其他成员的任务瓶颈,并主动上报
    • 团队成员主动参与各种日常活动,并积极提供建议
    • 代码公有制,团队主动修复 CI

沟通和协作

  • 会议
    • 站会能否高效完成
    • 回顾会议是否有明确改进项目,并被监督执行
    • 计划会议是否提前准备
    • 需求澄清会议是否关键角色都有参加
  • 沟通
    • 是否是以特性团队的方式沟通和协作,重沟通轻文档
    • 面对面沟通,BA-DEV-QA 都坐在一起
  • 知识传递
    • 知识沉淀,通过 wiki 平台维护各种文档
    • 是否有 onboarding 培训
    • 测试用例是否能持续更新和维护
    • 项目 readme 是否详细
Last Updated:
Contributors: lin