一、提出的需求是否可验证?
在描述需求时,只有能被验证的需求才是可用的。
举例来说,可验证的需求:

举例,不可验证的需求,反面教材:
模糊的需求: 例如,"系统应该具有高性能"(模糊,因为没有定义"高性能",难以验证)。主观性需求: 例如,"用户觉得界面应该很直观"(主观感受难以测量和验证)。不明确的需求: 例如,"系统应该很好地与其他系统集成"(缺乏具体集成要求)。非功能需求缺乏具体度量标准: 例如,"系统应该是可维护的"(可维护性需要定义并提供度量标准)。二、矛盾的需求
需求文档可能存在相互矛盾的情况。
例如,一个地方要求快速响应时间,另一个地方要求低成本。就得需要澄清。
避免含糊不清、主观性和不明确的描述,提供明确的度量标准和测试方法是关键。确保每个需求都能被验证。
三、用户故事
用户故事是敏捷开发中常用的需求表达形式,简短、自然,口语化。
在阳光明媚的森林里放松的年轻女人Young woman Relaxing In Sunny
讲清楚下面三个事:
角色(Role): 谁与系统进行交互?功能(Feature): 用户希望系统实现的目标、任务或需求是什么?收益(Benefit): 实现这个功能将为用户或业务带来什么好处或价值?举例,用户故事,格式都是:"作为[角色],我希望[功能],以便[收益]。"
选购衣服
电子商务网站:
"作为购物者,我希望能够将商品添加到购物车,以便一次性购买多个商品。""作为管理员,我希望能够管理产品库存,以便随时更新产品的可用数量。""作为用户,我希望能够查看产品的详细信息和用户评价,以便作出购买决策。"社交展示
社交媒体平台:
"作为用户,我希望能够发布文字和图片状态更新,以便分享我的生活和活动。""作为用户,我希望能够添加朋友和关注其他用户,以便跟踪他们的更新和互动。""作为管理员,我希望能够监控和管理不适当的内容,以确保平台的安全性和合规性。"饭店点菜场景
点菜软件:
"作为顾客,我希望能够浏览菜单、下订单并选择打包或堂食,以简化点餐。""作为厨师,我希望能够接收订单、准备食物并更新订单状态,以响应顾客需求。""作为管理员,我希望能够管理餐厅信息和菜单,菜单和物料匹配,实时更新。"项目进度
项目管理软件:
"作为项目经理,我希望能够创建项目任务、分配任务给团队成员并跟踪进度,以便有效管理项目。""作为团队成员,我希望能够查看任务清单、报告问题并与其他成员协作,以便完成任务。""作为客户,我希望能够查看项目的时间表和进度报告,以便了解项目的状态。"