软件需求层次理论
作者:网络转载 发布时间:[ 2015/11/26 13:25:58 ] 推荐标签:软件测试管理
作为一名产品经理,为了首先识别出有价值的特性,我希望在待办事项列表中排定特性的优先级。
但是,对客户和用户而言,什么有价值?业务人员告诉我们,从前,决定将哪些特性包含在下一个版本中非常容易。而现在,软件几乎成为每个人日常生活的一部分。如果客户和用户工作在一个为人熟知的业务环境里,那么关于什么有价值这个问题非常容易回答。但是,在一个松散的、完全个性化的市场中,我甚至不知道客户是谁,我怎么知道什么有价值?
价值绝不仅仅是可用。价值关乎质量和情感。高质量的产品比低质量的产品更有价值。质量模型有若干种,比如,基于可靠性、效率、安全性和可维护性的CISQ质量模型。但是,由于这些质量模型没有包含情感因素,所以它们无法完全解释为什么一个应用让人满意、受人欢迎,而另一款类似的应用却没有。为了理解对用户而言什么让软件有价值,我们需要一个增强的质量模型。如果某个东西满足了我的个人需求,它是有价值的。这似乎显而易见,但这有用吗?
在待办事项列表中查找有价值的特性时,它能给我一些指导吗?我甚至都不知道我的客户是谁,我怎么知道他们的个人需求?
这时,心理学可能会有用。在20世纪中叶,亚伯拉罕·马斯洛提出了需求层次理论——人类动机论。这个需求层次也许可以映射到软件质量方面的层次。这样,我们可以得到一个完整的软件质量模型,用于满足未知客户的个人需求。
图1:马斯洛需求层次到软件质量方面的映射
在马斯洛需求层次理论中,生理需求是基本的需求。例如,睡眠和食物需求。在软件质量上下文中,基本需求是软件可以在客户的设备上使用和操作。在Kano模型中[1],这些基本需求称为“必需特性(Mandatories)”、“基线特性”或者“应达质量(Must-be Quality)”。(关于其它排定待办事项优先级的方法,请看下文。)如果软件在功能上满足需求,并且性能也不错,那么客户已经可以对软件质量有个大致的感受。
基本需求的上一级是安全需求。在这个模型的需求层次中,并不是说只有低一级的需求得到百分百的满足后才会出现更高级的需求。通常,只要低一级需求得到低限度的满足,足以产生更高水平的新需求。另一方面,一个人不可能无限地满足单个需求。如果你休息好了,也吃饱了,那么更多的睡眠和食物不会再是能激励你的需求。
谈及软件质量,这意味着,只有软件可以在客户设备上运行,并按照客户意图执行任务,健壮性、安全和可理解性才会提上日程。另外,这还意味着,如果他或她的功能需求已经满足,但更高级的需求没有满足,那么功能的增加可能不会为客户带来更高级的质量体验。对于一个潜在的客户而言,功能是核心。但对于使用软件的客户而言,功能已经成为既定的事实。通常,他或她反而会期待新版本带来其它更高级的属性。
除了健壮性和使用安全外,安全需求还包括可理解性。如果用户觉得简单易用可理解,那么不会害怕错误和失败。另外,无障碍可达也属于这一类需求。
当物理和安全需求至少在某种程度上得到了满足,社交需求才会出现。软件在客户的社交圈中是否受到欢迎和认可可能会变得更加重要。这可能会引发额外的特性需求,如直接发布到社交媒体、推荐或等级系统,或者在Web商店中包含一个聊天室,在购买特定的产品前,用户可以在那里讨论产品的优点和不足。常常,产品是市场这样一个事实比功能完整性更重要。即使其它供选方案更合适,也只会成为第二选择。之所以会这样,部分也是出于安全需求的考虑。如果用户可以从社区或社交网络中找到软件方面的帮助,那么他或她会觉得更安全。
但是,情况也可能恰好相反。有些人希望通过不使用市场的产品将自己和他人区分开来。为了与众不同,即使是一定的质量损失也可以接受。为了将你的产品与市场的产品区分开来,你可能会努力在更高级的需求类别上变得更好,即使你的产品没有包含市场提供的所有低级需求。
你可能会注意到这样一个事实,这个例子中的模型并不是一个完美的层次。一方面,基本需求必须得到一定程度的满足,高级需求才可以发挥作用。另一方面,对客户而言,高级需求常常更有价值,这可能导致客户推迟基本需求,设法从满足部分高级需求中获益。
下一步,在社交需求之上,马斯洛看到了个人需要,他将之归结为“尊重”。这个领域不仅涉及权力、自主和自由,还包含声誉、认可和尊敬。对于软件质量和价值,这意味着他们能够做一些没有这个软件或一项特定特性没办法做的事情,以及一些可以提升他们的地位或开阔他们的眼界的事情——既酷又可以让个人需求得到满足的事情。这个模型的第五层,也是后一步,留给了自我实现(马斯洛后来重新定义了他的模型,并增加了一步自我超越)。人们认为,一个可以让用户按自己的方式做事并实现自己的想法的软件,或者是一个可以培养用户创造力的软件,比一个只专注于狭窄的解决方案空间的软件更有价值。连接或协作特性,如移动应用和云服务的“分享”特性,或者桌面应用程序的“导入/导出”特性,可能属于“尊重”或“自我实现”的类别,因为它们经常使用户超出单个设备上单个应用程序的限制,创建他或她自己的工作流(参见下面的例子)。
对软件质量的传统理解主要是基于生理和安全需求。相比之下,当今软件的质量模型应该基于完整的需求层次。因为在我们的生活中,软件进入了越来越多的个人和私人领域,除了安全和隐私外,对于软件质量,一些社交和个人方面的新需求开始发挥作用。在用户看来,可用性、健壮性以及恰当的功能都是理所当然的。实际上,缺少这些基本的属性通常会在应用商店或社交网络上招致不友好的评论。
这种趋势不只是在消费者市场上显而易见。事实上,我们所有人一直都是软件消费者,这也塑造着我们对于商业软件的预期。软件必须有用,而且不需要一个深入、冗长的用户手册学习过程,现如今,这被视为是理所当然的,对任何软件的成败都至关重要。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11