以业务为中心的设计框架与方法
业务是指用户发起并由系统执行的、有结果的商业活动。一项业务分两端:用户发起和系统执行。业务由用户发起,并由系统执行,而且这些业务都是商业活动;活动的结果就是业务办理成功。
业务有两个核心特点:
- 一项业务是有流程的。
- 业务定义了用户的服务和员工的工作,两者相辅相成、不可分割。
所以,一款产品可以分为两部分:一部分是给用户用的产品,另一部分是给员工用的产品。只有既为用户设计了产品,又为员工设计了产品,才是完整的业务设计。
只以用户为中心,无法进行业务设计。原因有两点:
-
以用户为中心的设计是从用户角度出发的,目标是让用户体验变好,但没有考虑内部业务如何设计。一项业务需要定义员工的工作,并让员工高效完成业务,这不是用户体验所能包括的。
-
一项业务需要设计流程,但以用户为中心的设计对流程强调得并不多,更多强调的是页面设计和简单的交互设计。
业务设计的起点可以分成三类:用例驱动设计、流程驱动设计、领域驱动设计。
用例驱动设计是指先通过划分目标层用例、步骤层用例等手段,拆分出功能模块;然后再针对每个功能模块,进一步梳理业务流程、业务操作和信息结构等内容。
这种方法的好处是:定义目标层用例,就是在梳理公司业务;再以业务为单元梳理步骤层用例,随后将步骤层用例进行合并,从而完成功能单元的划分。这个思路层层递进,非常合理,这样就不可能遗漏业务模块。
流程驱动设计是指:对于一项比较简单的业务,先梳理业务流程,而不是先梳理业务用例。
这种方法的好处是,在一开始就能抓住业务主线,并且能保证业务主线设计的合理性。然后再以此为基础,拆分出目标层用例,也就是业务目标、业务操作和信息架构等。梳理业务的过程很自然。
领域驱动设计是指以梳理行业知识为出发点,进而构建出完整的业务。这些行业知识主要包括信息结构、行业规则等内容,业务流程、业务目标反而变成了次要信息。
领域内容的梳理决定了软件的体系架构,而业务流程、业务目标之类的,不过是在这个基础上的业务实现而已。
领域驱动设计需要先梳理信息架构,这就决定了领域驱动设计特别适合用于复杂系统之中。尤其是在 SaaS 软件中,领域驱动设计可以确保软件具有较强的可拓展性,从而适应不同企业的不同需求,避免软件的重复开发和反复修改。