研发效能工程实践-精益需求管理

2024-03-04 09:40

本文主要是介绍研发效能工程实践-精益需求管理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

什么是精益管理

精益管理是源于精益生产,是美国麻省理工学院教授詹姆斯.P.沃麦克等专家通过"国际汽车计划(IMVP)对全世界17个国家90多个汽车制造厂的调查和对比分析,认为日本丰田汽车公司的生产方式是最适用于现代制造企业的一种生产组织管理方式
精益管理由最初的在生产系统的管理实践成功,已经逐步延伸到企业的各项管理业务,也由最初的具体业务管理方法,上升为战略管理理念。它能够通过提高顾客满意度、降低成本、提高质量、加快流程速度

精益思想

沃麦克、琼斯和鲁斯(Womack,Jones&Roos,1996)在《精益思想》中指出,所谓精益思想就是根据用户需求定义企业生产价值,按照价值流组织全部生产活动,使要保留下来的、创造价值的各个活动流动起来,让用户的需求拉动产品生产。而不是把产品硬推给用户,暴露出价值流中所隐藏的muda,不断完善,达到尽善尽美

识别价值流

价值流是指原材料转化为成品赋予价值的过程,识别出价值流,我们测量需求的流动速度,以及如何改进价值流提升需求交付效率

确保价值流的流动性

在精益思想中,等待就是浪费。所以我们为了确保价值流的流动性,最大限度的降低等待。如果将大批量的生产改进为单件流,加速流动性

确保价值流的拉动性

快速迭代,快速试错,以用户为导向改进产品,非常切合当下的互联网公司产品开发模式

价值流完善

精益思想还倡导的是不断改进完善价值流,提升价值流的速度。使用价值流分析法,将流程中的等待流程发掘出来优化

精益需求管理

传统的需求管理,需要花费大量的时间,对产品或项目进行大批量的需求分析,开发周期长,各个流程环节的时间长,某些阶段等待时间长

精益需求观点

  • 倡导小批量、条目化的方式管理需求,且需求的规模通常都比较小,价值流的流动性快,使得产品可以快速迭代、快速验证
  • 精益需求倡导使用故事树的结构来管理需求,将需求按颗粒度抽象层级来管理需求
  • 以价值流分析来提升改进研发流程

精益需求管理实现

需求层级设计

前面提到过,精益需求倡导使用故事树的结构来管理需求,因此我们需要有一个颗粒度抽象的层级,在我们团队中常使用3层或4层结构来划分

需求颗粒度设置

  • EPIC:通常指一个版本,这个一般由产品编写
  • Feature:一个版本中的一项特性,比如我们经常看到一个软件更新后会列出一个列表说更新那些功能,这个也是最小可交付的需求颗粒度,比如说我们要做一个APP,其中要有一个登录功能,那么这个登录功能就可以是一个Feature,因为一旦这个Feature完成,意味着我们可以交付登录功能。Feature一般也是应该由产品编写
  • Story:一个Feature往往是比较大的颗粒度,可能实现它的时间比较长,所以我们要把它拆解成小的故事来实现,也就是精益管理倡导的将大批量需求用小批量来管理,可以加快价值流的流动性。这个一般由开发人员拆解Feature编写。比如拿上边的登录功能为例,这里可能就由前端开发工作和后端开发功能,可以拆分称两个,Story也是我们在代码管理时关联的主要对象,也就是说你提交的代码应该关联到Story
    • 实现登录API接口
    • 实现登录页面以及接口交互
  • Task(可以不需要):我们把它称为任务,这个一般不是必要的,Task是比小故事更小

需求层级

  • EPIC -> Feature -> Story -> Task

需求详情设计

标题

标题应该是一个动宾结构来表示干一件啥事儿,比如:实现登录API接口,实现是一个动词,登录API接口就是宾语

描述

单有标题是不够的,需求单不止给自己看,更是要给其他人看,尤其是测试人员,所以必须要描述清楚。描述更多是表达用户想要的最终实现出来的效果

验收标准

测试人员要十分关注的东西,验收标准说明了在哪些场景下应该达到什么样的效果。它的大致结构如下

假定/假设前置条件动作期望结果

需求属性

为了方便我们后续做价值流分析,我们必须要监控某一些需求的需求

属性取值
标题动宾结构简要描述
状态当前流转的状态节点,参照流程设计中的状态节点
迭代需求所属的迭代,如果使用迭代开发模式
优先级高、中、低
预计开始预计开始开发时间
预计结束预计结束开发时间
开发人员开发责任人
需求颗粒度EPIC、Feature、Story、Task(非必须)
需求类型产品运营需求、技术需求、运营配置变更需求
确认启动时间真实的启动时间,避免在统计需求交付周期时取需求创建时间不准确
测试人员测试责任人
量化目标可能对哪些业务指标产生影响,当前该指标的数据是什么情况。预估上线后,这些指标的变化
量化目标达成情况远超预期、超过预期、符合预期、远低预期

需求流程设计

这里给出了需求状态流转的大致建议,如果没有专职测试人员,比如很多中台项目是没有测试人员的。那么可以走开发中->待测试->测试中->待发布这一流程
在这里插入图片描述

迭代开发

在精益需求管理中强调的是小步快跑,快速验证,快速响应。如果我们一个功能版本太大的话,不便于我们精确的掌握开发进度,这时我们可以将大的版本拆分为小的里程牌,然后按迭代的方式来管理需求,这样我们可以已更小的批量来管理需求

必要的培训

每个人对需求拆解的理解都不一样,因此要团队达成共识就必须要做好团队成员的培训工作,让大家在思想上形成统一的标准,这样才能更好的开展后续的工作。否则,标准不统一,那么效能度量的数据口径就不一致,也就是说统计数据将没有意义,也无法衡量团队价值流的流动性,无法完善和改进流程

需求管理工具

工欲善其事必先利其器,要想做好精益需求管理必须要有一款趁手的工具

  • 自研:灵活、可以和其他devops平台集成,方便后续整个研发流程效能度量
  • TAPD:基本的功能都有提供,部分功能要收费,有OpenAPI可以支持一定的集成
  • JIRA:老牌的工具,挺贵的
  • PingCode:支持私有部署、定制开发

这里也不说哪个好哪个不好,网上都可以很容易找到对比,找到一款适合自己就行

需求管理效能度量

精益需求管理中还倡导完善和改进流程,那么我们要如何才能完善和改进呢?当然我们要先准确度量

度量指标

需求开发周期(DeliveryTime)

  • 计算方式
    需求开发周期 = S t o r y 增量测试结束时间 − S t o r y 开发开始时间 需求开发周期 = Story增量测试结束时间 - Story开发开始时间需求开发周期=Story增量测试结束时间−Story开发开始时间
  • 统计周期:通常一个月
  • 作用:衡量团队开发速度

交付周期(LeadTime)

  • 计算公式
    L e a d T i m e = F e a t u r e 已接受时间 − F e a t u r e 确认启动时间 LeadTime = Feature已接受时间 - Feature确认启动时间LeadTime=Feature已接受时间−Feature确认启动时间
  • 统计周期:通常一个月
  • 作用: 评估团队交付速度

发布需求数

  • 计算公式
    发布需求数 = S u m ( 统计周期内达到已交付状态的 S t o r y ) 发布需求数 = Sum(统计周期内达到已交付状态的Story)发布需求数=Sum(统计周期内达到已交付状态的Story)
  • 统计周期:通常一个月
  • 作用:评估团队交付能力

流负载

  • 计算公式
    流负载 = S u m ( 团队未完成的需求 ) 流负载 = Sum(团队未完成的需求)流负载=Sum(团队未完成的需求)
  • 统计周期:全部
  • 作用:衡量团队当前的需求饱和度

价值流分析

上述的指标都是一些结果指标,但是要改进流程必须要找到流程中卡点的地方。价值流分析就是用来寻找卡点流程的方法。在需求流程设计章节中有一副图,里边用不同的颜色标记了,其中浅绿色代表有效节点,蓝色代表等待节点,深绿色代表完成,根据这些不同节点,我们可以绘制出价值流分析图
在这里插入图片描述
统计值是平均值,这样我们可以一目了然看到等待节点如果耗时很长,就需要分析原因,然后通过改进流程来缩短这个值

需求合规性

价值流分析准确的前提是需求单的属性值和状态流转都是合规的。如果不合规,那么统计数据就会失去意义,甚至会做出错误决策,因此还需要统计需求的合规性,常见的需求合规性问题

  • 停留开发中时间过短,开发没有按照实际情况及时流转状态
  • 需求层级设计问题,比如story下又挂了Feature
  • 属性值设置问题,比如确认时间设置问题、预计结束时间早于流转至开发中时间等
  • 父子状态问题
    • 父需求已完成,但是子需求还有未完成
    • 子需求已全部流转至开发中,而父需求还没有流转至开发中

总结

上述是我对于精益需求管理的一些看法,希望可以给大家提供一些参考。不对的地方同时也欢迎指正,一起讨论。

这篇关于研发效能工程实践-精益需求管理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:https://blog.csdn.net/fygkchina/article/details/128328218
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/772773

相关文章

MySQL 迁移至 Doris 最佳实践方案(最新整理)

《MySQL迁移至Doris最佳实践方案(最新整理)》本文将深入剖析三种经过实践验证的MySQL迁移至Doris的最佳方案,涵盖全量迁移、增量同步、混合迁移以及基于CDC(ChangeData... 目录一、China编程JDBC Catalog 联邦查询方案(适合跨库实时查询)1. 方案概述2. 环境要求3.

Linux进程CPU绑定优化与实践过程

《Linux进程CPU绑定优化与实践过程》Linux支持进程绑定至特定CPU核心,通过sched_setaffinity系统调用和taskset工具实现,优化缓存效率与上下文切换,提升多核计算性能,适... 目录1. 多核处理器及并行计算概念1.1 多核处理器架构概述1.2 并行计算的含义及重要性1.3 并

全面掌握 SQL 中的 DATEDIFF函数及用法最佳实践

《全面掌握SQL中的DATEDIFF函数及用法最佳实践》本文解析DATEDIFF在不同数据库中的差异,强调其边界计算原理,探讨应用场景及陷阱,推荐根据需求选择TIMESTAMPDIFF或inte... 目录1. 核心概念:DATEDIFF 究竟在计算什么?2. 主流数据库中的 DATEDIFF 实现2.1

Spring Boot集成Druid实现数据源管理与监控的详细步骤

《SpringBoot集成Druid实现数据源管理与监控的详细步骤》本文介绍如何在SpringBoot项目中集成Druid数据库连接池,包括环境搭建、Maven依赖配置、SpringBoot配置文件... 目录1. 引言1.1 环境准备1.2 Druid介绍2. 配置Druid连接池3. 查看Druid监控

Knife4j+Axios+Redis前后端分离架构下的 API 管理与会话方案(最新推荐)

《Knife4j+Axios+Redis前后端分离架构下的API管理与会话方案(最新推荐)》本文主要介绍了Swagger与Knife4j的配置要点、前后端对接方法以及分布式Session实现原理,... 目录一、Swagger 与 Knife4j 的深度理解及配置要点Knife4j 配置关键要点1.Spri

Spring WebFlux 与 WebClient 使用指南及最佳实践

《SpringWebFlux与WebClient使用指南及最佳实践》WebClient是SpringWebFlux模块提供的非阻塞、响应式HTTP客户端,基于ProjectReactor实现,... 目录Spring WebFlux 与 WebClient 使用指南1. WebClient 概述2. 核心依

MyBatis-Plus 中 nested() 与 and() 方法详解(最佳实践场景)

《MyBatis-Plus中nested()与and()方法详解(最佳实践场景)》在MyBatis-Plus的条件构造器中,nested()和and()都是用于构建复杂查询条件的关键方法,但... 目录MyBATis-Plus 中nested()与and()方法详解一、核心区别对比二、方法详解1.and()

Spring Boot @RestControllerAdvice全局异常处理最佳实践

《SpringBoot@RestControllerAdvice全局异常处理最佳实践》本文详解SpringBoot中通过@RestControllerAdvice实现全局异常处理,强调代码复用、统... 目录前言一、为什么要使用全局异常处理?二、核心注解解析1. @RestControllerAdvice2

Spring事务传播机制最佳实践

《Spring事务传播机制最佳实践》Spring的事务传播机制为我们提供了优雅的解决方案,本文将带您深入理解这一机制,掌握不同场景下的最佳实践,感兴趣的朋友一起看看吧... 目录1. 什么是事务传播行为2. Spring支持的七种事务传播行为2.1 REQUIRED(默认)2.2 SUPPORTS2

Java中的雪花算法Snowflake解析与实践技巧

《Java中的雪花算法Snowflake解析与实践技巧》本文解析了雪花算法的原理、Java实现及生产实践,涵盖ID结构、位运算技巧、时钟回拨处理、WorkerId分配等关键点,并探讨了百度UidGen... 目录一、雪花算法核心原理1.1 算法起源1.2 ID结构详解1.3 核心特性二、Java实现解析2.