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

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

产品举例:如果我们要做一个芒果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的模式了。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,723评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,080评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,604评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,440评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,431评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,499评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,893评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,541评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,751评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,547评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,619评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,320评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,890评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,896评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,137评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,796评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,335评论 2 342

推荐阅读更多精彩内容