Interaction Design Foundation 讲解约束与非功能性需求如何塑造产品设计
Get to Grips with Constraints
在软件与产品设计中,将“约束”(即非功能性需求)视为设计盟友而非单纯障碍,能有效避免昂贵的返工、功能膨胀及交付时的意外限制,从而构建出稳固、一致且具备适应性的产品。这一核心观点由 Interaction Design Foundation 发布的内容提出,并由用户体验策略师、Syntagm Ltd 创始人 William Hudson 进行具体阐释。内容指出,虽然功能性需求定义了系统“做什么”(如用户可见的功能和使用故事),但非功能性需求定义了系统必须“如何工作”,包括安全性、无障碍性和效率等关键质量属性。理解这些边界并据此进行设计决策,是确保产品在真实环境中平稳运行的基础。
约束被明确划分为两大类:技术约束和服务质量约束。技术约束通常对用户的感知功能影响甚微,主要涉及编程语言选择、支持平台等实现细节;然而,部分技术约束直接关联 UI 设计,例如决定支持移动设备会显著影响视觉和界面设计的处理方式。服务质量约束则涵盖更广泛的特征集合,包括性能、可扩展性、可移植性、兼容性、可靠性、可用性、可维护性、安全性、本地化和易用性。值得注意的是,某些服务质量约束会直接影响使用故事。例如,安全要求可能迫使设计包含每次访问登录或双因素认证流程,对应的使用故事可能是“Rachel 选择她期望的双因素认证形式”;本地化要求则可能需要创建关于用户选择交互语言的故事。此外,无障碍性虽未单独列出,但通常归类于易用性之下,其具体要求示例为“解决方案必须符合 WAI WCAG 2.x AA 级标准”。
为了清晰区分功能性需求与非功能性需求,内容使用了烤面包机作为类比案例。插槽数量属于功能性需求,因为它直接影响使用故事(如“Javier 为全家做吐司”);插槽配置方式也属功能性需求,因为它决定了是否允许两人同时使用。相反,兼容的电气系统属于非功能性约束,因为不同国家(如美国与英国)的插头和电压差异导致设备无法通用,旅行适配器也无法解决电压差异问题。同样,在软件领域,端到端加密等非功能性需求对用户而言往往是不可见的,不影响核心功能表现,但对系统实现至关重要。
该材料强调,约束必须是可测量的。仅声明“解决方案应该易于使用”是不够的,必须转化为具体指标,例如“90% 的用户必须在 60 秒或更短时间内完成关键任务”。这种量化思维有助于将抽象的质量目标转化为可执行的设计准则。通过掌握系统“做什么”与“如何工作”之间的平衡,设计师不仅能预防后期的意外调整,还能从约束中发现新的或调整后的功能性需求,最终创造出既具备功能性又真正可靠、以用户为中心的设计方案。这一方法论源自 Interaction Design Foundation 对软件工程知识体系(Software Engineering Book of Knowledge V4)的改编与应用,旨在帮助从业者将限制转化为方向,使设计决策产生持久的用户价值。
来源:Interaction Design Foundation · ixdf.org