摘要:需求蔓延是一种很常见的现象,设计阶段把需求框架想明白,其他方面基本就是人和人之间的问题了,这就需要软技能去消灭Gap,减少需求蔓延。

本文分享自华为云社区《如何避免敏捷开发中的需求蔓延》,作者:敏捷的小智。

需求蔓延是指产品需求范围已经规划好的情况下,后续发生了变化。

比如:A团队要做一款办公聊天软件,用于公司内部的日常业务沟通;按照产品设计的初衷,只要能聊天、发文档就OK了,但在多方要求下,产品逐渐增加了直播、朋友圈等非必要性功能,这就属于需求蔓延。

需求蔓延往往会让团队加班加点,疲于交付,更糟糕的是版本上线没几天,常用功能问题一堆,新增小功能没啥人用。

需求蔓延的原因

为什么会需求蔓延呢?

有人将需求蔓延的原因归于敏捷开发的“弱文档化”和“拥抱变化”,这点笔者并不赞同,因为需求蔓延在传统研发模式中也很常见。

为了解需求蔓延的根本原因,笔者和身边几个产品经理朋友讨论了一波,大概总结了如下几个原因:

• 上级领导或者甲方爸爸强势指派工作,产品经理压不住,只能硬着头皮把一些非必要性的需求放入管道,造成需求蔓延;

• 产品经理缺乏需求鉴别能力,在设计产品时遗漏了重要需求,导致开发阶段加入了很多必要性需求,同时夹带着非必要性需求,也就是需求蔓延;

• 产品经理只是按照用户的描述进行需求规划,没有更进一步挖掘用户的真实诉求,导致很多时候都在做无用功,这也属于需求蔓延。

如何避免需求蔓延?

识别产品的重要用户

破案片里常常有这么个场景:警察把案件相关人员的照片贴在墙上,随着墙上照片的增多,案件的中各方关系逐渐清晰,最后真相浮出水面。做产品也是一样的——提出产品需求的人来自多个部门,全面的识别出产品相关的重要用户,了解他们的需求和期望,可以避免需求在规划过程中出现的纰漏。

识别用户群体的方法可以先看是否有用户组织相关的料,通过资料去识别;或者通过影响地图、脑暴等方式去识别。然后通过权益利益方格,从用户群体中提炼出重要的、对产品交付有较大影响的用户,不同类型的用户管理策略可参考下图。

产品成功与否不是开发团队决定的,而是用户决定的。尽早的识别出产品的重要用户群体,并通过软技能与其搞好关系,双方合作一段时间后,对方通常会在某些需求或功能上做出一定妥协,从根本上减少需求蔓延,甚至还能提升产品经理/项目经理自身话语权,产品交付会更加顺利。反之,如果识别错了重要用户,则会事倍功半,需求蔓延基本上是板上钉钉的事情。

提前规划产品骨架,按优先级交付需求

敏捷开发中,除了识别清楚需求的来源,做好需求规划也是一个避免需求蔓延的方法。

敏捷开发不像瀑布开发——在设计阶段就将产品功能详细的罗列出来,敏捷开发为了应对变化,采用了迭代的方式进行需求规划,这使得很多人产生了误解——误以为敏捷没有一个需求全景规划。

敏捷使用迭代的方式进行需求规划,在初期会通过用户故事地图、MVP等方式对产品的主干功能进行规划,相当于构建了产品的骨架,在每个迭代基于当前要做的需求,进行细化拆分,比如下图(以华为云DevCloud “规划”功能为例),先通过思维导图的形式将产品的各项功能脉络梳理出来,每个模块具体细节功能在需要开发的时候进行拆分即可。

除了做好规划,排列需求优先级也有助于减少需求蔓延,团队要将精力集中在高优先级的需求交付,以保证做出的交付始终是有高价值的,至于低优先级需求,可以放缓交付节奏甚至移出需求管道。同样开发人员也应避免在低优先级的需求上过度交付,浪费资源。

频繁与用户交流,了解真实诉求

有时候一个人说出来的,和他真正想表达的,完全是两个意思,比如俩人见面寒暄一句“吃了么”,大家都知道这不是要请客吃饭,实际想表达的意思就是“你好”。现实生产中这种例子也很常见,用户提了很多很复杂的诉求,可能用户想要的并不是他提出来的,而是自己没想好到底要啥,或者没想好通过什么途径去实现自己的诉求,索性想到啥就提出啥,这时候用户说啥,开发团队就做啥,后期就容易引发需求蔓延。

产品经理/项目经理应该去加强与用户交流沟通的频率,同时探索用户的真实或最主要的诉求,来应对需求蔓延。

通过Scrum的评审会议,定期和用户对产品功能进行评审,也属于频繁与用户交流。评审会议上,通过演示产品,让用户去思考这到底是不是自己想要的,不是的话,我想要什么?是的话,接下来要做什么怎么做,同时产品经理也要对用户的反馈建议进行消化吸收,挖掘用户诉求,并定期找用户对接澄清,做到双方信息对称,避免被用户牵着鼻子走,最后需求蔓延。

总结

需求蔓延是一种很常见的现象,设计阶段把需求框架想明白,其他方面基本就是人和人之间的问题了,这就需要软技能去消灭Gap,减少需求蔓延。

点击关注,第一时间了解华为云新鲜技术~

需求蔓延,常见但不正常,教你如何破相关推荐

  1. 如何有效避免项目需求蔓延?

    如何有效避免项目需求蔓延?6种措施:   1.确定项目范围         (1)确定范围基线 在项目目标明确的基础上,所有干系人在完全了解项目需求后,建立需求范围基线(项目范围说明书.工作分解结构W ...

  2. 一文掌握需求评审常见难题及改进策略【一杯咖啡谈项目】

    在IT软件行业,软件需求是软件产品开发最重要的输入,需求风险也常常是软件开发过程中最大的一个风险. 降低需求风险的重要手段之一就是需求评审,但是需求评审是所有的管理评审活动中最难的,也是最容易被忽视的 ...

  3. 需求获取安排计划书_6分钟教你写一份融资计划书

    融资计划书于融资就像创业计划书是创业的敲门砖一样,融资计划书就是企业融资敲门砖.但在进行撰写的时候,可能会因为对计划不够了解,所以在步骤方面产生错乱,那么该如何对融资计划进行安排呢?建议参照以下的五个 ...

  4. 常见Win7优化误区,教你正确方法!

    谁不希望让自己的Win7系统跑得更快!然而,网上很多所谓的Win7优化秘笈不是忽悠就是照搬XP的优化技巧.例如,不使用Win7主题会让Win7节省那么一点资源,却牺牲了自己的体验为代价,得不偿失. W ...

  5. dcs程序流程图分析_常见DCS工艺流程图识别 教你正确读图

    本文 导语每一个项目在投标前都会经设计院设计工艺流程图,然后投标者依据流程图上标识的DCS控制点及设备连接线路和连锁来分析控制原理.但是对于刚刚接触DCS行业的人员,或非自动化专业人员,难免会遇到无法 ...

  6. 需求获取常见的方法是进行客户访谈,结合你的实践谈谈会遇到什么问题,你是怎么解决的?...

    关于用户访谈,我觉得它们既有效又快速.但是,优质的用户访谈需要技巧.如果方法不当只会困难重重而又无法解决问题. 经常碰到的问题:总是习惯性地询问用户想要什么,这只能给自己带来错误观点.只能获得用户所设 ...

  7. JavaScript常见数组方法,教你如何转置矩阵

  8. dcs程序流程图分析_常见DCS工艺流程图识别教你正确读图

    DCS符号含义 SH: PV scale high limit  标度高极限 SL:PV scale low limit标度低限度 PV:presses variable现场值 SV:setpoint ...

  9. 忘记安卓密码?教您轻松破解锁屏密码,解锁手机,简单易操作

    各种账号,无数的平台,为了安全起见,每一个账号和平台都需要设置不同的密码和账户名.因此,大家每天要记住的密码太多了,忘记一个或另一个是很正常的. 您可能想导出旧三星机的照片,却不记得旧手机的密码了,又 ...

最新文章

  1. 9月推荐 | 从近1000篇Python文章中精选Top10
  2. 我扔掉FPN来做目标检测,效果竟然这么强!YOLOF开源:你只需要看一层特征
  3. FPGA之道(84)功能仿真之Verilog Test Fixture
  4. springboot @ConfigurationProperties
  5. Redis进阶-Redis使用建议一二事
  6. python干啥用_用python内置函数能干些什么?
  7. .NET平台功能最强大,性能最佳的JSON库
  8. 8小时删除,这波资源碉堡了 ! @所有人
  9. $.post把表单对象传递过去_FormData对象
  10. BCG-MFC 库对《支持重新启动管理器》都做了些什么
  11. 宿主机172连接容器mysql_开发时从宿主机连接容器中的MySQL
  12. 十二、K8s job cronjob相关操作
  13. vue 插值表达式,v-cloak,v-text,v-html,以及v-bind,v-on
  14. 中断(一)—— 综述
  15. 从三方面分析,Java程序员如何晋升为高薪Java架构师?
  16. px4源码----位置估算(position_estimator_inav_params.h)
  17. 全球及中国焦磷酸钠行业“十四五”规划建议与创新环境分析报告2022-2028年版
  18. HDU6287 口算训练(唯一分解定理+二分)
  19. Android AOP 编程实践 javapoet + autoService
  20. The Physical Layer

热门文章

  1. Markdown完整语法说明
  2. Bootstrap 按钮状态提示
  3. CSS IE6躲猫猫Bug
  4. 学习笔记-工业相机与普通相机优劣利弊
  5. 项目周期一般多久_深圳app开发公司的软件开发要多久?
  6. matlab中基于十字形窗口的滤波算法,#215;字形滤波窗口在Matlab自适应中值滤波算法中的应用 - 21ic中国电子网...
  7. net 架构师-数据库-sql server-003-T-SQL 基本语句
  8. JS中,如何判断一个被转换的数是否是NaN
  9. Java并发编程之volatile变量
  10. JavaScript高级程序设计之什么是原型模式