一、MoSCoW模型是什么

MoSCoW模型是在项目管理、软件开发中使用的一种排序优先级的方法,以便开发人员、产品经理、客户对每个需求交付的重要性达成共识。

MoSCoW是一个首字母缩略词,代表:

  • M(Must have):必须有。这些是产品成功的关键任务功能,通常是MVP(最小可行产品)的功能,例如微信的聊天、添加好友的功能。
  • S(Should have): 应该有。这些功能很重要,但不是必需的。虽然’应该有’的要求与’必须有’一样重要,但它们通常可以用另一种方式来代替,去满足客户要求。
  • C(Could have):可以有。这些要求是客户期望的,但不是必需的。可以提高用户体验,或提高客户满意度。如果时间充足,资源允许,通常会包括这些功能。但如果交货时间紧张,通常现阶段不会做,会挪到下一阶段做。
  • W(Won’t have): 不会有。最不重要,最低回报项目,或在当下是不适合的要求。不会被计划到当前交货计划中。“不会有”会被要求删除,或重新考虑。

总的来说,MoSCow模型为我们提供了一种思考方式,围绕实际产出交付物确定优先级,引导我们重新思考迭代中的需求。

二、为什么要使用MoSCow模型?

1、优先级管理:MoSCoW模型帮助团队明确需求的优先级,确保最重要的需求得到满足。通过将需求分类为Must(必须有)、Should(应该有)、Could(可以有)和Won't(不会有),团队可以更好地理解和管理需求的重要性。

2、风险管理:将需求按照优先级分类可以帮助团队在项目实施过程中更好地管理风险。Must级别的需求通常是项目的核心功能,如果这些需求无法满足,项目可能会失败。通过优先处理这些关键需求,团队可以减少项目失败的风险。

3、交付价值:MoSCoW模型有助于团队在有限的时间和资源下,优先交付最有价值的功能。通过明确不同需求的优先级,团队可以确保在项目进行过程中首先交付最重要的功能,从而提供更大的价值给用户或客户。

4、沟通和共识:MoSCoW模型提供了一种简单且易于理解的方式来描述和沟通需求的优先级。通过使用这个模型,团队成员和利益相关者可以更容易地就需求的重要性达成共识,避免冲突和误解。

三、MoSCoW模型如何使用

Why Companies Need to do a Better Job of Prioritizing Features这篇文章中,作者介绍了三种方法:

1、按知识价值排序

风险是未知的,一旦出现下面几种信号,是时候停止考虑这些功能了,要开始考虑降低风险了。

  • 团队:“我们不知道这是否可行…”
  • 产品负责人:“我不知道客户对这个怎么反应。”
  • 架构师:“我不确定这个平台是否支持这个功能。”
  • 业务分析师:“我还没有弄清楚那部分的需求。”
  • 测试人员:“我怎么测呢?”

对于如上的每一个例子,都是缺乏知识的清晰信号,从而妨碍了相关人员有信心地往前走。

2、按增收排序

“举个例子,在付款时,用户体验模型显示:有15%的人选择【Paypal】直接付款流程。如果Paypal作为支付方式,将会大量地降低购物车放弃率,从而收入会增加10%-15%。”

那如何计算这个功能潜在的增加收入?

创建一个可比的标准,用于衡量当前的收入差距,并量化潜在的收入增加(以百分比或美元表示)与增加收入所需的成本(超过一年)。对于所有与增加收入相关的功能,按照递减的增收排序。

3、按成本节省排序

“旧平台每笔交易需要10秒,而新平台每笔交易需要7秒。把功能挪到新的平台上,每笔交易会节省30%的时间,而且每个月我们会做超过100万笔的交易。”

现实生活中的大多数情况会更复杂混乱。

节省时间的功能都有助于降低成本,例如自动化手动任务。调查你的客户在手动执行该任务时所花费的时间,并使用该人的“成本/小时”来计算成本节省的具体数值。有时,通过削减一些功能,可以实现成本的节约,例如推出仅包含核心功能的“轻量化”版本软件。

创建一个开放的API,允许开发人员创建能够节省成本的功能。通过将功能开发任务转移到开发社区中,个人开发者将负责提供资金并支持这个插件。

四、最后小结

MoSCoW模型虽然看上去简单,但内涵丰富。“需求”可以算是各角色矛盾的核心了,想想那些年产品经理和研发人员打过的嘴仗、项目交付前曾拼过的命……千言万语汇成一句话:需求管理不规范,项目交付两行泪!快去试试用MoSCoW来进行需求管理吧!

需求太多处理不过来?MoSCoW模型帮你的更多相关文章

  1. 记一次构建SaaS平台项目失败后的反思(收集的客户需求太少,且没有区分重点,闭门造车。技术演变要渐进)

    记一次构建SaaS平台项目失败后的反思 前言: 笔者从2017年起开始着手将公司现有的软件系统改造成多租户模式,以降低整个系统的运营成本.但最后这个项目以失败告终.今天,我将对这个SaaS项目是如何走 ...

  2. 移动硬盘临时文件太多怎么办,python黑科技帮你解决

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 星安果 PS:如果想了解更多关于python的应用,可以私信我,或者 ...

  3. 传统开发模型vs敏捷开发模型——过程模型的变革

    一.概念框架 在了解一个新概念的时候,最好的方法就是把它插入到原有的概念体系中.在不仅有助于对概念的记忆,更利于深刻地认识概念的本质.精髓.下图说明了"敏捷开发"在软件工程理论体系 ...

  4. 有关基于模型的设计(MBD)一些概念和理解(zz)

    http://www.matlabsky.com/thread-38774-1-1.html 本文转载于MathWorks中国高级工程师董淑成的帖子内容.为了方便阅读,对原文进行了重新整理编辑. 之前 ...

  5. (转)iOS Wow体验 - 第六章 - 交互模型与创新的产品概念(2)

    本文是<iOS Wow Factor:Apps and UX Design Techniques for iPhone and iPad>第六章译文精选的第二部分,其余章节将陆续放出.上一 ...

  6. A_Pancers团队作业4—基于原型的团队项目需求调研与分析

    任务1:实施团队项目软件用户调研活动. (1)用户调研对象:我们的项目软件是基于安卓系统的音乐播放器,以设计出操作简单的音乐播放器为目的,所以本次用户调研的对象主要以身边的老人为主,对他们听音乐,听戏 ...

  7. django中模型详解-字段类型与约束条件

    这片博文来详细说明django模型的使用,涉及到django模型的创建,字段介绍,以及django模型的crud操作,以及一对一等操作. 在使用模型之前,我们首先设置数据库选项,django的默认数据 ...

  8. 【Social Listening实战】当数据分析遭遇心理动力学:用户深层次的情感需求浮出水面

    本文转自知乎 作者:苏格兰折耳喵 ----------------------------------------------------- 本文篇幅较长,分为五部分,在中间部分有关于心理分析工具的介 ...

  9. 《TP5.0学习笔记---模型篇》

    https://blog.csdn.net/self_realian/article/details/78596261 一.什么是模型 为什么我们要在项目中使用模型,其实我们知道,我们可以直接在控制器 ...

  10. 什么是Java内存模型

    转载 : https://www.jianshu.com/p/bf158fbb2432 在知识星球中,有个小伙伴提了一个问题: 有一个关于JVM名词定义的问题,说”JVM内存模型“,有人会说是关于JV ...

随机推荐

  1. ai问答:使用 Vue3 组合式API 和 TS 封装 websocket 断线重连

    这是一个使用 Vue3 组合式 API 和 TS 封装 websocket 的例子 这个组件在 setup 中: 创建了一个 WebSocket 连接 定义了 sendMessage 方法发送消息 监 ...

  2. HTAP for MySQL 在腾讯云数据库的演进

    摘要:MySQL在充分利用多核计算资源方面比较欠缺,无法同时满足在线业务和分析型业务的客户需求,而单独部署一套专用的分析型数据库意味着额外的成本和复杂的数据链路.本次主题将介绍腾讯云数据库为满足此类场 ...

  3. import MySQLdb as Database ModuleNotFoundError: No module named ‘MySQLdb‘

    import MySQLdb as Database ModuleNotFoundError: No module named 'MySQLdb' import MySQLdb as Database ...

  4. ol设置最佳可视范围和限制缩放

    目前随着科技发展,智慧城市的不断发展,GIS方面的技术也是层出不穷,如市场流行的 OPENLAYERS, CESIUM, THREE等,但是也会有很多棘手的问题,比如不同分辨率下,图层的显示范围,禁止 ...

  5. flutter apk启动闪退问题

    今发布一个flutter apk 安装后启动时老是闪退,经过一遍又一遍查找,发现是指定了so的问题 看多次点击启动 一.比对打包后的apk 在出现该问题后也搜索了不少资料,参考过 https://bl ...

  6. 代码随想录算法训练营Day7哈希表| 454.四数相加II383. 赎金信15. 三数之和18. 四数之和 |总结

    454.四数相加Ⅱ 题目链接:454.四数相加 给你四个整数数组 nums1.nums2.nums3 和 nums4 ,数组长度都是 n ,请你计算有多少个元组 (i, j, k, l) 能满足:. ...

  7. django中有关登陆验证的LoginRequiredMixin类

    通常情况判断一个用户是否登陆可以使用 request.user.is_is_authenticate(),就可以完成,返回结果TRUE或者FALSE class UserCenterInfoView( ...

  8. AI在金融体系下如何引导API安全?

    AI在金融体系下如何引导API安全? 随着金融科技的快速发展,越来越多的金融机构开始使用API(应用程序接口)进行数字化转型,加速业务流程和数据交换.然而,API在金融体系下面临诸多安全威胁,如恶意攻 ...

  9. ChatGPT在工业领域的研究与应用探索-AI助手实验应用

    为什么我的工作效率和质量要比其他人要高,因为我的电脑里有代码库.产品库.方案库.自己工作经验资料库等,根据一个应用场景或需求能够很快关联到想要的资料,并且整合成新的方案.我的核心竞争力是什么?各种资料 ...

  10. 2023-06-15:说一说Redis的Key和Value的数据结构组织?

    2023-06-15:说一说Redis的Key和Value的数据结构组织? 答案2023-06-15: 全局哈希表 Redis使用哈希表作为保存键值对的数据结构,通过哈希函数将Key映射为哈希表中的一 ...