跨部门算法迭代需求,从提出到上线的全流程实践

文章目录

  • 引言
  • 需求评审
  • 技术方案评审
  • 模块开发
  • 系统联调
  • QA测试
  • 产品验收
  • 经验教训

引言

最近工作中有一个算法迭代的需求,我在其中作为技术侧负责人(技术主R)推动需求完成上线。

需求涉及多个部门,前后耗时接近1个月。

我第一次在这么复杂的需求中做技术主R,深入参与了需求从提出到上线的全流程,中间踩了不少坑,特此把整个过程记录下来,供大家参考。

我按照时间顺序,将全过程分成5个阶段:产品需求评审->技术方案评审->模块开发->系统联调->产品验收,接下来也会按照这个顺序依次描述。

正文见下。

需求评审

为了描述清楚此次需求,我画了个简易的系统数据交互图,步骤大概为:C向D触发一次计算请求,D拿到必要的参数后,将其传给算法,算法计算完成后将结果返回给D,D将结果包装后再返回给C;C将结果做必要的处理后,继续推送给Z,Z处理后再依次传给K、J和G等下游。

系统现状是:整个系统是已有的,但算法侧在计算时只有A类数据。此次核心需求是:算法侧需要增加X和L类数据,以提升最终的核心指标。

从系统能力上看,在拿到更多数据后,算法能分析得到更多内容。从系统变更上看,算法需要新增决策的逻辑,其他模块则需要增加接口字段并对新数据进行包装和处理。

初步盘点下来,此次主要的改动是算法侧,因此作为算法迭代负责人的我,便成了本次需求的技术主R。

技术方案评审

我被确定为技术主R后,产品便催我去约其他模块负责人的时间,早点组织技术方案的评审。

我找了一个大家都空闲的时间段,确定了评审时间。在实际评审时发现,只有我写了比较完善的技术方案,K写了大概思路,其他人什么都没有。当时感觉,大部分模块确实只有一些接口上的变动,好像没啥需要写的,所以也没在意。

会议上遗留的重要TODO是:(1)完善整体技术方案;(2)确定各模块工时、预期上线时间和具体的排期。

技术方案在会前并没有写,实际上是评审后补充的,主要包含4项内容:

(1)需求背景和目标,此处直接复制了需求文档中的内容;

(2)总体设计,此处复制此前系统开发时绘制的系统交互流程图;

(3)详细设计,按模块分别@了各负责人,并告知将各自的技术方案添加至此;

(4)工时预估和排期,评审会上做了初步沟通,结束后又逐一确认,然后得到了如下的排期。

模块开发

进入模块开发阶段后,我和D确认了输入和输出接口的字段后,就埋头撰写算法代码了。算法主要关注的事项有两个:(1)输出结果准确,这是基本要求,自不必多说;(2)能兼容线上已有版本,确保上线后不影响线上功能。

在完成代码开发、结果自测和代码评审之后,我就坐等联调了。

系统联调

由于所有联调都依赖D能正确从算法模块拿到数据,所以需要先专注于算法和D的联调。刚开始联调过程并不顺利,到了联调的第二天下午,才基本没有问题。后来我反思了一下原因,主要是因为算法需要的输入X在联调前只有大概字段,并没有提供具体实例,导致在联调时,算法耗费了大量时间在实例数据的处理上。

因为联调一共只有两天,到了联调的第二天下午,产品开始在群中询问联调进度。然后才发现,只有D和算法在联调,其他内容都没开始。所以其他模块间的联调也要快速动起来了。

很快,C出现了大问题:算法返回更多数据后,C只有新数据的接收功能,并没有继续开发针对新数据的处理功能,所以新数据实际上并不可用。

紧急沟通后的结论是:C需要2天重新思考技术方案和代码开发,然后再用2天做系统联调。

没办法,我只能在群中同步产品和老板们,项目上线日期需要延期4天。

为了提升第二次系统联调的效率,经领导的提醒,我梳理了联调的顺序,并提醒大家完成后依次在群中确认。

最终,第二次联调耗时2.5天。

QA测试

技术方案评审的时候,和QA约定的是,由于其他模块改动量较少,所以只对算法(+D)模块做测试,其他模块的测试由各自负责人自行完成。

因C导致的延期,并不影响QA测试算法模块,所以QA测试无需延期,可以按期开始。

算法测试的全流程为:(1)QA和算法、产品确认需要测试的功能点;(2)QA构造测试数据,并逐一测试算法结果是否符合预期;(3)反馈测试结果。

最终,QA测试很顺利,几乎不需要花时间再对算法代码做优化。

产品验收

产品验收分为测试环境验收和线上环境验收。

验收用例范围由产品确定,并由算法、D和C构造所需的必要输入。

本以为会和联调测试一模一样,但实际上产品验收时考虑的更多——还需要确认是否会影响到其他需求,以及是否会被其他需求影响。

验收过程也是比较顺利的,只有J模块有点小问题。

最终,测试环境验收共耗时2.5天,系统正式上线后,线上环境验收耗时0.5天。

经验教训

如果是有经验的技术主R,可能已经发现了很多我做的不好的地方。
这里我反思总结如下:

(1)技术方案应该在评审前就有个初版,各模块需要完成的功能应该和相关负责人达成一致,模块间的接口参数应该定义清楚。

(2)算法需要的数据样例,应该要求D至少在模块开发的中期就提供出来。

(3)系统联调时,需要提前确定联调的顺序和步骤,并告知相关方。

(4)在各个阶段都要及时跟进各模块进度,感知可能存在的风险,并寻找解决方案。

(5)排期时,不要过度压缩时间,还要有预留时间。

虽然此次经历并不是完美,但依然收获颇多,总结如下:

(1)更细致地了解整个系统。平时的工作基本仅限于算法和D,做了主R后,会倒逼自己了解清楚C、Z等后续所有模块。

(2)深度参与了一个需求从提出到上线的所有过程,极大拓宽了自己的认知,是一次很有意思的的体验。

(3)相比新系统开发的需求,算法同学更适合在系统迭代的需求中做主R。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/338281.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Spring-简介

在向读者描述Spring时,笔者不打算从某处粘贴一段常见的概念性文字糊弄完本专栏的第一篇文章,而是用易于理解的话向读者指出几个重点。 (1)是框架。何谓框架?就像搭房子一样,框架就如同是墙体结构&#xff…

【已解决】Qt Creator设计模式被禁用不能点的原因及解决方案

Qt Creator 下载地址(含历史版本):https://download.qt.io/official_releases/qtcreator/ 症状 Qt Creator 目前最新版为12.0.1,安装后打开.qml文件发现设计工具图标为禁用状态。 原因及解决方案 根据官网材料(Qt C…

苹果笔记本 macbook 在 office word 中使用 mathtype 的方法

前言 想在 MacBook 中使用 mathtype,去搜索,去 Apple Store 下载也发现没有 解决方法 打开 office Word 的「插入」中的「获取加载项」、「我的加载项」。 在应用商店中下载,需要登录自己的微软账号。 加载成功后就可以使用了。 注意 和…

Python 类变量和实例变量详解

更多资料获取 📚 个人网站:ipengtao.com 在Python中,变量分为类变量和实例变量两种类型,它们有着不同的作用范围和生命周期。理解这两种变量类型的区别对于面向对象编程非常重要。本文将详细介绍Python中的类变量和实例变量&…

webpack 核心武器:loader 和 plugin 的使用指南(上)

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

docker使用http_proxy配置代理

钢铁知识库,一个学习python爬虫、数据分析的知识库。人生苦短,快用python。 在内网服务器中,docker经常需要下载拉取镜像,但由于没有网络要么只能手动导入镜像包,又或者通过http_proxy代理到其它服务器下载。 解决方法…

OneNote使用总结

试一下OneNote表格复制到CSDN的编辑器 用表格整理内容挺方便的,不过复制过来格式还是有些变化 目录 常用快捷键 高级应用 常用快捷键 文字编辑与排版 字号增加减小 Ctrl Shift 大于小于号 整行上下移动 左右缩进 Alt Shift方向 插入或转为公式 Alt 等于…

机试指南:Ch1:绪论 Ch2:枚举和模拟

文章目录 第1章 绪论(1)如何准备机试(2)OJ和开发环境简介(3)OJ的原理、OJ的几种情况(4)学习建议(5)23版内容(6)常犯的编程小错误(7)其他小问题一览①int取值范围②return 0 缺省问题③万能头文件 #include <bits/stdc.h>④scanf、printf 比 cin、cout 更节约时间⑤不确定…

鸿蒙常用容器组件介绍

鸿蒙常用容器组件介绍 前言总结1. Row/Column2. flex3. Stack4. List5. RelativeContainer6. Grid7. Scroll8. Tabs9. WaterFlow参考资料 前言 本文不介绍Text&#xff0c;Image这种单独的视图控件&#xff0c;主要还是过一下在构成一个复杂页面时所需要的外层的容器组件。免得…

【Unity学习笔记】New Input System 部分源码和测试用例补充

转载请注明出处&#xff1a;&#x1f517;https://blog.csdn.net/weixin_44013533/article/details/135630016 作者&#xff1a;CSDN|Ringleader| 主要参考&#xff1a; Unity官方Input System手册与API【Unity学习笔记】Unity TestRunner使用【Unity学习笔记】第十二 New Inp…

【征服redis14】认真理解一致性Hash与Redis的三种集群

前面我们介绍了主从复制的方式和sentinel方式&#xff0c;这里我们看第三种模式-Cluster方式。 目录 1.前两种集群模式的特征与不足 2.Cluster模式 2.1 Cluster模式原理 2.2 数据分片与槽位 2.3 Cluster模式配置和实现 3.一致性Hash 3.1 哈希后取模 3.2 一致性Hash算法…

proteus8.15安装教程

proteus8.15安装教程 1.管理员运行 2.一直NEXT到这一步&#xff0c;需要注意&#xff0c;一定要选这一个 3.选中后出现 4.一直下一步到更新 这边结束后准备激活&#xff1a; 1.安装激活插件&#xff0c;先关闭防火墙 2.下一步 3.最后&#xff0c;将数据库放在根目录下 …

RHEL - 更新升级软件或系统

《OpenShift / RHEL / DevSecOps 汇总目录》 文章目录 小版本软件更新yum update 和 yum upgrade 的区别升级软件和升级系统检查软件包是否可升级指定升级软件使用的发行版本方法1方法2方法3方法4 查看软件升级类型更新升级指定的 RHSA/RHBA/RHEA更新升级指定的 CVE更新升级指定…

【C语言】深度探讨文件操作(一)

文章目录 &#x1f4dd;前言&#x1f320; 为什么使用文件&#xff1f;&#x1f309;什么是文件&#xff1f; &#x1f320;程序文件&#x1f309;数据文件 &#x1f320;文件名&#x1f309;二进制文件和文本文件&#xff1f; &#x1f320;文件的打开和关闭&#x1f309; 流和…

机器人电机综述 — 电机分类、舵机、步进与伺服、物理性质和伺服控制系统

电机综述 图片与部分素材来自知乎大佬不看后悔&#xff01;最全的电机分类&#xff0c;看这一篇就够了&#xff01; - 知乎 (zhihu.com)&#xff0c;本文只是把机器人中常用的电机知识提炼了一下 1 按照结构和工作原理划分 1. 同步电机 ​ 电机的转速与定子磁场的转速相同步…

《WebKit 技术内幕》之八(1):硬件加速机制

《WebKit 技术内幕》之八&#xff08;1&#xff09;&#xff1a;硬件加速机制 1 硬件加速基础 1.1 概念 这里说的硬件加速技术是指使用GPU的硬件能力来帮助渲染网页&#xff0c;因为GPU的作用主要是用来绘制3D图形并且性能特别好&#xff0c;这是它的专长所在&#xff0c;它…

k8s 使用cert-manager证书管理自签

个人建议使用安装更快&#xff0c;比helm快&#xff0c;还要等待安装crd kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.13.3/cert-manager.yaml#官网 https://cert-manager.io/docs/installation/kubectl/#创建自签的ClusterIssuer c…

数据库设计最佳实践:学院个人信息管理系统中的MySQL优化

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…

【C++记忆站】类和对象(一)

类和对象(一) 1.面向过程和面向对象初步认识 C语言是面向过程的&#xff0c;关注的是过程&#xff0c;分析出求解问题的步骤&#xff0c;通过函数调用逐步解决问题 C是基于面向对象的&#xff0c;关注的是对象&#xff0c;将一件事情拆分成不同的对象&#xff0c;靠对象之间…

2024年热门项目管理软件推荐:提升项目管理效率的工具集合

项目管理系统软件有哪些&#xff1f;本文将根据项目管理系统软件的功能、选择项目管理系统软件对公司的好处&#xff0c;根据国际上知名软件评测网站G2 Grid的评测结果对8款2024年好用的项目管理软件&#xff1a;Zoho Projects、Smartsheet、monday、Asana、ClickUp、Notion、A…