首页数码科技 > 正文

深度长文(一):什么是产品架构?

一切脱离业务的架构都是耍流氓,产品更是如此。本文主要先跟大家整体讲一下产品架构的基本概念和方法~enjoy。

我们常常会看到“产品架构”这个词,甚至能看到有些公司专门有一个叫做“产品架构师”的岗位。

说起架构,很多人会觉得很虚, 那么到底什么是产品架构呢?

我们知道开发有专门的一个岗位叫技术架构师,推己及人,我们先看下技术架构师是干嘛的?

架构师能对线上业务进行模块划分,系统拆分重构,并做好相关高可用的措施,以保证系统的稳定,安全、高效地运行。简单来说这是一个既需要掌控整体又需要洞悉局部瓶颈并依据具体的业务场景给出解决方案的团队领导任务。

先来看下技术架构师的几个核心关键字:

  1. 权衡与平衡
  2. 抽象、建模与设计
  3. 预见性和前瞻性
  4. 简化之美
  5. 模式与重用
  6. 质量、效率与资源
  7. 敏捷、迭代与演进
  8. 前构与重构

本质上,技术架构的关键字同样适用于产品架构。

技术架构中有一句比较流行的话:一切脱离业务的架构都是耍流氓,产品更是如此。

我考虑把“产品架构”写成一个系列文章,这篇文章先会整体讲一下产品架构的基本概念和方法,对于上述关键字的深度解析。

一、什么是产品架构? 1. 先来看看“人”的构成

(1)从原子水平60多种重要的,如:氧占约65%、碳占约18%、氢占约10%、氮占约3%,(这四个元素约占人体96%)。其他元素较少,但也很重要。

(2)从分子水平上说,水约占人体约60%,碳水化合物和脂肪占人体约14%,蛋白质占人体约17%,其它如维生素、矿物质、纤维素等。这些是人体的七种营养素,这七种营养素在人体中每一个都扮有非常重要的作用,不可缺少,也不可过多。

(3)在细胞水平分析,人体由细胞、细胞外液及细胞外固体组成,细胞是组成人体的基本单位。

(4)在组织水平分析,人体是由四大组织组成,即上皮组织、结缔组织、肌组织和神经组织。

(5)在器官水平分析,多种组织以不同的编排形成器官。人体内有很多器官,如胃、肺、心、肾、脾、胰、肝、膀胱、尿道、子宫等。

(6)在系统水平看,共有9大系统。如消化系统、呼吸系统、脉管系统、内分泌系统、神经系统等等。

我们以消化系统做一个比喻,就很清楚了。先来看下消化系统的示意图:

我们会发现人体消化系统:

  1. 由很多器官组成:由消化道和消化腺两大部分组成。
  2. 能形成一套自发的运作流程:食物进入口腔、咽、食道、胃、小肠(十二指肠、空肠、回肠)和大肠(盲肠、阑尾、结肠、直肠、肛门),最后排出肛门,流程结束。其中消化腺分布在消化道管壁附近,并将消化液排入消化管内帮助消化食物。
  3. 有必要的功能作用:食物的消化和吸收,供机体所需的物质和能量。
2. B端业务体系的构成

“人体的消化系统”非常像“B端的业务体系”,比如一个患者来诊所看病:客户需要先在网上预约,然后在约定时间到诊所登记、看诊、付费、取药,最后离开诊所。

整个业务流程由很多”器官”组成:“软性器官”比如预约、登记、看诊、付费、取药等模块,“硬性器官”比如医生、护士、药师,以及对应的药品、材料、叫号硬件、打印机等等。

这些软性和硬性的“器官”在整个流程体系中 相互协同发挥着不同作用,才能够让患者在流程中顺利的往后推进,直至到达流程的终点。 这套业务体系发挥的作用就是有序的让患者得到诊疗。

说完了人的消化系统,再反观B端业务,我们会发现很多相似之处:

  1. 消化系统——业务流程体系
  2. 组织——底层基础模块
  3. 器官——一级业务模块
  4. 细胞——二级业务模块
  5. 分子——页内tab(三级业务模块)
  6. 原子——字段

这里出现的“底层基础模块”、“一级业务模块”、“二级业务模块”等本质上就是对业务的分层。

(1)定义层级

一般来说B端产品的分层基本就是按照上述(2)-(6)的维度进行划分的,可视业务复杂程度适当增加或减少层级。

(2)完成分层

将同一平台下、同一职能下、同一角色下具有高度关联的子模块分到同一层母模块中,这就需要你作出判断哪些模块是业务相似度和关联度都非常高的。

事实上(2)-(6)构成了业务的结构,每个维度模块们的任意一个模块都是结构中的节点,他们之间相互独立,但又相互关联、相互影响。

类似计算机网络的结构:

所以我们看到: B端业务的核心在于业务流程+结构 且业务塑造的结构是为业务流程而服务,什么样的业务流程决定什么样的业务结构。

3. B端产品架构的构成

产品架构就是对业务的结构化抽象!根据业务体系的分析,我们看到其实TO B产品最后就是要抽象出准确的流程+结构。

我们常常说一个功能,或者一个业务场景的解决方案,本质其实就是一个小系统。

在这个小系统中,上面那些“底层基础模块”、“一二三级业务模块”、“字段”等各种节点支撑了这套业务流程,从而使得这个功能(解决方案)能够形成闭环,并顺利的运转起来。而众多功能/解决方案又构成了一个产品整体,就像这些众多的相互独立、相互作用、相互依赖的小系统组成了一个大系统。

再强调下:大家要记住TO B业务中,流程是核心,结构都是围绕业务流程进行划分和设计的。 所以流程的优先级是大于结构的。

二、如何绘制业务流程图?

一款产品的主要核心业务流程的脉络一定是非常清晰的。比如:这是一款自助开票软件,那么核心流程一定是用户扫码自助填写开票信息,并由系统完成开票,并发送到用户手机/邮箱。比如:这是一个电商平台,那么核心流程一定是选购商品,添加购物车,下单完成支付。

当然B端复杂的业务场景往往会有多条主业务流程,并且附带了很多分支流程。

我们在画流程的时候,首先要定义横纵向维度,其次就是划分模块。

一般来说, 流程图的纵向维度可以做成职能部门/角色/平台层;流程的横向维度可以进行平台层/模块层的划分。

以下图“拼团功能”为例,横向是平台层,纵向是模块层,这是一个跨平台跨模块的产品需求。可以看到在这个业务流中,一级模块划分出了营销、商品、订单、统计模块。本质上划分模块就是对业务流的解耦。

三、模块划分的基本原则?

根据上述流程构建的一个非常简单的产品结构图:

(这个结构图略去了很多,只是想做个示意)

这其中我们看到划分出来了“商品”、“活动”、‘订单“、”统计“,加上“商家管理”、“消息推送模块”共6个模块。