Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >重构业务系统,我是这样做的

重构业务系统,我是这样做的

作者头像
新亮
发布于 2020-06-29 07:51:12
发布于 2020-06-29 07:51:12
1.2K0
举报
文章被收录于专栏:新亮笔记新亮笔记

重构,是任何一个技术团队都无法绕过和回避的话题。

重构的原因有很多,可能是伴随着业务的发展与升级,系统无法快速支持需求迭代,这时就有了重构的念头,一般情况下不建议对老系统进行重构,毕竟重构是有代价的。

我最近参与了一个重构项目,接下来给大家分享下,我在重构业务系统过程中的经验总结。

1. 了解系统

接到重构任务后,不要立刻动手执行重构,而是对当前的业务流程和架构状态有个清晰的了解,如果开发过当前系统的同事还在公司,一定要拉着同事好好讨论。

我们要知道系统一定是给人用的,是给哪些人用的?不同的人使用系统的侧重点有哪些不同?他们使用系统主要是解决什么问题?这些问题我们一定要弄清楚。

要知道怎么给自己创建不同角色的用户,然后登录系统进行操作使用,如果涉及到了一些专有名词,一定要和团队成员沟通并达成一致。

2. 业务流程图

通过了解系统之后,清楚业务的核心流程,这时要按照理解绘制 业务核心流程图,这里面涉及到与各系统的交互,需要考虑跨系统之间的交互可否使用异步完成,尽量减少循环调用的情况,同时还要确定出当前系统的边界。核心流程图画好了,还要根据不同的业务分支绘制 业务各分支流程图

这种图有很多工具都可以画,软件可以使用 EdrawMax,在线版可以使用 ProcessOn

3. 业务功能模块图

根据业务流程图、业务各分支流程图,我们要确定出哪些功能模块?各功能模块之间是如何交互的?原来数据是如何存储的?根据以上问题,我们要绘制 业务功能模块图 ,然后再绘制 业务各模块详细图

根据模块详细图,需要画出清晰的层次结构,梳理出 提供给他方的接口(约定接口名称) 和 依赖他方的接口,这时还要考虑规划出系统需要的基础服务功能,比如日志记录,监控预警等,然后根据功能点考虑分工,并评估出排期。

4. 约定时间

  1. 接口文档约定完成时间
  2. 开发完成时间
  3. 联调完成时间
  4. 自测完成时间
  5. 提测时间
  6. 上线时间

如果开发时间比较长,开发期间还要约定 “里程碑时间” ,整体采取前紧后松的节奏,先往前赶,保证在 “里程碑时间” 符合预期。

5. 约定规范

  1. 编码规范
  2. 代码管理规范
  3. 例会规范(早、晚会制度)

例会规范,让项目人员轮流主持,鼓励每人发言,及时给予反馈。

6. 非技术问题

舒缓团队的压力,给予团队更多的鼓励,定期向团队同步状态,得到大家的理解和支持,还有一些无法把控的各系统间交互沟通,我们要做到与各对接方坦诚沟通。

7. 上线准备

上线前做好上线准备,充分准备出需要提前配置的东西,同时想好 B 方案。

8. 上线后复盘

这个点非常重要,总结这过程中的经验与不足,同时表扬大家做了一件很牛X的事情,团建一波 Happy 起来。

小结

以上,仅供参考。

上面的这个过程,其实是重点关注了 研发计划管理 和 研发项目管理 ,关于 研发质量管理 如果没时间的话,可以上线后再制定计划完善。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-06-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 新亮笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
产品经理必备技能之业务流程图
业务流程图(TFD)是一种描述管理系统内各单位、人员之间的业务关系,作业顺序和管理信息流向的图表。
葆宁
2022/01/06
2K0
产品经理必备技能之业务流程图
一线技术管理者究竟在管什么事?
项目立项 -> 需求评审 -> 视觉稿评审 -> 技术评审 -> 项目启动 -> 开发 -> 联调 -> 测试 -> 发布。
新亮
2020/02/25
4730
探索中前行 | 一个设计师做产品的浅显心得
| 导语 当设计师有了一定的工作经验后,往往会发现工作的范围不再只限于输出设计方案。这就要求我们除了专业的深度累积,也还需要拓宽横向职业技能。有幸在今年可以参与一个完整从策划到运营全程跟进的项目。在这个探索过程中,我累积了一些产品搭建的几点基础知识。 在我的认知体系中,将产品的类型进行了如下划分: 以主体维度划分:产品类型可分为“消费级产品”和“企业级产品”,也就是我们常说的“C端产品”和“B端产品”。 消费级产品和企业级产品的区分特征在于,产品的客户和用户是否为同一主体。所谓客户,就是付费的那类人;所
腾讯大讲堂
2020/08/21
4600
if 我是前端 Leader, 前端业务开发做不做设计?
😂 有可能掉进了一个黑洞。不是 Byte Dance,现在国内大小公司都卷,整体行业的已经被带偏了,还有向其他行业蔓延的趋势… 真是好的不学
_sx_
2023/10/23
2100
if 我是前端 Leader, 前端业务开发做不做设计?
敏捷迭代运作中的罪与罚
        身处移动时代,移动产品竞争激烈、功能体验日新月异,不论软件产品还是硬件产品,产品迭代速度日益加快,从硬件产品而言,即便是卓越如iPhone,也从最开始从从容容两年打磨一个产品被逼着敏捷至一年(甚至半年)推出一个新品;而软件行业,产品迭代更新速度更快,从古老的年度版本,到现在月度版本甚至双周周版本,大家都在追求速度致胜、产品快速试错。而所有这一切,都绕不开一个词——敏捷。
江中散人_Jun
2023/10/16
2510
敏捷迭代运作中的罪与罚
原生APP开发流程
原生APP外包开发流程与一般的软件项目外包流程类似,但针对原生APP的特性,在某些环节需要特别注意。以下是一个详细的原生APP外包开发流程。
数字孪生开发者
2024/12/18
1490
原生APP开发流程
业务流程图实操
梳理关键逻辑从三个点去梳理分别是: 1、角色:都有什么人参与到功能里? 2、事项:角色都做什么事情? 3、信息流向:要完成任务,流程是如何的? 如下图
靠谱先生
2018/09/10
1.3K0
业务流程图实操
深入探索 BPMN、CMMN 和 DMN:从定义到应用的全方位解析
在当今快速变化的商业环境中,高效管理流程、灵活处理案例以及精准制定决策是企业成功的关键。为了应对这些需求,对象管理组织(OMG)推出了三种强大的建模标准:**BPMN**(业务流程模型和符号)、**CMMN**(案例管理模型和符号)和 **DMN**(决策模型和符号)。这三个标准各有侧重,分别适用于结构化的流程管理、动态的案例处理和规则驱动的决策制定,同时还能相互协作,覆盖更广泛的业务场景。
没事学点编程小知识
2025/03/05
750
深入探索 BPMN、CMMN 和 DMN:从定义到应用的全方位解析
业务流程图分享
维基百科:A flowchart is a type of diagram that represents an algorithm, workflow or process, showing the steps as boxes of various kinds, and their order by connecting them with arrows. This diagrammatic representation illustrates a solution model to a given problem.
公爵
2022/09/28
4280
业务流程图分享
基于UML的需求分析和系统设计
本文主要讲解如何在项目过程各阶段采用合适的UML图形进行分析和设计,重点关注以下问题:
架构之家
2022/09/01
1.1K0
基于UML的需求分析和系统设计
如何熟悉一个系统?
这样的场景多了,就需要去梳理常见问题以及应对方法,方便后续遇到类似场景可以快速应对。
烟雨平生
2023/03/07
2800
如何熟悉一个系统?
运用产品思维写好产品需求文档
‍ ‍本文作者:kayeelao,腾讯TEG产品策划 一、导语 作为一个产品经理,我们最离不开的一个词,就是“需求”。能传达我们对需求的理解与定义的工具就是产品需求文档。而产品需求文档也是贯穿于整个产品设计研发过程中的一个关键指导纲领。 在工作期间,我撰写了不少需求文档,同时在理解需求、表述需求、实现需求的过程中不断磨练自己的产品思维。因而撰写此篇文章,尝试通过具体经验反思总结,形成系统化、可实践复用的关于产品需求文档撰写的方法论。希望这篇文章能帮助同样是产品新人的同学们学会用产品思维撰写需求文档,并运用到
腾讯大讲堂
2022/01/12
1.6K0
真刺激:一个核心系统 3 万多行代码的重构之旅
一开始,我所做的重构都停留在细枝末节上。随着代码趋向简洁,我发现自己可以看到一些设计层面的东西了,这些是我以前理解不到的,如果没有重构,我达不到这种高度。
cxuan
2020/11/09
3460
真刺激:一个核心系统 3 万多行代码的重构之旅
新项目,如何画好产品原型?
导语| 画好产品原型,是每一位产品经理的必修课。而从零开始的项目,其难度更是高于其他已经进入正常迭代节奏的项目。本文主要从个人的实际工作经验出发,介绍如何画好新项目的产品原型。 本文作者:klayhuang,腾讯产品运营 在每个产品经理的成长道路上,总会遇到一些全新的挑战,比如全新的功能,全新的项目,乃至全新的业务,全新的市场。每一次新挑战,都是对自己的一次磨砺。 其中,经历一个从零开始的项目,亲手打造一个全新的产品,对于产品经理来说,是成长最快的一种方式,同时也是检验自己能力的绝佳路径。 然而,负责一个全
腾讯大讲堂
2022/02/17
8820
项目总延期?需求乱插队?程序员如何做好项目管理
👉腾小云导读 程序员对工作量评估不准确?日常临时问题打乱排期?怎么让大家对需求的理解一致?如何既保证开发效率又保证质量?项目管理是「把事情做对」的重要能力之一。知识型工作者包括程序员,在工作中都不知不觉中扮演着「非职业项目经理」的角色。具备项目管理能力,对程序员职业发展、个人生活都有重大价值。本文详细分析程序员如何进行进度管理、质量管理和风险管理。 👉看目录 1 为什么开发者需要懂项目管理     1.1 项目管理是“通过别人做成事情”的能力     1.2 项目管理能输出个人影响力     1.3 项目管
腾讯云开发者
2023/03/21
1.3K0
项目总延期?需求乱插队?程序员如何做好项目管理
提效 | 如何写好设计文档
设计文档可以说是日常工作中非常重要但又容易被忽略的部分. 好的设计文档是项目成功的重要基石.
一个架构师
2022/06/27
4430
腾讯项目经理:如何快速上手新项目?
本文来源:腾讯KM- IEG增值服务部 - 技术藏经阁 | 导语 “任务”作为大部分运营活动的核心组成要素,使得任务中心类的项目应用广受欢迎。此类系统在实际研发过程中,涉及环节较多。对于新同学,顺利的带领一个此类项目是不小的挑战。因此整理个人经验成文,作为参考与借鉴。 最近会有许多新同学来咨询关于此类系统合作在项目管理方面的经验信息,因为此类应用涉及研发环节较多,又确实有许多可以总结和分享的细节信息、经验,因此整理出来,希望能够对他人有所帮助。 国内游戏运营对于玩家的习惯培养已经非常成熟了,基本一个
腾讯大讲堂
2019/09/05
7800
腾讯项目经理:如何快速上手新项目?
B端业务流程的梳理方法
B 端产品的需求,是由业务的需求衍化而来,是因为业务上有需要,所以才制定,而不是产品经理凭空想象,觉得这个功能很厉害,用户一定会喜欢就直接做上去。
物流IT圈
2019/12/06
2K0
WEB项目开发流程介绍
相关人员需要以此了理解产品的需求,提出质疑:这是什么功能,怎么做,为啥这么做,大概包含如下几个方面:
贾维斯Echo
2023/10/18
7560
WEB项目开发流程介绍
需求评审会怎么做?
无论什么职位都需要一个归属感,而不是一个接收任务和完成任务的工具,让团队中每个人都了解一件事情的来龙去脉更有利于这件事上的落实和达成共识。
靠谱先生
2018/09/10
4830
相关推荐
产品经理必备技能之业务流程图
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文