软件项目需求变更频繁,如何做好有效的需求管理和规划

论软件需求管理 本文以我参与的“xx省健康促进与教育信息化平台”系统项目建设为例,讨论软件开发中需求管理的有关知识及实际应用过程。 阅读详情


概述

围绕项目需求变更频繁,如何做好有效的需求管理和规划,本文从背景、问题分析、解决措施、如何进行需求结构化管理?如何进行需求优先级管理?如何避免重要需求遗漏?几个方面进行了细致解答。全程干货。
背景

不管是项目型软件开发还是产品型软件开发,需求变更频繁都是影响研发效能的第一号因素,在2019年中国DevOps现状调查报告中也可以发现,超半数企业认为需求的频繁变更是阻碍软件按时交付的主要原因。解决或缓解需求变更频繁带来的影响,是势在必行的重要工作。

问题分析

由于每家企业的情况不同,包括客户合作方式、人员能力水平、研发流程等各方面的差异,同样是需求变更频繁,所体现出来的具体症状却有所不同,导致问题发生的根因也可能不同,所应采取的措施也需要根据实际情况来选择。根据我们的观察以及与企业交流的经验发现,一般都体现为如下几种情况,接下来我们结合这些情况的部分实例来分析:

    第一种情况:需求杂乱、经常变更,难以管理;
    第二种情况:领导或客户时不时地要把某些需求提前,打乱了开发计划;
    第三种情况:做着做着发现有些需求遗漏了;

【第一种情况】软件项目前期结构清楚,开发到后期,需求变化多而细,如何管理,如何规划。困扰我们的是前期需求不明确、不完善,导致后期需改动,需求需要发生变更。而使用DevCloud的项目管理的支持不够。

我们发现出现这种情况,往往跟客户未能正确使用需求规划有一定关系,存在着需求层次划分不清晰、缺少规范机制等问题。例如,某客户规划一个用户登录功能,按照下图所示规划需求。用户会将其中管理员登录的Task放在第一个版本中发布,后期又增加了一个手机号登录的需求,设置成Task放在第二个版本中发布,这样一个Story里面存在多个不同版本(或迭代)发布的Task,不方便管理。由此我们可以将这个问题的根因定性为如何进行需求结构化管理的问题:

    没有区分跟随项目进展而持续产生的碎片化需求和系统/产品持续完善的功能特性;
    对DevCloud提供的Epic-Feature-Story的需求结构理解有误,未能正确使用;

【第二种情况】软件项目进行过程中,领导需要提拉需求,在敏捷研发模式中该如何去操作?

提拉需求的意思也就是要将某些需求的优先级提高,要求团队先实现它们,因而我们将此问题定性为需求优先级管理的问题。解决此问题,我们需要了解:

    为什么领导会要提拉需求?如果是合理的,那么我们就应该提升响应能力、优化工作安排流程,使得优先级调整对研发进展带来的影响最小化,且我们能够尽快地响应领导需要,先交付被提拉的需求;
    这种情况发生频率有多高?如果是经常发生,那就是一种常态,而且是一种不好的常态,那我们需要去思考是什么导致了这种常态发生,并考虑如何从流程、制度、协作模式或人员能力等方面去做调整,减少过程中提拉需求情况的发生;如果是偶尔发生,那就可以特事特办,为例外情况调整流程、制度反而会加重常态工作的负担,没有必要;
    需要提拉的需求有无共性特点?比如是否都跟某个客户有关,或者跟某个功能域(如退款)有关?如果能够找到共性,那我们就可以针对这些共性去思考针对性的解决方案。

【第三种情况】由于外界原因经常会临时增加一些紧急需求,并且这是目前常态

临时增加需求,首先是一个如何处理突发需求的问题;紧急需求,也就是说需要马上就做,而且是插队,那就不仅仅是紧急,肯定也是重要的需求,不然不需要插队先做,所以这还涉及到需求优先级管理的问题。但是当两种情况合在一起,我们需要将它定性为是重要需求遗漏的问题,反问一句就是 —— 为什么这些紧急重要的需求无法更早预见?同样的,我们需要了解:

    具体是哪些外界原因?这些原因是否有共性,有的话,那就针对性处理;
    增加的需求有无共性特点?有的话,可以针对性处理;
    临时增加有多临时?我们是否有提高或改善响应能力的空间,如果我们可以更快调整和响应,使得这些临时需求对我们产生不了什么影响,那么这个问题也就不再是问题了;
    既然是常态,为何我们的流程没有做出调整去应对?是调整过流程或工作方式,还是无法解决问题,还是说不知道该怎么调整流程或工作方式去适应?

解决措施

综上,前面几种参考情况经分析后得出了根因,基于这些根因,我们将所要解决的问题重新描述如下:

    如何进行需求结构化管理?
    如何进行需求优先级管理?
    如何避免重要需求遗漏?

如何进行需求结构化管理?

首先,并不是说任何情况下都需要进行需求的结构化管理。只有在需求较多、且需求之间存在关联,而且即便是已经实现的需求也需要进行一定的管理、维护的情况下,我们才需要去思考需求结构化管理的问题,此时,我们需要使用DevCloud提供的Scrum项目模板,因为里面有Epic-Feature-Story的需求结构,以及需求规划功能可以辅助我们进行需求的结构化管理。那么我们应该以什么为脉络来建立这个结构呢?这就意味着,我们的需求结构化管理,需要以产品或系统的功能特性的脉络为依据。而软件项目管理所需要关注的版本、客户、模块等信息,则可以通过需求的不同属性甚至标签等方式来实现。

简单来说,可以通过如下三个步骤来完成:

    针对产品或系统建立DevCloud项目
    确立Epic-Feature-Story的需求结构
    对不同模块以及版本的管理,可以通过工作项的属性来进行管理

如何进行需求优先级管理?

需求优先级的管理,其实是为了帮助我们确定先做哪个需求后做哪个需求,从而可以最大化我们的回报、最小化我们的风险或投入。要做好优先级管理,或者更直接来说是优先级顺序管理,我们需要做到如下几件事情:

    确定优先级模型:需要考虑的因素以及因素的综合判断原则,比如Kano模型;
    排定需求优先级顺序:因素的具体量化和排序标准,例如成本收益法是按照收入还是按利润的多少来排序;
    调整需求优先级顺序;
    改进优先级模型:根据反馈调整模型或模型的落地实施细节,以提升效果;

如何避免重要需求遗漏?

根据重要需求遗漏的事前、事中、事后的不同时间点,我们可以采取不同的措施。参照八二原则,我们需要确保常态问题有对应的处理方式,软件项目成员按照既定方案进行处理即可,而特殊情况要有应急机制指导现场处理、事后再复盘总结。

    事中的处理:按照常规做法进行处理,或是特殊情况特殊处理,先解决眼下的问题;
    事后的处理:基于模型或思路进行复盘,并落实为新的常规做法或特殊情况处理方式;
    事前的处理:明确如何区分常规情况或特殊情况,并制定相应的处理方式或应急机制;

参考附录
相关文章

    敏捷联盟网站上的Epic术语解释:https://www.agilealliance.org/glossary/epic
    维基百科上的Kano模型词条:https://en.wikipedia.org/wiki/Kano_model

相关书籍

    Mike Cohn:《用户故事实战》
    杰拉尔德·温伯格:《成为技术领导者》
    邱昭良:《复盘+:把经验转化为能力》
————————————————
版权声明:本文为优快云博主「华为云」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/devcloud/article/details/100744419

如果一个项目需求经常变更,如何进行管理? 简单的软件工程文档,如果一个项目需求经常变更,如何进行管理? 立即下载

相关推荐

BitLocker磁盘锁定解决方法

摘要:本文介绍了BitLocker加密磁盘被锁的两种情况及解决方法。对于系统盘锁定,建议在微软账户中查找48位恢复密钥;数据盘锁定可尝试密码或恢复密钥解锁。若密钥丢失,可通过IT支持或数据恢复服务尝试解决。预防措施包括妥善备份密钥到微软账户和离线位置,避免随意更改系统硬件配置。BitLocker安全性高,恢复密钥是解锁关键,提醒用户务必做好备份以防数据丢失。(148字)

yueke06442300的专栏 2672

开发人员如何应对频繁更改的需求

做为一个开发人员除了Bug让人头疼外,而一个不靠谱的策划更让人头大。为什么?因为他写的需求文档变来变去,将朝令夕更发挥到了极至。 那么做为开发人员要如何应对这种局面呢?甩袖子不干?这当然可以。但只要你继续做开发就无法保证下 一个需求文档是一层不变的。而要碰到一个不改需求的策划是很难很难的。因为策划面对的是一个个不停变化需求的客户。 那么碰到总是变化的需求要怎么办呢? 首先要仔细的阅读需求文档。真正的了解接下来要实现的具体功能。有不清楚之处一定要向策划人员了解清楚。接下来就着手开发吗? 不!接下来你要好

hdn5855的博客 1640

手把手教你用HI3516CV610搭建智能安防摄像头(附完整开发资料)

本文详细介绍了基于海思HI3516CV610 SOC搭建智能安防摄像头的完整开发流程,包括硬件选型、系统架构设计、开发环境搭建、智能分析功能开发及系统调优。通过实战案例,展示了如何利用内置NPU实现人形检测和异常行为分析,并提供了量产测试方案,帮助开发者快速完成智能摄像头项目。

backprop5master的博客 540

如何应对频繁的需求变更?

需求变更带来危机和机遇 需求的变更发生在任意的一个项目过程,它针对的是一个过程的影响,进而给整个项目带来重大甚至致命性的影响,轻则延期发布,重则分崩离析。 作为项目经理,要理解一个概念:项目的铁三角(范围S、进度T、成本C),当然也可以说是项目的四要素:范围、进度、成本和质量。 S、T、C三者之间存在强烈的制衡关系,当你需要扩大/变更范围(也就是需求边界)的时候,一定会给进度和资源的投入带来影响,变更的范围越大变更的频率越高,则对进度和资源的影响越大,也就是你不要奢望“又想马儿跑,又不给马儿吃草”。由

cherry的专栏 1689

drm 之modes

#define _GNU_SOURCE #include <errno.h> #include <fcntl.h> #include <stdbool.h> #include <stdint.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/mman.h> #include <time.h&...

u012794472的专栏 3716

ANSA二次开发在线帮助:ANSA和μETA API文档

  为了方便大家学习ANSA二次开发,我将ANSA和μETA二次开发的官方文档整合到了我的个人网站CAECoder中,大家点击ANSA和μETA API官方帮助文档进行访问即可查看。   本站也将开展对ANSA和μETA API文档的翻译工作,请大家持续关注! ANSA和μETA API文档   ANSA和μETA脚本接口是一个应用程序编程接口(API),允许开发人员访问ANSA和μETA核心功能和数据。   ANSA和μETAAPI是Python编程语言的扩展。 Python Python简.

CAECoder 4320

需求频繁变更,测试怎么办?

参考极客时间董建琴老师讲解的《怎么有效解决3个测试痛点》 文章目录前言一、需求变更后的测试痛点1. 不能精准确认开发改动的影响面2. 需求变更影响测试环节3.确定测试优先级二、如何解决?1.如何精准确认开发改动的影响面?2.如何降低需求变更对测试环节的影响?3.如何确定测试优先级?总结 前言 现在的公司,需求是由各个业务部门提出的,需求常常有一些或大或小的改动,而改动后的产品就意味着要进行回归测试,回归测试的测试范围大家都知道:①修改的功能②修改的功能影响的其他范围。 因此,在这种情况下,怎么精确的把.

qq_43844012的博客 3401

知识图谱实战:从零搭建一个企业级金融风控图谱(附完整代码)

本文提供了一份从零构建企业级金融风控知识图谱的实战指南。通过使用Neo4j图数据库和Python,手把手教你整合多源数据、设计数据模型,并利用Cypher查询与图算法挖掘隐藏的关联风险与欺诈网络,附有完整代码,助力金融科技从业者实现从数据孤岛到全局风险洞察的升级。

weixin_29095587的博客 357

为什么软件需求会频繁变动

在我看来软件需求变更范围更为宽泛,贯穿开发周期,直到后期维护,就是因为有需求存在,导致我们的开发规模越来越大,软件更难维护,如果只是一锤子买卖,就不会衍生出软件危机;市场:主要来自于为了商机或者业务规模调整等,比如原来是线下转为线上,或者为了促销采取各种促销活动,比如秒杀,会员日、新注册用户福利等一系列活动,这时候我们的软件开发人员就叫苦不迭了,原来设计的用户账号模型被打破了,要支持第三方账号,微信,QQ,支付宝等社交账号接入,这时候用户体系得做一番调整,存在多个用户账号等;

u011360045的博客 1228

【DaVinci Developer专题】-23-IDT高阶应用:结构体类型的数组

共8页 目录 1 创建一个Record IDT 2 创建一个Array IDT 3 创建一个S/R Port Interface 4 创建一个Constant 5 导入CFG生成代码的总结 6 结尾 <--返回「实战篇」博文-总目录--> <--返回「Autosar从入门到精通-实战篇」专栏主页--> 关键字: 缩略语/术语 含义 DEV DaVinci Developer .

「汽车电子助手」的博客 1668

ComfyUI整合包V8中文版最新版介绍

和普通AI绘图网页不同,它把图像生成的每一个步骤拆分成一个个"节点",用连线把它们串起来,形成工作流。里面包含ComfyUI内核、Python运行环境、常用插件、部分预置模型,还有一个叫"绘世启动器"的图形界面管理工具。网上的对比数据显示,WebUI最低需要4G显存,ComfyUI最低3G显存就能运行。可以在里面管理插件、切换模型路径、设置显存模式、查看日志报错,还有"疑难解答"功能,遇到报错可以先扫描一下看是不是已知问题。原版ComfyUI的界面是英文的,右键菜单、节点名称全是英文。

欢迎来到鸾姝淡月博客,专为程序员和编程爱好者打造的技术博客。我们分享编程语言趋势、开发工具、编程哲学、职业发展等,助你掌握新技术,优化技能,激发编程热情。 5225

【DevCloud · 敏捷智库】软件项目需求变更频繁,如何做好有效的需求管理和规划?

概述 围绕项目需求变更频繁,如何做好有效的需求管理和规划,本文从背景、问题分析、解决措施、如何进行需求结构化管理?如何进行需求优先级管理?如何避免重要需求遗漏?几个方面进行了细致解答。全文字数:2662 字,预估阅读时间:_7 分钟。全程干货。 背景 不管是项目型软件开发还是产品型软件开发,需求变更频繁都是影响研发效能的第一号因素,在2019年中国DevOps现状调查报告中也可以发现,超半数企业认...

ooaaa23的博客 376

uniapp - 解决报错 canvasToTempFilePath: fail canvas is empty 画布为空错误,生成海报相册、二维码、条码、裁剪/拼合操作图片报错,加了this还是报错

uni-app,h5移动端网页,微信小程序,支付宝小程序,Android安卓,苹果ios,app,nvue,canvasToTempFilePath:失败画布为空,报错,canvasToTempFilePath:failcanvasisempty,不支持2d,还是报错,this,加上this还是报错,vue3没有this怎么办?海报,保存到手机相册,生成二维码,显示条码,图像裁切,图片处理,canvas报错,无法解决,还是fail,依然报错,传了this也不好使,Uniapp小程序,如何解决这个问题

🏆 前端领域优质创作者 4706

项目需求变更有效管理

项目需求变更有效管理 最近和朋友吃饭,讨论到软件测试方面的问题,这位仁兄也是经验不足,像我抱怨好不容易按照之前评审的需求写完Case,现在又变更这么多需求,又得重新梳理需求写Case。其实参与过项目研发的人员都非常清楚,项目一旦启动,需求变更也会随之而来,需求变更是无法避免的。 不瞒大家,像博纳移动这么强大的研...

weixin_34388207的博客 168

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

为什么需求管理对于软件开发过程至关重要

需求管理是指在软件开发的整个生命周期内,对需求的全过程进行有效的管理。它涵盖了需求的收集、分析、验证、优先级排序和变更管理等多个方面。需求管理的主要作用是确保团队对项目目标有清晰的理解,并且能够在开发过程中随时调整方向,以满足不断变化的业务需求。确保项目方向与目标一致在项目开始之前,需求管理能够帮助项目团队明确项目目标和开发方向。通过对需求的详细梳理和分析,团队能够清楚地了解客户或最终用户的真实需求,从而确保产品开发始终朝着正确的方向前进。这一过程可以减少项目中的不确定性,避免开发过程中的方向偏差。

csssbad的博客 1100

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

项目积压需求项目计划_需求变更频繁,项目经理如何做好需求管理?

项目实施过程中,项目经理常常面临一个重大挑战——需求变更。需求变更无处不在,市场条件变化、新业务出现、战略目标调整、客户需求修改、资源限制等,都会造成需求变更。需求变更会影响项目的时间、成本和质量,对整个项目和团队成员都是严重的冲击。中国信通院发布的「中国 DevOps 现状调查报告(2019年)」中也可以发现,59.68%的企业认为需求的频繁变更是阻碍软件按时交付的主要原因。为了帮助项目经理顺利...

weixin_26969967的博客 449

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

软件项目管理痛点:进度失控、需求变更的应对策略

建议构建集成化工具链:通过API接口打通需求管理(Jira)、进度控制(MS Project)、测试跟踪(Zephyr)等系统,建立统一数据中台。本文通过实证研究揭示:建立结构化需求管理流程(变更控制委员会+追溯矩阵)、实施混合估算模型(三点估算+蒙特卡洛)、构建集成化工具链(API中台+可视化看板)、完善分层培训体系(CSM+PMP+RE)四重策略,可使项目进度偏差率降低至5%以内(),建立需求变更双签制度(产品经理+技术负责人),设置跨职能虚拟团队(Squad)进行端到端协作(

2501_92476903的博客 1220

《有效管理需求变更对项目进度影响的策略》

项目团队应重视需求调研与分析,建立严格的需求变更控制流程,及时调整项目计划,并加强沟通与协调,以确保项目能够顺利推进,按时交付高质量的产品。例如,在需求规格说明书中详细描述软件的登录功能,包括支持的登录方式(用户名密码、手机验证码、第三方账号授权等)、密码加密方式、登录失败的提示信息等,避免因需求描述不清晰而导致的变更。例如,在开发一款教育软件时,通过与教育专家、学生、家长等进行深入访谈,了解他们的需求和期望,提前规划好软件的功能模块,避免后期因需求不明确而导致的变更。

weixin_45130347的博客 538

需求变更与范围蔓延:软件项目管理的双重挑战

需求变更和范围蔓延是软件项目管理中不可避免的问题,但通过有效的管理策略和灵活的项目管理方法,项目团队可以最大程度地减少这些问题对项目的影响。建立需求变更控制流程、定期与客户沟通、明确项目范围、采用敏捷开发等措施将有助于项目的成功交付。未来,随着技术的不断发展,项目管理方法也将不断演进,项目团队需要保持学习和适应的能力,以应对日益复杂的项目环境。

xgggyxgs的博客 554

软件需求管理过程详解

需求管理是软件工程和系统开发中的核心过程,它确保项目始终围绕正确、稳定且可追溯的需求进行。在复杂系统开发中,需求往往动态变化,需求管理通过系统化的方法控制变更、维护版本、建立追溯关系,从而降低项目风险、保证交付质量。它是连接业务目标与技术实现的桥梁,贯穿项目全生命周期,对项目成功具有决定性作用。

谦与谦寻的神隐 1291

软件实施项目需求管理难点解决方案

软件实施项目需求管理的四大核心难点——需求不明确与模糊表达、需求变更频繁且难以控制、多用户群体需求冲突协调困难以及非功能需求常被忽视——本质上是需求管理与项目管理的系统性问题。通过引入结构化需求调研方法、建立正式变更控制流程、构建跨部门协调机制以及强化非功能需求管理,可以显著降低需求管理风险,提升软件实施成功率。未来,随着AI技术的发展,需求管理将向智能化方向演进。AI辅助的需求理解、变更影响预测和利益相关者分析将成为可能,进一步提升需求管理的效率和准确性。

qiyong的专栏 1187

如何应对IT项目中的需求变更?

应对IT项目中的需求变更不仅需要系统化的管理流程,还要具备灵活应对的能力。通过明确的需求变更流程、加强沟通与协作、结合敏捷开发方法,项目团队可以有效应对需求的变化,确保项目在保持质量和进度的同时,满足客户需求的不断变化。最重要的是,团队要保持敏捷和灵活,在变更面前能迅速做出反应,同时不失项目的战略目标和最终成果。

csssbad的博客 1210

浅析从游戏开发看需求管理

 游戏作为一种特殊的软件产品,比普通的软件开发更为复杂,因此,游戏项目的管理较之一般软件项目也更具挑战性。在软件工程中,需求管理是关乎项目生死存亡的首要环节。本文将透过游戏研发管理的视角,重点探讨如何通过有效的需求管理保证项目成功。   游戏研发项目特点  项目整体复杂性强  游戏是一种特殊的软件,尤其是大型网游,通常比一般的软件开发规模大、人数多、周期长、复杂程度高。首先,正规的游戏

sunhope的专栏 876

为什么要做需求管理

正如管理大师彼得·德鲁克所言:“企业的目的在于创造客户。”而需求管理正是实现这一目的的重要手段。它不仅能明确项目目标、优化资源配置、提高团队协作效率、降低项目风险、提高客户满意度,还支持决策制定、促进持续改进、增强项目的可控性、提高项目的透明度、提升竞争优势。在当今复杂多变的商业环境中,需求管理的重要性日益凸显。企业应当重视并不断完善需求管理实践,以确保项目的成功和组织的持续发展。只有这样,才能在激烈的市场竞争中立于不败之地,实现长期的战略目标。

xgggyxgs的博客 752
上一篇: 华为云DevCloud会员中心上新啦!做任务领码豆,好礼轻松带回家!
下一篇: DevOps on DevCloud|如何实现应用接口的混合驱动测试
devopscsdn
博客等级 码龄10年 124粉丝 205原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值