一、什么是产品架构图
产品架构图是产品经理用来表达自己产品设计机制的一张概念图:
它将可视化的具象产品功能,抽象成信息化、模块化、层次清晰的架构,并通过不同分层的交互关系、功能模块的组合、数据和信息的流转,来传递产品的业务流程、商业模式和设计思路。
由于产品架构图通常用于比较复杂的产品项目中,目前介绍产品架构图的相关书籍和资料极少(尤其是入门级别的资料很少提及),却是设计复杂产品时不可或缺的文档之一。
没有资料的探索过程漫长且没有方向,在终于有所沉淀后,我花了四周写下了这篇总结,希望可以为你绘制产品框架图时提供简明的参考。
二、为什么要画
梳理自己对产品方向的判断:
思考这张图如何设计的过程,也是帮助你梳理“半年内自己的产品该往何处去、需求应该如何分期和落地、和其他产品的依赖&竞争关系是什么、未来的可拓展性在哪里”等问题的过程。
为技术&运营的输出形成支撑:
当这张图被设计出来后,按照产品架构图的结构和路径,项目的里程碑(RoadMap)就可以被清晰的拆解出来,同时项目成员也可以根据这张架构图产出运营计划、技术系统架构方案等强依赖产品方向的方案。
让他人可视化的理解你的产品架构:
能较为清晰简单的呈现自己的思路、明确自己的产品边界、指明发展的方向,常用于在项目规划或项目总结中进行演示,帮助不了解你的产品的人快速的建立对你的产品结构、功能、复杂度的认知。
三、何时需要画
建议在复杂项目开始前写:
当你要开始设计一个系统性、完整的需求时,如果跳过画产品架构图的步骤,直接开始画原型、写PRD、kick off,就很容易发生“改了又改”、“做了一版需求然后又推翻”的情况。
但“种一棵树最好的时间是十年前,其次是现在”:
如果你的项目已经进行到一半,自己却从未产出过这张图,那么就从此刻开始,按照下文的步骤尝试为自己的产品产出一张产品架构图吧。
四、如何画
之前我们分享了【AR最全干货及资料】设计AR产品,你一定要看的总结 ,你可能对AR相关的背景知识已经有所了解。为了分享的延续性,我们来做一个大胆的假设*:
假设你是 微信-扫码功能 的产品经理,有一天老板把你叫到办公室,一番鼓励后拍着你的肩对你说:
“苹果发布会看了没?苹果这么重视对AR能力的支持,我们微信也要赶紧把AR功能做起来。这是个Allen(张小龙)很重视的项目,你回去好好设计一下,明天来跟我过方案。记住,要能够一炮打响,全民参与喔!”
啊,张小龙级别的项目啊!明天就要出方案,怎么办 ?
1.画前准备
1.1列出问题域
在需求初期,产品经理得到的往往只是一句比较模糊的需求描述,它们可能来自于老板、运营或用户。
直接把这句话作为核心产品功能是不恰当的,合理的做法是先把这个产品所有的问题域列清楚。
“问题域”是指自己的产品能够解决的所有问题的空间集合。从核心需求出发,将所有当前需要解决、未来可能要解决的问题放入产品框架的范围,能够帮助你的产品架构图拥有更高的可拓展性,在后续具备迭代和优化的空间。
以微信AR的需求为例,问题域是这样一个集合:
详细操作步骤:
1. 找到收到的需求中,跟产品形态、产品目标相关的词句,去列出“XX的流程会是什么样”、“XX该怎么达成”之类的问题,直到如果这些问题解决,能够实现核心需求的方向和业务目标。
2. 去逐次寻找这些问题需求被解决的过程中,是否有其他要先解决掉的问题、或者其他跟业务相关的问题能够被解决/改善。
3. 按照层级去罗列出所有的问题,并附上自己的初步回答,从而形成一个初步的、自己的产品能够解决的“问题域”。
1.2确定产品方向
在经过问题域的罗列后,你应该能够得到一个模糊的产品方向和功能范围。把这些问题域的答案抽象总结成一个确定的产品需求。
以微信AR的需求为例,根据问题域,我们发现需求不只是扫码组件增加AR识别能力这么简单,整个需求里需要引入广告主的角色,并且需要和广点通、腾讯开放平台等团队合作。最终得到的产品方向描述是这样的:
详细操作步骤:
问题域的环节非常发散,这一步需要回归基础,把模糊的需求补充、拓展和翻译成一个在商业模式和用户体验上能够形成闭环的产品需求。
1. 核心需求确定:我的产品核心解决的是哪批用户、哪个用户需求?
2. 产品目标:如果以一个数字指标衡量我的产品,它应该是什么?
3.用户场景:核心需求基本的产品形态、用户使用的路径是怎样的?
1.3清晰的业务流程
这一步需要根据核心产品需求和问题域的答案,画出简单的业务流程。业务流程是产品设计中常见的图表,绘制方法就不再多做说明。
以微信AR的需求为例,从广告主准备AR互动,到用户在前台使用摄像头参与互动,整个业务流程如下:
2.着手绘制
2.1搭建基础框架
基础的产品框架脱胎于业务流程,但相比业务流程,更加注重产品功能的枚举、功能模块之间的分界。
详细操作步骤:
1. 对照业务流程,根据自己设想的产品机制、基本产品形态和用户的使用路径,列出需要的页面&功能&模块等前后端逻辑。
2. 将刚刚得到的多个流程图中所有功能类似或者范围有包含关系的机制/功能放在一起,以模块化的形式形成一张简单的矩阵图。
3. 将明显是同一个产品范围、同一组产品功能的模块放在同一层级,得到一个基础的产品框架。
2.1明确架构分层
一个具备前后台关系的产品架构图至少分为三层:用户感知层(在何种场景下通过何种方式触达用户)、功能模块层(通过哪些功能模块实现产品的核心功能、和哪些外部平台功能有信息交互)、数据层(产品的数据从哪里来、产品的数据沉淀到何处去)。
在上一步进行简单分层后,我们已经得到一个初步框架,但是难免会有分层不明确的问题。此时需要按照两种维度来处理架构图的层级:不同信息层级的边界、同一层级内模块和模块的边界。
处理不同信息层级的边界:
架构图的层级表达的其实是信息之间的流转关系,不同信息层级之间一定是有逻辑关系的。
其中用户感知层和数据层通常可以简化为一层(用户端的功能表达往往逻辑简单、数据的来源问题则不是自己产品的核心功能),而功能模块层则需要按照自己产品的逻辑去将功能模块层内的主要模块变成新的层级。
2. 处理同一层级内子模块的边界:
各层次之间虽然相关,但同一层次内的子模块之间一定是互相独立、界限分明的(常常对应着不同的开发团队和系统应用)。将解决不同问题的功能拆分成两个子模块,做到一个问题只在同一层解决,避免牵一发而动全身的情况出现。
3. 明确产品间的边界:
产品边界对于开发设计系统架构、业务间的合作模式都非常重要。用不同颜色标识清楚产品框架中,各个部分所属产品的边界,通常其中属于自己团队的部分用亮色表示。
2.3加入信息流转机制
产品架构图在表达产品的核心功能外,也应该体现信息流动的路径:当前层级数据的交互形成产品功能,产品功能又产生新的数据,从而推动下一层级的功能运转起来。
如果当前产品的主要使用角色只有一个,则只需要用箭头标明模块间信息流动的方式即可。如果当前产品会涉及的主要角色比较多,则需要用不同颜色的线条将他们和各个模块之间的信息交互关系外化出来。
五、最终检查
一张好的产品架构图,应该具备以下特点。
清晰的模块功能边界 功能经过抽象,做到标准化、互相独立 上下游产品功能边界清晰,架构分层明确合理 具备迭代优化的能力记得不断根据你的产品的发展情况来更新产品架构图,每次修改的过程对提升产品架构能力的帮助非常巨大。