万事开头难,知己知彼,方能百战不殆!
项目背景
将要改造的结算系统属于第三方物流企业的核心系统, 从2017年搭建至今,历经三任研发经理, 代码已经累计三百万行。从第一天加入开始,我就感觉到了氛围的异常,总有莫名的争吵充斥在耳边,并且空降的架构师,总有格格不入的感觉。这种局面总要破掉的!项目使用dubbo搭建的分布式框架,从最初的设计文档看出,先期的系统架构师还是下过功夫的,
从数据接入、数据清洗到计费规则、目标数据生成,整个思路还是比较清晰;系统模块划分按照功能划分为数据接入、数据清晰、规则配置、台账生成等。 我先把系统的架构图整理出来,对整体有个概念。
系统逻辑架构图
系统与外部系统关系图
系统与外包系统有很多数据交互接口, 并且协议多种多样, 若实现不严谨,数据丢失的情况不会少。
团队调研
这个是需要认真对待的,比较老员工对系统的了解与理解会更深入,他们对系统的痛点更加深有体会
对系统有个大致了解后,接下来需要与团队成员沟通其对系统的看法与期望。
项目经理
- 问:团队组成结构是怎么样的?
- 1个项目经理,1个研发经理,3个Java开发工程师;5个产品经理;2个技术外包;
- 问:项目的背景,业务场景是什么?
- 涉及运输、仓储、装卸等物流各个环节的计费
- 生成账单推送财务系统进行收付费结算
- 问:项目目前最迫切的问题是什么?
- 需求积压严重, 已经排期到两个月后
- 线上总是出问题
- 系统经常反馈慢
- 研发人员效率太低
- 问:你对团队的提升有什么目标?
- 提升研发效率
- 降低服务器事故率
- 及时感知系统的问题,而不是每次都由业务发现并找到我们
研发经理
- 问: 目前团队的技术人员是如何分工的?
- 2个主程, 分别负责两个业务板块,1个实习生做一些文档或者不重要工作;
- 2个技术外包开发一些计费工作
- 问:各技术人员水平如何?
- 2个高级,2个中级,1个实习生
- 问: 目前遇到的比较突出的问题是什么?
1/3时间处理线上问题;1/3时间处理运维、测试问题;1/3时间开发新需求。
- 线上问题多
- 运维问题多,定位难
- 开发周期长
- 发版费劲,本地打包,ftp上传服务器(确实落后太多)
- 线上问题难复现,查找问题费时费力
- 上下游丢数漏数严重
高级开发工程师
- 每天的任务明确吗?
- 除了会知道第二天会开发某个需求外,其他的工作无法确定
- 工作过程中经常扰乱开发节奏的事情有哪些?
- 处理线上问题
- 处理运维问题
- 验证测试反馈的bug
- 业务、运维人员的问题咨询
- 无效的会议
- 测试反馈的bug很多吗?
- 有一些, 毕竟没有自测就交给测试(醉了!应该不止一些吧)。
从调研的情况来看,问题还是很多。 针对调研的信息分析,最终总结出接下来的工作计划。
-
提升服务性能
-
提升开发效率
-
搭建监控体系
-
提升团队能力
-
形成开发制度