【干货】如何重构老系统?

557次阅读  |  发布于2年以前

目录结构:

一、啥是系统重构? 二、为什么要系统重构? 三、系统重构,要注意哪些点? 四、该如何推动系统重构这件事? 五、个人过往真实案例分享

前言:

SuperG同学的公司,最近在搞各种大翻修,但是同时里边的员工还要正常工作,于是就出现了:因为厕所要重建,所以要换楼层上厕所,因为楼梯要重修,所以只能用电梯。

导致中午去撒个尿,一趟要20多分钟,造孽啊~

一、系统重构是什么意思?

系统重构,就是结合业务现状,重新设计系统

并不是完全的从0到1,其实是从1到10的过程,既然老系统让公司业务正常运转了那么多年,肯定有其可取之处,千万不要全盘否定,而是要深挖业务,做好用户调研,保留重要的业务场景、流程,取其精华去其糟粕。

二、为什么要系统重构?

三、系统重构,要注意哪些点?

1·结合各垂直事业部业务场景,梳理业务流程现状

先梳理业务流程现状,再结合现状提出可优化的流程点与业务协商,双方意见没冲突,那就可以往下推进。

梳理时,建议重点关注以下几点:

2·合理拆分,系统各板块功能边界

3·逐层梳理产品架构

产品架构的本质:

是理解透彻如何挑出白萝卜、红萝卜,这些萝卜又应该分别放进哪个箩筐。

展示层:系统以什么样的形式给人使用?电脑桌面、浏览器、手机、ipad等。公司内部业务系统,一般是浏览器访问。

表现层:系统长什么样?也就是产品原型,菜单结构如何划分,页面功能解决什么问题?功能页面如何体现?业务流程该怎么走?等。

业务层:业务功能特性,整理各事业部的特色业务功能;你必须有,别的业务不需要。

随着时间的推移,会有不少中台层的功能变成业务层的功能;反之,业务层的功能很少会变成中台层的功能。为何?

因为随着公司的发展,各事业部的业务个性化需求会越来越明显,想去优化又因为是公共功能改不了,怎么办?只能从中台层剥离变成业务层特有功能。

中台层:共性功能,各事业部都需要的共有功能;你有我有全都有啊~

要想做好中台层的架构,首先得知道中台到底是什么?阿里官方的解释:“前台”就是贴近最终用户/商家的业务部门,包括零售电商、广告业务、云计算、物流以及其它创新业务等。

而“中台”则是强调资源整合、能力沉淀的平台体系,为“前台”的业务开展提供底层的技术、数据等资源和能力的支持,中台将集合整个集团的运营数据能力、产品技术能力,对各前台业务形成强力支撑;官方的解释是推出中台为了提升效率支撑前台业务的快速发展。

支撑层:辅助功能+对接的外部系统。比如:权限管理,销售平台对接,物流服务对接,沟通工具,等。

4·定义不改什么比要改什么更难

要改什么,咨询下业务体验下系统,画画流程图跑跑业务数据,一般都能发现。但是,哪些地方又不改,直接迁移到新系统呢?迁移之后,能否与新的业务模型,产品架构耦合呢?

不改的前提有三个,重点深度思考:能满足业务现状,业务比较喜欢这块功能,迁移到新系统风险比较小。

5·历史数据如何处理?

哪些数据是可以舍弃,哪些数据是当前就应该人工维护以便后期批量导入?

如果有些重要数据是不能舍弃,那么在做表结构设计的时候,就要考虑前后数据库表字段的兼容性。

要么在新表中的字段包含旧表必填字段,要么新旧表字段之间有一对一映射关系。

系统重构,数据库中大部分表必然要调整或者重新设计,但小部分表能保留的建议保留复用。

6·业务同事的对互联网软件的接受程度如何?

为何有此一问,举个例子,如果你的用户连英文都不会,你做个中英文双语系统;再比如,你的用户连电脑都不怎么会用,你却做了个系统,他们简单的操作一件事情,要跳转五六个页面。

你我都不是真实用户,不要把用户的水平想象的太高,这不是贬低而是真的换位思考。如果是以上这两种情况,前者英文版本去掉,后者将页面尽量做简洁,流程能合并的合并,说明该给就加粗放大提示清楚,他们在乎的不是页面丑不丑,而是页面少一点,流程简单一点,解释说明明显一点。

对于这类人,多做几次产品培训,保留好培训视频。老系统重构,在此问题上,永远不是他们的问题,而是你的耐心问题。

7·投入产出比

是否一定要重构系统,能否通过更低成本的业务培训或者优化当前系统解决现有问题,但凡有一点希望,我们都不要去贸然重构系统。

如果非改不可呢?那一定要先做好投入产出比的估算,改造老系统都是吃力不讨好的事情。做好了可能并不会获得多少表扬,做砸了就会有严重的后果,被辞退或者降职降薪。

这个应该是大佬们最关注的问题,要投入多少人天,花费多少时间、金钱,建议列个功能清单,将整个项目计划列一下,让大佬心中有数。

8·灰度测试环境数据是否完善

都要动刀了,结果连个测试的地方都没有肯定不行;为了以防万一,灰度测试环境的数据应该定期维护,尽量保持跟正式环境一致,但不用做到实时,一般一周更新同步一次即可

9·多跟业务、技术沟通

千万别他喵的闭门造车不懂装懂,记住一点,人家骂你蠢好过被辞退。你这不是改造系统,你这是在造定时炸弹。

开动之前,一定要先吃透系统现有的逻辑,不懂就问。页面、规则、流程我们一般都会去问。但是,小的点也不要放过,比如一些业务专有名词是什么意思。

10·立项之前产品内部先达成一致

先在产品团队内部消化掉自己能消化的所有问题后,再走出门对外沟通推进。

11·哪个地方先开刀?

识别可以最快可以独立重构的模块,搭好全局重构的优先步骤。一般对现有业务影响比较小的闭环功能,适合先搞起来。

12·不要影响现有业务正常运转

业务不可能等着你系统做好,系统无论如何重构优化都跟不上业务的发展速度,除非公司倒闭。

那么,结合这种现实情况,我们在做系统重构的时候,个人建议新旧系统双系统并行。老系统继续打补丁,新系统分好优先级按进度开发。

13·不要忽视权限管理的重要性

系统设计之初,一定要重视这块,虽属于基础支持层功能,但一旦系统使用的人越多这里存在的价值就体现的越大。

权限配置这块无非包含:公司组织架构管理,用户管理,角色管理,权限配置。大圈套小圈,最终实现一个用户可以拥有多个角色,一个角色可以有多个权限,一个权限可以分为按钮权限,数据权限等。

四、该如何推动系统重构这件事?

五、采用模块化设计理念,重构商品模型

什么是模块化?让系统功能高内聚、低耦合、可复用、可扩展。

比如一个积木是一个节点,十个积木搭建成一个组合。这个组合可以单独拿出去用,可以和其他的组合继续组合,变形金刚里的大力神就是6个机器人组合的,就是模块化。

Copyright© 2013-2020

All Rights Reserved 京ICP备2023019179号-8