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

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
  • 属性值设置问题,比如确认时间设置问题、预计结束时间早于流转至开发中时间等
  • 父子状态问题
    • 父需求已完成,但是子需求还有未完成
    • 子需求已全部流转至开发中,而父需求还没有流转至开发中

总结

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

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



http://www.chinasem.cn/article/772773

相关文章

Java内存泄漏问题的排查、优化与最佳实践

《Java内存泄漏问题的排查、优化与最佳实践》在Java开发中,内存泄漏是一个常见且令人头疼的问题,内存泄漏指的是程序在运行过程中,已经不再使用的对象没有被及时释放,从而导致内存占用不断增加,最终... 目录引言1. 什么是内存泄漏?常见的内存泄漏情况2. 如何排查 Java 中的内存泄漏?2.1 使用 J

高效管理你的Linux系统: Debian操作系统常用命令指南

《高效管理你的Linux系统:Debian操作系统常用命令指南》在Debian操作系统中,了解和掌握常用命令对于提高工作效率和系统管理至关重要,本文将详细介绍Debian的常用命令,帮助读者更好地使... Debian是一个流行的linux发行版,它以其稳定性、强大的软件包管理和丰富的社区资源而闻名。在使用

Linux中Curl参数详解实践应用

《Linux中Curl参数详解实践应用》在现代网络开发和运维工作中,curl命令是一个不可或缺的工具,它是一个利用URL语法在命令行下工作的文件传输工具,支持多种协议,如HTTP、HTTPS、FTP等... 目录引言一、基础请求参数1. -X 或 --request2. -d 或 --data3. -H 或

Docker集成CI/CD的项目实践

《Docker集成CI/CD的项目实践》本文主要介绍了Docker集成CI/CD的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录一、引言1.1 什么是 CI/CD?1.2 docker 在 CI/CD 中的作用二、Docke

SpringBoot使用minio进行文件管理的流程步骤

《SpringBoot使用minio进行文件管理的流程步骤》MinIO是一个高性能的对象存储系统,兼容AmazonS3API,该软件设计用于处理非结构化数据,如图片、视频、日志文件以及备份数据等,本文... 目录一、拉取minio镜像二、创建配置文件和上传文件的目录三、启动容器四、浏览器登录 minio五、

IDEA中的Kafka管理神器详解

《IDEA中的Kafka管理神器详解》这款基于IDEA插件实现的Kafka管理工具,能够在本地IDE环境中直接运行,简化了设置流程,为开发者提供了更加紧密集成、高效且直观的Kafka操作体验... 目录免安装:IDEA中的Kafka管理神器!简介安装必要的插件创建 Kafka 连接第一步:创建连接第二步:选

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

基于MySQL Binlog的Elasticsearch数据同步实践

一、为什么要做 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品、订单等数据的多维度检索。 使用 Elasticsearch 存储业务数据可以很好的解决我们业务中的搜索需求。而数据进行异构存储后,随之而来的就是数据同步的问题。 二、现有方法及问题 对于数据同步,我们目前的解决方案是建立数据中间表。把需要检索的业务数据,统一放到一张M

跨国公司撤出在华研发中心的启示:中国IT产业的挑战与机遇

近日,IBM中国宣布撤出在华的两大研发中心,这一决定在IT行业引发了广泛的讨论和关注。跨国公司在华研发中心的撤出,不仅对众多IT从业者的职业发展带来了直接的冲击,也引发了人们对全球化背景下中国IT产业竞争力和未来发展方向的深思。面对这一突如其来的变化,我们应如何看待跨国公司的决策?中国IT人才又该如何应对?中国IT产业将何去何从?本文将围绕这些问题展开探讨。 跨国公司撤出的背景与