在软件开发与项目管理过程中,准确理解和把握用户需求至关重要。而用户需求存在多种划分范式,每种范式从不同角度对需求进行剖析,为项目团队提供全面、深入理解需求的途径。下面我们将详细解读三种常见的用户需求层次划分范式。

一、业务需求、用户需求、系统需求

把需求划分为业务、用户和系统这三个层次,是一种常规的划分方法。

业务需求

反映了组织或企业为达成特定业务目标所提出的高层次需求。它通常由企业高层管理人员或业务负责人提出,着眼于整个业务流程和战略方向。

比如,某电商企业计划拓展海外市场,其业务需求可能是 “在未来一年内,将国际业务销售额提升至总销售额的 30%,通过优化电商平台,支持多语言、多币种结算功能,以满足不同国家和地区用户的购物需求”。

这类需求适用于项目规划初期,帮助项目团队明确项目的商业目标和方向,为后续需求分析和系统设计提供宏观指导。常用于战略决策、资源分配等场景。

用户需求

用户是从用户角度出发,描述用户在使用软件系统时希望达成的目标或执行的任务。这些需求聚焦于用户的实际操作和体验。

比如,一位电商平台用户希望能够方便地找到心仪商品,其用户需求可能表述为 “用户能够通过搜索框输入关键词,快速筛选出符合需求的商品列表,并可根据价格、销量等条件进行排序”。

在需求收集阶段,通过与用户直接沟通或观察用户行为获取。有助于设计出符合用户使用习惯和期望的系统界面与操作流程,提高用户满意度。适用于用户体验设计、界面原型制作等场景。

系统需求

系统需求可以进一步细分为功能需求和非功能需求。功能需求定义了系统必须执行的具体功能,即系统要做什么;非功能需求则描述了系统的性能、可靠性、可用性等方面的特性,是对系统的质量属性要求。

比如,电商平台系统需具备商品展示功能,“系统应能够展示商品的图片、名称、价格、详细描述等信息,确保商品信息准确无误且实时更新”。这是功能需求;而系统需求可能是:在性能方面,“电商平台在促销活动期间,页面加载时间应不超过 3 秒,以保证用户流畅购物体验”。

系统需求适用于在需求规格说明书撰写阶段,对系统进行详细定义。功能需求指导系统的功能模块设计与开发;非功能需求则影响系统架构选型、技术方案制定等,确保系统满足质量要求。适用于系统设计、开发、测试等全生命周期阶段。

二、按照质量功能部署(QFD)划分

质量功能部署将需求划分为:常规需求、期望需求和意外需求。

常规需求

常规需求是用户认为系统理所当然应具备的基本功能。若这些需求未得到满足,用户会感到不满意,但满足了这些需求,也不会带来额外惊喜。

举例来说,对于一款在线文档编辑工具,能够新建、打开、保存文档是常规需求。用户认为这是工具应有的基本功能,如果不具备,用户将无法接受该产品。

常规需求是定义产品的基本功能边界,确保产品满足用户的基本使用要求。在产品的基础功能设计与开发阶段重点关注,保证产品的可用性。

期望需求

期望需求是用户期望系统具备的功能或特性,这些需求的满足程度与用户满意度呈正相关。提供这些需求会提升用户满意度,反之则会降低。

比如,在线文档编辑工具支持多人实时协作编辑,且操作流畅。用户期望在团队协作场景下能高效共同编辑文档,当该功能实现且体验良好时,用户对产品的满意度会提高。

好的期望需求设计有助于产品在市场竞争中脱颖而出。在产品优化和差异化竞争阶段,通过满足用户期望需求,提升产品竞争力和用户满意度。常用于市场调研、竞品分析后,针对性地完善产品功能。

意外需求

意外需求又称魅力需求,是用户未曾预期到,但一旦实现会让用户非常惊喜,从而极大提升用户忠诚度的需求。

还是用在线文档编辑工具举例。在线文档编辑工具具备智能纠错、格式美化建议功能,这些功能超出用户常规预期。当用户使用过程中发现这些贴心功能时,会对产品产生好感和依赖。这就是意外需求。

在创新产品设计或寻求产品突破时,关注意外需求可带来独特的竞争优势。通过挖掘用户潜在需求,为产品创造独特卖点,吸引更多用户并提高用户忠诚度。

在统一(UP)过程中,按照 FURPS + 模型分类

统一过程中将需求按照 FURPS + 模型分类,包括:功能性(特性、功能、安全性)、可用性(人性化因素、帮助、文档)、可靠性(故障频率、可恢复性、可预测性)、性能(响应时间、吞吐量、准确性、有消息、资源利用率)、可支持性(适应性、可维护性、国际化、可配置性),“+” 指辅助和次要因素。

功能性

包括以下三个方面

  • 特性:系统提供的独特功能或能力,区别于其他竞品的特点。比如,某移动支付 APP 具备指纹支付特性,方便快捷且安全,区别于传统密码支付方式。
  • 功能:系统为满足用户需求而执行的具体操作或任务。比如,APP 能够实现扫码支付功能,用户扫描商家二维码完成支付操作。
  • 安全性:确保系统和数据免受非法访问、破坏或泄露的能力。比如, 支付过程采用 SSL 加密技术,防止用户支付信息泄露。

对于功能性需求,在系统功能规划和设计阶段,明确系统要实现的具体功能、特性及安全要求,确保系统满足业务和用户需求。适用于功能模块设计、安全架构规划等场景。

可用性

它关注用户与系统交互的便捷性和舒适性。包括:

  • 人性化因素:包括界面设计是否符合人体工程学、操作是否简便易懂等。比如,移动支付 APP 界面设计简洁,图标清晰,操作按钮大小适合手指点击。
  • 帮助:系统为用户提供的操作指导和问题解决支持。比如,在支付页面提供常见问题解答入口,用户遇到问题可快速获取帮助。
  • 文档:对系统功能、使用方法等的书面描述,方便用户学习和使用。比如,APP 提供详细的使用指南文档,新用户可通过阅读文档了解各项功能使用方法。

在用户界面设计和交互设计阶段,重点考虑可用性因素,提升用户体验。常用于原型设计、用户测试等环节,确保系统易用、易理解。

可靠性

是指系统在规定条件下和规定时间内完成规定功能的能力。包括:

  • 故障频率:系统出现故障的频繁程度。比如,移动支付 APP 每月故障次数不超过 1 次。
  • 可恢复性:系统发生故障后恢复正常运行的能力和速度。比如,若支付过程中出现网络故障,系统在网络恢复后能自动恢复支付流程,且恢复时间不超过 1 分钟。
  • 可预测性:系统行为的可预测程度,用户能否预期系统对操作的响应。比如,用户点击支付按钮后,系统会明确显示支付处理进度,用户可预期支付结果。

在系统架构设计和稳定性测试阶段,关注可靠性指标,保障系统稳定运行。适用于系统部署、压力测试等场景,确保系统在各种情况下可靠工作。

性能

性能是衡量系统执行任务的效率和效果。包括:

  • 响应时间:系统对用户请求做出响应的时间。比如,用户发起支付请求后,APP 在 2 秒内返回支付结果。
  • 吞吐量:系统在单位时间内处理的任务数量。比如,在促销活动高峰时段,APP 每分钟可处理 1000 笔支付交易。
  • 准确性:系统输出结果与预期结果的符合程度。比如,支付金额与用户输入金额完全一致,无误差。
    在系统性能优化阶段,针对性能指标进行分析和改进。适用于性能调优、硬件资源规划等场景,确保系统高效运行。

可支持性

可支持性涉及系统在整个生命周期内的维护、调整和适应变化的能力。包括:

  • 适应性:系统能够适应不同环境或需求变化的能力。比如,移动支付 APP 可适应不同手机操作系统(如 iOS 和 Android)及各种屏幕分辨率。
  • 可维护性:对系统进行修改、修复和优化的难易程度。比如,采用模块化设计,当某个支付功能出现问题时,开发人员可快速定位并修复。
  • 国际化:系统支持不同语言、文化和地区的能力。比如,支持多种语言,满足不同国家和地区用户使用。
  • 可配置性:系统能够根据不同需求进行灵活配置的特性。比如,商家可根据自身需求配置支付方式、优惠活动等。

在系统开发全生命周期,尤其是维护和升级阶段,考虑可支持性因素,降低维护成本,提高系统适应性。适用于版本更新、系统迁移等场景。

辅助因素

其他的一些辅助因素也要考虑。如实现(涉及技术选型和实现细节)、接口(系统与外部系统交互的规范)、操作(系统运行的操作流程和环境要求)、包装(产品发布的包装形式,如安装包)、授权(使用系统的权限管理)等,用于更全面地描述系统需求。

在系统开发的各个阶段,从技术实现到产品发布,都需考虑这些辅助因素,确保系统完整、合规且符合项目要求。辅助因素的需求对于技术选型、项目管理等场景非常有用。

综上所述,不同的用户需求层次划分范式从不同维度对需求进行分类和分析,在软件开发的各个阶段都具有重要指导意义。项目团队应根据实际情况,灵活运用这些范式,全面、准确地把握用户需求,打造出高质量的软件产品。