设计产品架构的基本方法

产品架构是对业务的抽象,但架构不是完美存在的结果,而是一个不断改进优化的过程。

<让产品从0到1>  第 10 辑

文  |   杜松,公众号  |   产品微言

见过很多公司,产品都已经上线了,却找不到一份合适的文档描述整个产品的框架,前端和后台由哪些部分组成,各自之间有着怎么的关联关系,各个模块如何协同支撑整个业务的发展。

更有甚者,甚至都找不到一份完整的文档,来清晰的界定产品的边界,完全是盲人摸象般的走到哪算哪。

我们还能见到不少挂着总监,甚至VP头衔的人,仍然讲不清公司的产品的发展方向和未来规划,因为他们从来没有真正的规划过整个产品线的未来,慢慢的,整个公司只有各自一大堆的软件,或者不同的功能模块,有的是些微的改动,有的是重复设计和开发。

我们的疑问是:为什么会出现这种情况?以及如何解决这个问题呢?

以本次复盘的O2O平台为例,我们把整个平台简化分拆为用户层、服务层和接口层(裁剪掉整个平台中的多租户等实际业务中的复杂应用)。

如下图所示:

O2O产品架构示例

现在的疑问是,为什么要这么分层,又是通过什么方式得出每一层要有这些功能模块的设计呢?

本文为你具体解析 产品架构 的设计过程。

01、产品架构是可视化工具

在前文我们探讨 产品的信息架构、产品架构与业务架构 基本概念时,我用了一栋房子的例子来描述“产品架构”的概念,“架构”决定整栋方式的位置、朝向、楼层,决定了地下几层,地面有几层,有多少间房,层高多少米,这些东西是不管怎么装修,都改变不了的事实。

对这栋房子而言,支柱、承重墙是再装修的时候都不能动,要动就得大动手术,甚至干脆推到重来。

“客厅”、“餐厅”、“主卧”这些功能区域,则是我们在使用某些某个产品的时候,所对应的功能模块。这个时候我们就发现,如果等房子建好了,再想把原来的一房一厅改成两房一厅,就只能做隔断,比如导致每个房间的面积变小,或者没窗,或者采光不足等等。

从房子的例子,我们可以得出一个结论:

   产品架构图是一种产品经理用来抽象表达以一款产品的服务和商业模式的可视化工具。

产品经理把产品所要实现的具象功能,抽象为一个一个彼此独立又互为关联的模块(这种关联性也是模块的交互关系,包括信息和数据,通常以接口的方式实现),并把这些模块根据一定的业务或数据逻辑进行分层组合,来传递产品的业务流程、商业模式和设计思路。

所以,在产品正式进入开发以前,绘制一个完整的产品架构图就成为必然:

架构的根本目的就是为了梳理产品思路,从整体上把握产品的发展方向,把控产品的功能重点(卖点),它决定了产品必须要实现的功能,以及什么时候必须完成的功能,也就是产品的架构决定了产品的发展路径。

同时,为了满足我们所设定的“架构”构想,还必须配备相关的产品研发和市场运营资源以及具体的落地计划,包括技术选型和技术路径,市场营销规划等一系列的策略和措施。

产品架构是团队基于某一独特市场和用户痛点的统一沟通语言,也是在产品迭代过程中的业务边界。

02、分层是产品架构设计的基本方法

如果你足够细心的话,会发现本文的案例“O2O产品架构示例”中,右侧有标记“接口层”、“服务平台”、”终端用户“等字眼,并做了一个标记,说明他们说代表的含义和使命,比如”响应终端的服务请求“,意味着这一层级的所有功能,都是为”用户“服务的,是针对用户行为的一个信息接受和反馈机制。

比如,在O2O的服务过程中,用户有一个设备的维修请求,他通过“用户界面”向平台发送一个状态信息和请求信息,平台端通过一个有效的机制,及时的接受这一信息,并让用户理解到,“我已经知道你这边除了状态,我正在安排人采用一些措施来协助你解决问题”。

这就是一种响应机制,这一过程就是整个平台的服务端开始处理用户请求的起点,然后整个平台基于这一个被“触发”的机制,去调动整个平台的资源,包括各项数据的查阅、各种资源的调动,来协同处理这一个业务请求的系列动作。

所以,整个产品的架构设计,也就是基于这一个连锁反应进行的业务层和逻辑层的解耦分拆,系统性的规划整个O2O平台的前后端如何高效的协同。

同时,基于这一个基本规则,我们再考虑平台的未来业务发展,甚至我们还需要考虑到未来三五年的业务容量会达到什么量级,由此需要采用怎样的技术设计和资源配置(云端服务资源)。

由此可见,产品架构设计,首先就是一个分层设计的过程。

常来说,最容易实现的产品层级结构就是三层,即用户层、功能层和数据层,这种层级关系即可完整的实现前、后台关系的业务系统:

1、统一的用户感知层

解决的是用户触达的问题,考虑在何种场景下通过何种方式触达用户,最表层的业务体验,也就是我们常说的“用户体验”,包括界面,布局,配色等直观可见的每一个产品页面。

在这个层面,我们考虑的是如何更好的表达我们想要表达的业务元素,如何能够更吸引用户的注意力和停留决策,它在一定程度上决定了用户是否会立即卸载,或者是带着好奇之心在有效的引导下探索产品。

这是产品经理的必修课,因为它能直观的让人直接评断产品,最常见的说辞就是“丑爆了”,而且是任何一个产品都会遭受到这一批评,哪怕你是微信也毫不例外。

但真正决定体验的,并不是这一层,但又无可奈何必须面对的现实。所谓人靠衣装吧,一个打扮时髦的美女你甚至都会觉得她特别让你感觉亲密,甚至你会直觉认为她根本就是一个好人,一个让你喜欢的人。

2、解耦的业务功能层

多少产品经理实际在这个层级就开始陷入迷糊状态,根本不知道甚至没有意识到“功能”的分解和层次设计,在他们眼里,任何产品都只需要一个界面+一个数据库,即可愉快的完成所有业务。

也是因为这种主观的判断,让多少人总是认为这个东西很简单,那个东西很容易,别人都可以做出来,你为什么明天还不能上线,以及谁谁谁又做了这么一个功能,我们明天也要做一个。

诸如此类的根本原因就是只见树木不见森林。

这一种粗浅的认识,也带来大量的产品被粗制滥造,胡乱承诺,最后不得不草草收场,因为这些产品从一个开始就没有被真正的理解和设计,而是想当然的认为“我们只差一个程序员,明天就可以上线”。

对这一层级的认知不足,会让我们陷入一种奇怪的局面。

“一个妈妈生一个孩子要10个月,10个妈妈生一个孩子只需要一个月”。

“业务功能”的解耦,本质是解决产品的核心功能的设计问题,包括如何高效的完成业务功能,如何与用户层进行交互,如何与外部系统进行数据通信等一系列复杂的业务处理。

很多人无法理解,某个功能为什么要这么设计,为什么不能那样设计,就是无法真正理解这一层的设计,从而加剧整个产品在最开始阶段就限定了它的可能性。

这是“重构”的原罪。

这里再次用了解耦这个词,为什么会反复用到它,根本性原因就是考虑业务的扩展性,也是考虑整个平台的伸缩性。不要把各个功能模块过于紧密的耦合,导致任何些微的改动,都必须大动干戈。

最蹩脚的设计,就是所有功能只看到一个业务线,所有人都在忙活,但没有人搞得清楚边界。

还有一种糟糕的局面就是,完全的各自为政,没有协同,没有次序

这两种情况我都见过,带来的后果除了平台的效率低以外,也是资源的浪费,更是阻塞了团队的上升空间。——阻塞整个团队获得成就的通道,也阻碍团队能力的提升。

3、集中的数据处理层

相比较于“用户层”,是所有人都直观可见的是,所有人都知道有一个“数据库”,甭管知不知道数据是什么,有哪些,要怎么用,它就相当于我们的钱袋子,装得有东西肯定就比没东西更好。

再要怎么摆弄摆弄,无法是钱票子装得多点,容易数一点的问题。

所以,这一层处理的问题就是,产品的数据从哪里,沉淀到哪里去。实际上,稍微深入一点的问题就是数据如何高效的存储,如何快速的被调用。

比如今日头条的推荐算法,就是根据用户在使用(用户层的行为)过程中产生的数据,来绘制这个用户的习惯偏好,采用一种恰当的规则来推荐相关的内容,从而使得这个用户更多的停留在产品上。

然后在此基础上催生更多的商业可能性。

让我们在回到案例中的O2O项目。

O2O产品架构示例

我们用一个“用户故事”来描述当时我们需要解决的用户问题:

“张三新买的冰箱出现了故障,他找到当时的回执单申报了一次售后服务,要求在周六上午处理完冰箱的故障”。

从这个描述过程中,我们就能知道3个关键信息:

用户信息

要有一个方便的界面协助用户申报服务,怎么能让用户在申报服务的时候把资料问题录入正确,有没有办法在用户打开这个界面就直接解决问题,有没有一个FAQ供用户查阅;

业务信息

后台要处理用户的服务请求(申报的售后服务),要安排一个擅长处理这个故障的工程师上门服务(业务技能要匹配,不能派一个不懂冰箱的工程师处理这个问题),时间是周六(资源要调配,距离太远不合适,时间冲突不合适等);

数据信息

上次的订单是怎么找到的,这个用户是不是在服务期内,是不是要额外收费,费用是多少。这次处理完的订单怎么和上次的订单相关联等等。

按照这种逻辑,就能清晰的勾勒出,在处理用户的服务请求所需要完成的系列动作,整个平台的数据和信息是如何进行流转,以及为了支持整个平台需要开发的产品功能有哪些。

当然,单凭这一个“用户故事”就能绘制一个大概的业务轮廓。

这是一种最简单的分层机制,我们可以快速的得到一个初步的产品框架,当然一定存在不少边界不清晰,分层不明确的问题,我们还需要根据不同信息层级的边界、同一层级内模块和模块的边界。

下一步,则是针对具体的业务展开规划。

03、抽象与解耦

在前述的”分层“逻辑中,在各个业务层级中,我用了很多“小豆腐块”表示具体的功能。我想你现在的疑问应该是,这些小豆腐块是如何被界定,它们的依据又是什么呢?

比如架构中有“接单”、“履约”、“回单”、“订单列表”,为什么没有登录,修改密码这些基础功能,是因为这个产品不需要这些功能吗?

这个问题的奥秘在于,产品架构解决的是业务问题,而非功能问题。意思就是,架构只框定这个产品要完成哪些业务,取得哪些成果以及相关的支撑数据,而不解决为了完成这些业务,所需要进行的每一项具体的功能操作。

所以,在整个设计中,我们只看到一些简洁的、概括性的词汇,而没有任何的实际功能,而且这些词汇甚至可能本身就是整个平台中的一个模块或者一个小产品,也可能其中的词汇永远不会在产品中表现为具体的功能,比如“履约”,它代表的就是完成服务的一系列过程。

这种设计思路,就是抽象化,把具象的业务抽象为一种概念性的词汇,其目的不仅是为了架构设计的简洁性,更是为了整个平台业务的完整性,并把离散的业务过程场景化。

通过这一层“抽象”以后,整个平台的业务框架即可完整的呈现只纸面上,我们就能把用户发起请求一直到后续的所有关联性业务完整的进行串联,也就能够发现整个过程的不足和缺陷,去通过产品的优化来促进业务的优化。

这才是真正的产品价值,企业通过部署这一套平台化系统,带来了整个业务流程的优化,提升了用户的体验。对2B的产品来说,它需要的是系统性的提高整个组织的效率,提升整体的绩效,这其中也必然包括可见的系统部署成本,维护成本,以及相应的管理成本的优化。

对用户来说,也只有这种全链路的触点优化,才是真正的用户体验。

我们再次回到O2O平台的一个“用户故事”来反推如何进行业务的抽象化:“坐席接到用户王五反馈的问题,安排李四上门服务解决用户的冰箱故障”。

在这个描述中实际包括的关键信息有:记录问题,安排资源,工程师接受任务,上门服务。所以这个过程经过抽象处理后就变成如下形式:

受理:坐席把用户反馈的问题记录在案,并形成一个单据

调度:坐席根据用户信息,安排恰当的工程师

接单:工程师接受坐席安排的任务

履约:工程师上门处理用户反馈的问题

我们可以把这种抽象后的关键节点称之为“业务动作”,他们将像一栋房子的支柱和承重墙一样,牢牢的支撑起整个平台的运转。

通过这种高度抽象后,整个系统非常简洁而又完整,各个环节只需要通过一个订单主线即可完成一系列的任务,不管这个过程将要发生多复杂的业务交互都始终能够围绕用户和订单来进行溯源管理和任务处理。

这种抽象后的业务动作即可作为我们构建产品架构的核心信息,通过业务分层和逻辑分层,严谨进行分拆,形成最终的产品架构设计,并根据这一线索进行恰当的展开和引申,则整个平台雏形便显现在我们眼前。

回到问题的起点,假设我们没有能够进行这种抽象性的架构设计,我们将面临怎样的局面呢?

04、架构,是一个渐进的过程

架构,是一个偏向宏观的事情,而设计则是一个偏向细节的事情。

这里要区分的一件事就是技术架构和产品架构,技术架构是将产品需求转变为技术实现的过程,产品架构则是将用户需求转变为产品需求的过程。

我们可以想象一栋楼的地基问题所带来的影响,对任何产品而言,一旦架构定错,轻则楼盖不高,重则根本改不起楼。

所以,产品的架构设计,最考验PM的判断力和设计能力——体验是设计出来的,产品是规划出来的。简洁的架构决定产品的调性。

但是,与“房屋”的案例不同的是,产品的架构不只是“结果”,而是一种迭代的过程。它会随着业务的发展而不断优化和调整,对一款产品来说,不存在一种始终静态的架构模式。

比如电商平台,在早期很多功能可能都不是关键性业务,在架构设计都可能不会考虑,而是随着业务的发展而调整。所以,必须保证产品架构具备一定的扩展性和成长性。比如电商平台的banner,随着业务的发展,它能完全成长为一个独立的强运营的业务模块。

<本文完>

关注公众号:产品微言,回复“从0到1”,即可下载完整  PPT   

我将通过17篇文章,解密推动产品落地的全过程,包括产品的定义和设计、开发过程的管理,以及由此引发的系列问题,更包括在此过程中我所学到的宝贵经验和深刻教训。

欢迎交流,下辑预告:

2B产品的架构设计实战:O2O平台的多租户模型设计

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

推荐阅读更多精彩内容

  • 每天进步一点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点~~从开始只能写几句话、模仿别人的观点,到现...
    一个帅气的名字呀阅读 18,023评论 4 31
  • 产品知识面考察 真题 例题分析 例题7.3 DAU代表 。 日用户点击量 月活跃用户数量 日活跃用户数量 网站...
    爱摄影的奥派阅读 12,245评论 4 46
  • 一、生命周期 一个事物一旦出生,就必然会长大,变异,一旦长大,就面临着衰老,接下来就是消亡了,这个过程就称为一个事...
    ZyBlog阅读 2,645评论 1 11
  • 原文出处:http://www.apkbus.com/blog-875309-62984.html 前言架构设计,...
    zzj丶阅读 1,587评论 1 24
  • 累了一天 九点半下班 饺子馆的老板娘 看我满头大汗 一副疲倦的样子 或许看出了什么 问道 妹子刚下班吧 我大概太...
    KatyGu阅读 163评论 0 0