快好知 kuaihz订阅观点

 

后台产品设计系列:产品设计方式(二)

上篇《后台产品设计系列:认识后台》,笔者对后台(系统)产品做了简单的介绍,让大家有一个初步认识。本篇文章,将以视频产品后台为例,介绍简单系统和复杂系统的不同需求设计方式。

产品举例:如果我们要做一个芒果TV后台管理系统,简单的方式和复杂的方式分别怎么来做呢?

一、简单系统设计方式——需求驱动设计

针对简单的后台产品,我们通常采用需求驱动设计(Request-driven design,以下简称RDD)。

1、概念

所谓需求驱动设计,是指我们在设计后台时,根据上级、运营、市场、客服、前端产品等需求方所提的具体需求,直接进行产品架构、功能设计。这种设计方式简单快捷,与我们做前端产品思路、方式相同,对于很多做前端产品的同学而言,这种方式是最容易理解和掌握。

2、设计流程

3、流程拆解

(1)明确目标

任何一个产品的萌芽,往往是因为一句话,一个问题,或领导的一个idea,而这些起因,就是我们的产品目标,这些目标有时很模糊,但对于系统产品,这个目标都是很明确的,明确的业务场景下,XX用户产生的明确需求。例如我们要做芒果TV,分别有APP、web、PC、TV四个端,就需要有一个统一的管理后台,对前端进行支撑,运营人员能够对内容进行维护。

(2)需求分析

明确了方向,接下来就需要做需求调研。

第一步:穷举用户角色

进行需求调研时,需要先找用户角色,再找需求。

清晰地列出使用此系统的用户角色,以用户角色为划分维度进行调研。因为后台产品不同于前端,不同的用户角色需求差异很大,甚至风马牛不相及,而每种角色对应的用户都是这个系统的目标用户,并不存在所谓的核心用户和潜在用户一说,这些用户都是重要的,都需要满足他们的需求。例如,使用芒果TV后台管理系统角色包括运营、产品经理、公司管理者、审核员。

第二步:需求调研

调研方式——深度访谈

与前端产品不同,后台产品的用户在现实生活中离我们很近,很容易就能接触到,这个时候就不要用调查问卷这种大覆盖面的方式了,一是用户基数没有那么大,二是后台需求基本不需要做定量分析,无需通过这种方式去挖掘需求。所以直接与用户交流、访谈是最快速有效的方式;

调研对象——关键人

我们的访谈对象,需要尽可能满足资深、直接使用、有话语权三个条件,因为这种关键人所提出的需求会更加全面、具体且有深度,能够清楚的解释为什么要有这个功能,如果没有会出现什么后果,还能巴拉巴拉一堆历史故事,这种用户就是完美的访谈对象。这些被伤害过的人,知道心痛的滋味;

第三步:建立需求池

根据访谈内容,建立需求池。例如,在对运营、产品经理、公司管理者、审核员访谈后,建立了以下表格

(3)结构设计

将调研后的需求进行初步筛选过滤后,需要根据确定、高优先级的需求,归纳这一期后台所需实现的功能模块。

做功能模块划分,需要秉持一个重要原则:一个角色,一个模块,完成一件事。也就是一个具体的角色,能够在一个功能模块中完成他想完成的任务。原因主要是以下两点:

降低用户记忆成本,提升操作体验。你绝对不想为了做一件事,要在多个模块跳转、多个页面点击吧,这个看起来对前端产品再正常不过的要求,后台经常没有达到;

便于权限区分。做系统产品,权限划分永远是重点关心的,将一个角色要进行的操作单独作为一个模块或模块下的子栏目,方便做权限设置;

同样,划分模块后进行栏目划分,然后按照操作流程,从上至下排列,就能得到以下产品结构图:

至此,简单系统的产品需求设计阶段就告一段落了,后续步骤,且看下回分解。但既然说这种方式只适用于Easy模式,那一定是有原因的。

4、不足

这种设计方式,用开发的行话说,是一种面向过程的设计方式。这种方式有一个专有名词——贫血模型。

贫血模型有以下几大致命缺点:

创建的对象不准确,直接影响产品和开发对业务的正确把握和扩展;

业务逻辑分散,业务难以复用;

业务间耦合度高,迭代及维护成本极高;

名词定义不一致,开发与业务出现沟通问题。

二、复杂系统设计方式——领域驱动设计

为了解决上述问题,同时应对复杂的系统产品,就需采用领域驱动设计(Domain-driven design,以下简称DDD)模式。

1、概念

领域驱动设计,是指在一个具体的领域中,一种面向对象的设计方式。例如,我们要做一个更大的芒果TV后台管理系统,以满足更多角色的更多需求,那么这个系统就属于一个具体的领域——视频娱乐领域。在这个领域中,包含影片、演员、订单等对象,这些对象就是我们要面向的设计目标,而非直接根据需求做设计

2、流程

3、流程拆解

在这种方式的流程中,增加了“建立领域模型”和“系统划分”两个环节,其他环节与RDD相同,就不再赘述,现针对新增的两个环节做说明。

(1)建立领域模型

此处的领域模型,是一种简化后的E-R图。E-R图是后台开发在数据库设计中通常会用到的一种模型,用来表示实际业务中各个实体及其关联关系,核心三要素是实体、联系、属性。如下图中,长方形体现的就是实体,也就是实际业务中的各个概念;椭圆形体现的是实体包含的属性,类似概念下的各个字段,菱形体现的是实体间的关系。

当在需求设计阶段时,并不需要像做数据库设计那么复杂的模型,我们需要创建的领域模型,就是要根据实际业务,展现全部的实体及其关联关系,无需属性,避免在规划阶段陷入过深的细节。

第一步:与领域专家一起,梳理实体

领域专家,是指对这个领域非常熟悉的人,可以是业务人员、老板、产品经理等任何角色。这个专家对领域内的各种业务场景和各种业务规则非常清楚,有能力表达出系统该做成什么样子,有哪些核心业务关注点。

在本文的例子中,我们梳理的实体包括用户、影片、栏目、推荐位、演员、导演、订单、运营活动等,在这些实体概念里,就是一个个的具体对象,例如演员里有刘亦菲、刘德华。每个实体要求能用文字精确的、没有歧义的描述其涵义以及包含的主要信息,同时每个实体定义要完全独立,概念上不能有交叉或模糊的界线。

第二步:梳理关联关系

确定了实体,就需要建立实体的联系,标识实体间的对应关系。

实体联系:

直接关联:实体间直接关联,在系统中需手动建立联系的实体

间接关联:根据实体图,能够通过间接关系找到唯一对应实体。通过间接关联关系,往往可以通过多条路径找到同一具体实体,如果出现不同路径找到不同目标,那就需要重新检查关联关系是否正确;

对应关系:

1对1(1:1):1对1关系是指对于实体A与实体B,A中对象至多与B中一个对象有关系;反之,在实体B中的每个对象至多与实体A中一个对象有关系;

1对多(1:N):1对多关系是指实体A与实体B中至少有N(N>0)个对象有关系;并且实体B中每一个对象至多与实体A中一个对象有关系;

多对多(M:N):多对多关系是指实体A中的每一个对象与实体B中至少有M(M>0)个对象有关系,并且实体B中的每一个对象与实体A中的至少N(N>0)个对象有关系。

关联建立原则:

关联尽量少。实体间的复杂的关联容易形成实体关系网,这样对于我们理解和维护单个实体很不利,同时也很难划分实体实体之间的边界;

化繁为简。在建立关联时,需要挖掘关联关系的限制条件,如果存在,那么最好把这个限制条件加到这个关联上,往往这样的限制条件能将关联化繁为简,即可以将多对多简化为1对多,或将1对多简化为1对1;

第三步:走查场景,修改领域模型

关联关系、对应关系是否正确?

分析关联,通过对业务的更深入分析,明确关联的方向或者去掉一些不需要的关联;

这些实体及关联关系能否全部覆盖这些业务场景?

(2)系统划分

为了解决在方法一中遇到的问题,需要采用微服务的思想,根据实体间的联系强弱,以实体为对象,划分到不同系统中。

将每个系统独立开(解耦),系统与系统间通过接口调用数据,公共模块单独作为一个系统(如此处用户管理系统),每个系统都有各自的三层结构(详见上篇)。

三、两种设计方式总结

介绍完两种不同的需求设计方式,再来看这两种方式的联系。

1、如何选取

这个图表示随着系统复杂程度增加,两种设计方式开发时间的变化趋势。可以看出,但产品复杂度低时,RDD的模式会很快捷,这个就非常适合初创型、小型的系统设计,当产品复杂到一定程度时,RDD的开发时间会指数上升,而DDD的模式则始终比较平稳,所以DDD会适合复杂的系统设计

2、两种方式中的实体

上篇说到,后台三层结构中,业务层也叫领域层,其实和领域模型中的领域是一样的。RDD在数据库设计时依然需要有E-R图和实体,但产品经理做需求设计时可以不用考虑(当然有资源这样做更好),因为对于简单的后台产品而言,无需在初期理解的那么复杂,同时对很多从前端做到后台的产品而言,不用学习领域模型相关的内容。

那么在DDD中,对于一个已经对业务非常熟悉的产品经理,可以直接跳过实体,进行系统的微服务设计。但需要注意一个实体在多个系统都存在的情况,这个时候就会导致同一实体的数据,存储在多个系统中,无论是数据管理还是调用,都会存在问题。所以老司机们还是要划分清实体,只是不用那么细致。

3、两者关系

写到这里,大家其实就会发现,这两种方式其实是一种包含关系。对于复杂系统而言,需要先采用DDD模式进行前期需求设计及系统划分,当微服务化后,每个子系统也就变成了简单系统,也就可以采用RDD的模式了。

相关阅读

后台产品设计系列:认识后台(一)

本站资源来自互联网,仅供学习,如有侵权,请通知删除,敬请谅解!
搜索建议:产品设计  产品设计词条  后台  后台词条  方式  方式词条  系列  系列词条  
设计

 哪些例子最好地说明了「UI 过度...

小编首先整理了来自马力@知乎的回答:我反对「过度设计」这个说法。目前看到的所有过度设计的例子,都恰恰是设计不足,设计不到位,而不是过度。换句话说,是设计错了,而...(展开)

设计

 什么是好的产品?

东东导读:什么才是好的产品,有没有量化的标准呢?好的产品谈起来维度比较多,从用户角度和企业角度来说是2个大方向。好的产品谈起来维度比较多,从用户角度和企业角度来...(展开)

设计

 15 个用户体验设计剖析

用户界面和用户体验(UI/UX)是任何产品成败的关键,尤其 Web,Web是一种公开的,可以被任何人随时随地访问的特殊产品,用户的体验几乎意味着一切,虽然内容更...(展开)