需求共分为了功能性需求、非功能性需求和限制条件三类。
掌握软件需求分类,在日常工作中我们将会有一个更加清晰的思路,思考的更全面更深入,而与相关人员沟通过程中,既能凸显我们的专业性,又能提高沟通效率,沟通的也会更彻底。
时常我们会听到功能需求、性能需求、安全需求、用户需求、非功能性需求等等的各种叫法,这些都是需求的类型,好像很多,还或者说是需求都有哪些类型?
有一篇文章解释说,需求可分为三类,根据层次可分为业务需求、用户需求和功能需求3类,作者对这3个需求类型还特意做了解释:
业务需求(Business requirement):业务需求描述了组织为什么要开发一个系统,即组织希望达到的目标。
用户需求(user requirement):用户需求描述了用户能使用系统来做些什么。
功能需求 (functional requirement):功能需求描述是开发人员需要实现什么。
对于这样的分类,个人表示不是很支持,逻辑上面总觉得还不够严谨,比如用户希望在购物车功能里面添加一个编辑商品的功能,这时候业务上面则需要编辑商品这样的一个功能,即用户需求与业务需求是重叠的,用户需求其实是包含在业务需求里面的,他们完全可以归为一类。
思考了良久,我觉得需求的类型应该只有两类,要么是功能需求,要么是非功能需求,比如业务上面我的要求是这个注册登录必须零BUG,这个月注册量要提升到5%以上,那么这样的需求显然就是非功能需求,注册登录功能里面需要有账号登陆、微信登陆、微博登录、账号注册和找回密码这几个功能,那么这个就是功能需求,好像变得严谨多了,但还感觉缺少了点什么。
后来我去翻阅《掌握需求的过程》这本书,在这本书里面将需求分为了三个类型,分别为:功能性需求、非功能性需求和限制条件。
首先对需求是什么做了解释:需求是产品必须完成的事以及必须具备的品质。需求存在的原因要么是该类型的产品要求一定的功能和品质,要么是客户希望需求成为交付的产品的一部分。
什么是功能需求?
功能需求是产品必须完成的那些事。举例:如果卡车情况的变化意味着原来进度安排中的工作不能按计划完成,那么产品应该提供一个修订的除冰进度安排表。
什么是非功能性需求?
非功能性需求是产品必须具备的属性或品质。举例:产品必须在0.25秒以内确定对方是“朋友”还是“敌人”。
限制条件?
限制条件是全局性的问题,约束着所有的需求。举例:产品必须在新的税务年度开始前准备好,产品应该运行在3G手机上。
最后一个问题来了,那么遇到性能需求、用户需求、系统需求等等需求的时候应该处理。
首页这样的分类也是有一定的道理,并不是没有可取之处,遇到这种问题的时候我们首先应该建立一个框架。看他们是属于功能性需求的范畴还是非功能性需求的范畴,还或者是限制条件,然后再对号入座即可,这样的细分有助于我们专注更细致的思考,若全部打散则会凌乱,使得结构上发生交叉,逻辑上会出现混乱的情况。
作者马珍毅,现居江苏无锡,某创业公司产品经理,热衷于需求分析、产品设计,用户增长、商业分析,数据挖掘、项目管理、品牌战略、产品运营和市场营销。希望通过个人的知识分享能与更多的产品经理奋勉同行,共同成长!
本文首发于个人微信公众号需求分析研习社(yichenxs),作者个人微信,yichenbz,个人网站需求分析研习社,QQ交流群:489899046