关于产品架构设计——分享某政务系统产品设计

产品架构严格意义上分为:信息架构、产品功能架构、业务架构。

信息架构:一般是指对用户接触到的信息进行规划(如:表单信息、界面原型,交互方式)

业务架构:一般是指如何开展业务的计划。绝大多数产品的业务架构是由公司BOSS拍板,轮不到产品经理决定。

产品功能架构:一般是指规划系统有那些功能模块功能,各个功能模块之间如何进行数据交互。好的产品功能架构,可以极大的减少团队开发成本。通常情况下产品功能架构直接称为产品架构。在产品经理的技能树上,只有点开了“产品功能架构”的产品经理,才算得上资深产品经理。除非是产品天才,绝大多数人都需要积累大量的经验和各种维度的知识才能做出合理的产品功能架构。

我们常常看到在很多团队中出现这样的情况——甲方提出一个新的业务需求,系统某一部分的功能就需要推翻重建。造成这个现象的原因实际上就是产品功能架构没有设计好,没有考虑到系统可扩展性。

这次我来分享下最近做的一个政府政务项目遇到的,“如何与多个三方系统同步用户信息的” 产品架构设计思路。

最近服务某市的政府项目(以下简称A项目)。这次的A项目包含了“建设+维护+运营”。和早几年甲方就是大产品,甲方要怎么做乙方就怎么开发,服务好甲方验收关键人,到点收“建设费维护费”的方式有很大的不同。这次必须保证A项目的运营效果,达到甲方要求的运营目标。

由于A项目的用户是全市公务员。第一次召开项目的需求研讨会时,甲方乌压压来了几十号人,各个业务口子的对接人都来了。结果产品组做需求调研走访各家单位就耗费了两个月。

甲方要求,A项目上线后,要求各级单位管理员在A项目上,管理各自单位的人员信息,便于市政府了解各级单位情况。全市公务员都要使用A项目。从而达到完成甲方的运营指标的目的。

听上去,蛮简单的吧?但是调研后发现,各个口子的单位(例如党组织部和公安机关)都有自己的IT外包团队负责自己的业务系统,各家IT团队的人员质量和系统质量也是参差不齐,各个口子的单位也是根据自身的业务情况设计的用户信息表。有的还有大量的垃圾冗余数据。各级单位的系统管理员,对同时在两个系统中管理用户信息的情况十分反感(提出要求在自己的业务系统中管理)。

为了在达成甲方的要求的同时减少项目实施阻力我设计了如下方案:

首选解决A项目的用户确权的问题?

根据以上的背景描述可以发现,存在某人在多个单位中的情况。例如张三是税务局职工,也是税务局党支部党员,还是税务局工会会员。税务局、党组织、工会组织这三个口子单位的业务系统中,张三的信息可能会存在差异。例如:由于张三的信息录入各家系统的时间不同,电话号码会有差异。以哪一个系统的用户信息为准,就成了一个难题。

经分析,所有单位的用户信息均含有姓名、电话、身份证。我将其定为 “基础用户信息”。A项目的用户登录和确权相关操作,只以基础用户信息为准。“单位用户信息” 用来各业务口子单位相关业务使用。

最终设计了,如下图所示的 “基础用户信息” 和 “单位用户信息” 的用户信息结构。

又因为,A项目属于标准的封闭服务系统。在项目上线运行的过程中,先有用户信息,再有用户登录操作。然而,系统先获得的用户信息是各级单位提供的,并且不同单位给出的用户信息也不相同。那么就需要考虑,如何判定登录A项目系统的用户,是哪一个单位的用户。传统的注册登录逻辑明显不再适用。

因此设计了如下图所示用户激活流程:

流程简图(只是做个分享,流程图偷了懒)


激活流程 时序简图

从上图可以看到,在用户激活这个流程中,共牵涉到几个功能模块。设计产品架构时就需要定义好这几个模块分别干什么事情。

在这个流程中,出现了一个“用户身份索引”的功能模块,这个模块的功能是为了“支撑”验证身份证是否存在于系统中。因为,系统需要对接全市各个业务口子单位的系统用户数据(以下简称三方系统)。为了在配合对方调整三方系统时,减少对A项目的影响,就需要为每个三方系统用户信息建立对应的单位用户信息表。

在新用户访问A项目进行用户激活操作时,如果采用直接到多个“单位用户信息表”中进行查询的话。那么每次有新的单位系统对接时,A项目都需要对用户激活流程进行升级。这样从成本考量明显不划算。

所以,设计了“用户身份索引功能”用来存储系统中的身份证号。如下图所示,三方系统同步过来的用户数据中的新增身份证号都存入“用户身份索引”。

第三方系统 同步数据 简图

用户在激活时,只要看“用户身份索引”中是否有身份证,就可判定这个用户是否可以使用A项目。

总结

为了A项目系统用户信息的“易于维护和扩展”。本方案不以任何一家单位的用户信息为基础,而是独立做一个基础用户信息。

这样做的好处是,当某一个单位自己的业务系统用户信息发生了变化,A系统只需要只针对这个表进行同步升级并放出更新接口,即可完成两个系统的用户信息同步。

如果遇到A项目扩展出其他业务系统时,可以单独为新增的业务系统设计用户信息表。这有利于甲方介绍的其它业务团队开发的系统接入A项目。(你不可能吃掉整个政府的蛋糕,予人方便于己方便,毕竟人家接入你,你就是平台。总比你接入人家好得多)

有了产品架构设计,开发部门可以更准确的理解产品经理提出的功能需求,能够充分的和产品经理展开讨论。从而最大限度减少功能模块重复修改的情况发生。

这里要特别强调下,术业有专攻,研发工程师比绝大多数产品经理更了解技术这是不争的事实。产品经理做出了产品架构设计仅仅是提供了一个方案而已。最终的实施方案还是需要通过充分讨论后,结合开发成本等因素确认的。

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

推荐阅读更多精彩内容