`
阅读更多

一、分析设计阶段

1、被“CNFM支持子账号”这个名头束缚了思想,没有充分意识到“CNFM升降级”在整个项目中对WS影响的严重程度。这一点,不仅之前的QA同学疏忽了,我自己也有不可推卸的责任。事实证明,在后续的开发和测试过程中,该处的处理成本要远远大过于“支持子账号”的处理成本。

根本原因:对整个系统的熟悉程度不够,还不能够在一定的项目背景下,充分的分析和预测系统真正可能收到的影响和应该做出的调整。

2、项目组的其他成员介入太晚,导致从开发阶段开始,WS线除我之外的几乎所有开发同学,对整个项目的改动点从宏观上根本没有一个清晰的认识。甚至还不清楚自己所作的改动究竟会影响到哪里,以及应该怎样去改。前期的QA同学对项目也没有一个充分的认识。当然,这点在客观上来说,也跟资源的实际情况有关,貌似WS这边的资源安排也确实不怎么给力。

3、对卖家线的后续开发进度做了比较详细的计划,但是对Escrow和买家线的关注不多。当然这个也跟当时对整个项目的理解有关(还没有充分意识到整个项目的影响范围),同时客观上也跟Escrow和买家线的资源介入有关,当时两边都没有投人进来,跟谈不上充分的评估了。

二、开发阶段

1、卖家线在开发初期还是基本按照计划来走的。为了留有充分的自测时间,在前期我甚至留了充分的buffer给每位开发人员,目的是希望大家能够在完成功能开发本身之后,抽出相应的时间进行充分的自测。但事实证明,这点在当时执行的还是有点问题,现在看来,我领的这个小团队,新人貌似还不能完全按计划胜任开发任务,会出现延误现象。老人也故意卡时间完成任务,没有真正有效的利用当初希望预留出来的一段时间。以后对于这种情况,可能需要提前制定一些对策。交叉review和交叉自测可以是一种方法,但是如何有效的执行,还是值得商榷的。

2、都某些不是很熟悉的功能点,过于相信当时的开发人员。比如图片银行容量的变化这个点。当时只是尽量去找到当初做这个功能的人,咨询在哪里使用,影响范围是什么这些。其实任何一位开发人员(包括我自己)也不可能在写完一段代码之后,一段时间之后,还能清楚的记得代码所塑造的业务逻辑和可能影响的范围。这个时候,找到相应的开发时必要的,但是了解了基本背景之后,适当的阅读代码,并且充分grep才是解决问题的最安全方法(至少目前没有发现什么更安全的手段),机器毕竟比人犯错的几率小很多。

3、各条线的开发资源投入时间不等也是一个非常严重的问题。卖家线整个项目受影响最为严重的产品线(也是WS方的主导方)是WS方3条线中最早投入这个项目的一条线。起初重资源、时间的评估上,一直认为卖家线是WS这边最大的瓶颈,总觉得其他两条线再怎么折腾也有足够的buffer可用。但实际上,其他两条线都有自己的问题。资源紧张是共同的问题,但对于买家线,本身自己还没有梳理清楚供级会员的子账号前台逻辑,这不得不说是个不小的问题。对于Escrow来说,开发人员过于自信,轻视了整个项目的影响范围,或者说也不是很清楚整个项目的影响范围。比较杯具的是,我也比较相信两边的开发同学,认为他们有能力并且真正理解了项目的内容。而事实上,我确实有必要在那个时候统一叫上几条线的开发和测试,大家在一起过一遍整个项目的改动点,让各条线的开发和测试充分意识到,项目可能带来的风险点。

三、测试阶段

1、测试前期在系统环境搭建上着实浪费了不少时间。让QA同学弄清楚用分支搭建测试环境和用tar包搭建测试环境没有本质的区别还真不是一件容易的事情。在这个阶段,还因为这个问题跟某位愚昧开发吵得面红耳赤(当时比较生气的是作为一名开发人员,居然不知道两个有什么区别,还理直气壮的认为就应该用tar包搭建环境,也不知道tar搭建环境到底会带来多大的合并分支的时间开销)。别人的问题不多说了,自己的问题是自己没有充分意识到这个问题可能给QA同学带来的困扰。毕竟人家不是干开发的,所以并不会理所当然的知道二方库的release顺序(事实上某些开发也搞不清楚)。这种情况下,其实我应该和所有不理解这个方式的人说清楚,我们为什么放着模式最简单的tar不用,非要用分支。并且让相关各线的人员给QA同学列出相应的二方库顺序非常重要,否则QA同学也不知道应该用什么样的顺序,用了错误的顺序环境搭建的有问题了,也不知道到底啥情况,只能找开发再去搞环境。这个过程就造成了环境搭建的耗时、低效。

2、开发和测试投入时间不连续。这个问题体现的最明显的就是买家线。当时开发完成之后,过了相当一段时间之后,才有相关的QA同学介入测试。当时出现问题了,开发已经无法完全想起当时的情景,QA除了抱怨测试进度的delay,似乎也没有什么方略可以应对了。同时因为开发此时已经投入另外的项目,测试同学在遇到问题时,不能及时找到相应的开发获得帮助也是个问题。当时买家线因为环境搭建问题居然整整耽误了一天的测试工时。但是那边的开发除了质疑我为什么不用tar包搭建环境之外,根本没有提供任何有用的帮助给QA同学,那是我只能牺牲自己的时间来帮QA搭建Escrow环境。这样不仅耽误的买家线的测试进度,也耽误了卖家线的测试进度。

3、测试期间,卖家线抽走了两名其他的开发。主管的意思是他们可以暂时抽出去做别的项目,有问题是也可以再回来fix bug。因为他认为测试期间已经不应该有太多的问题了。但实际上,指望被抽出去的资源再回来处理问题,是非常不可靠的。因为他们已经被其他项目或需求占用,主客观上,都很难及时抽身fix他们搞出来的bug。为了不耽误项目进度,我能做的就只有整日忙碌于测试环境的搭建和各种奇怪的bug fix。加之那段时间故障猖獗,居然照成连续3天没有时间修复bug。当时我最大的问题就是没有充分意识到这个问题的严重性,并主动提出这个问题给主管和项目大的PM,不然这个问题可能通过协调其他资源能够更好的得到缓解。自己也不用搞得焦头烂额了。

4、QA同学的水平也确实是个问题。这个不是针对某个个人,但客观的说,测试阶段确实浪费了我不少的时间在帮助QA重复搭建环境上。面对这种情况,下次再有类似场景的时候,可以考虑抽出一定的时间,写写帮助文档之类的,做些一劳永逸的事情,可能才是磨刀不误砍柴工根本解决方案。

四、发布阶段

1、发布计划制定,当时过于相信Escrow某开发,造成发布计划评审时,才由opps指出Escrow通过vip方式调用RMI的配置项错误。如果当时没有发现,后果会很严重。事实上,到后面,发生在这位开发同学身上的问题还层出不穷。在这里我不想一一列举了,但是这个问题却始终有点困扰我。对于这种情况,我作为WS方的PM,同时兼任卖家线的主力开发,是否需要样样细节过问,事必躬亲。如果是,我哪里有那么多的时间和精力。如果不是,我又能通过什么方式更好的规避这类事情发生呢?

2、发布前一周,进入大联调,细心的汪汪还是发现了一个之前遗漏的ME中价格问题。这个问题,当时我处理的非常不理智。事实上,老姚作为这块的原创作者和最为熟悉的人,以及WS这边的PLA,我最该首先请教的就是他。但我还是做了一个自以为比较负责任的决定,就是从根本上改掉价格的费率不对的问题。这个问题耗费了我大量的时间,因为越做越发现,需要考虑的点其实不仅仅是修改个数据那么简单。DB和存储都必须考虑周全。于是在最后非常宝贵的时间里,我不仅花费了将近两个晚上的通宵时间来实现这个功能,同时也严重影响了QA同学整体的测试进度。在后续自己的精神状态不是很好的情况下,如果不是汪汪及时提醒自己找老姚review这部分代码,还真不知道这么仓促写出来的上千行代码会给QA同学造成多大的负担,以及在预发布或者发布中,抽不抽风。这点必须注意,自己作为PM,在项目的这个阶段,必须学会评估风险!

3、预发布过程中,也问题不小。最为严重的一个问题,就是之前测试好的用户降级之后的产品下架逻辑突然不好使了。这个问题一直折腾我们到了半夜。最郁闷的是,预发布环境timer需要回滚,我们没有第二次线上测试的机会。于是带着这个问题,是否需要在继续深究,我自己也有些摇摆不定了。但是最后关头,还是聪妈严肃要求一定要搞清楚这个问题,不然到第二天正式发布就来不及处理了。于是在预发布当晚,我们几乎采用了各种手段,终于找到了问题。在几乎度过了一个不眠之夜之后,查出来的问题,竟然是因为消息发送方发给我的数据类型变了!我晕倒。这个问题为甚么测试的时候没暴露?因为测试的时候她还没改。又是一个典型没有按照流程走的案例,杯具楽。

4、预发布当天,还有生产环境没有建表的情况,更不用说sql review了,我汗啊。就连sql review都是当天那么紧张的发布环境下临时做的。

5、正式发布当天,又出现了没有提前做数据订正的问题。这个情况,最大的问题,不是忘记了做数据订正,而是当时记得了,但是开发人员因为不熟悉某些表的含义,而错误的进行了线上查询,认为不需要进行数据订正,而实际上他遗漏了9W多条数据。后果还是很严重的。

总结

项目总算发布上线了,带着些许遗憾,带着某些风险,当然还是带着一丝我们努力付出之后看到的收获的喜悦的。零零散散的写了好多,算是做个祭奠。回头想想,其实还是对那些在这个过程中帮助我一起成长的人心怀感激的。

谢谢汪汪在最后关头临危受命,帮我分担了好多工作,并为整个WS这边的项目质量保驾护航。

谢谢刚哥神经半夜,大老远的从家来跑来公司陪我排查问题,真讲究!

谢谢聪妈严谨的态度,不息通宵达旦的帮我review代码,陪我一起分析、调试,让我看到什么才是工程师应该具有的品格。

谢谢彬哥关键时候,跟我一起合作,一句“江湖救急”真的有种为朋友两肋插刀的感觉。

谢谢那些曾经让我觉得很不爽的甚至鄙视的人,是你们让我知道了,很多事情还是需要自己认真考虑的,完全的相信别人还是靠不住的。

最后也得谢谢亲爱的GF在这顿时间的理解。这段时间,确实疏忽了你好多。希望后续你的项目也能顺利上线,同时也不要太辛苦了。。。。。。

最后,希望这次经历能够带给我更多成长,在下一的项目管理中做的更好吧。

 

分享到:
评论

相关推荐

    两个数据库比较(SQLServer版)

    * 假设:库CNFM1与CFR1是一个项目不同时期的版本数据库,由于整合的需要,那么下面的功能可能有用 * 使用:将CNFM1、CFR1库的名称替换成你需要对比的两个即可F5 * 作者:黄顺龙 * 联系:huangshunlong@139.com */

    西门子FDA221-CN/FDA241空气 采样吸气泵说明书

    总结来说,西门子FDA221-CN/FDA241空气采样吸气泵是一款关键的消防安全设备,它在抽吸式烟雾探测系统中发挥着至关重要的作用。为了确保其有效性和安全性,用户必须按照指定的安装指南进行操作,并时刻注意设备的正确...

    移动梦网短信业务信令流程规范V3.0

    #### 七、总结 《移动梦网短信业务信令流程规范V3.0》是中国移动通信集团公司为了保障移动梦网短信业务的高效、稳定运行而制定的一项重要技术规范。通过对SCP、ISMG、SMSC及SP之间交互的信令消息流程进行详细描述,...

    docker配置mysql主从复制.docx

    - 创建目录 `/usr/local/mysqlData/master/cnfm` 和 `/usr/local/mysqlData/master/data`,分别用于存放配置文件和数据库数据。 - 编辑配置文件 `/usr/local/mysqlData/master/cnf/mysql.cnf`,设置 `server-id=1`...

    数据库基础测验20241113.doc

    数据库基础测验20241113.doc

    微信小程序下拉选择组件

    微信小程序下拉选择组件

    DICOM文件+DX放射平片-数字X射线图像DICOM测试文件

    DICOM文件+DX放射平片—数字X射线图像DICOM测试文件,文件为.dcm类型DICOM图像文件文件,仅供需要了解DICOM或相关DICOM开发的技术人员当作测试数据或研究使用,请勿用于非法用途。

    Jupyter Notebook《基于双流 Faster R-CNN 网络的 图像篡改检测》+项目源码+文档说明+代码注释

    <项目介绍> - 基于双流 Faster R-CNN 网络的 图像篡改检测 - 不懂运行,下载完可以私聊问,可远程教学 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 --------

    使用epf捕获没有CA证书的SSLTLS明文(LinuxAndroid内核支持amd64arm64).zip

    c语言

    (源码)基于Arduino的天文数据库管理系统.zip

    # 基于Arduino的天文数据库管理系统 ## 项目简介 本项目是一个基于Arduino的天文数据库管理系统,旨在为Arduino设备提供一个完整的天文数据库,包括星星、星系、星团等天体数据。项目支持多种语言的星座名称,并提供了详细的天体信息,如赤道坐标、视星等。 ## 项目的主要特性和功能 星座目录包含88个星座,提供拉丁语、英语和法语的缩写和全名。 恒星目录包含494颗亮度达到4等的恒星。 梅西耶目录包含110个梅西耶天体。 NGC目录包含3993个NGC天体,亮度达到14等。 IC目录包含401个IC天体,亮度达到14等。 天体信息每个天体(不包括星座)提供名称、命名、相关星座、赤道坐标(J2000)和视星等信息。 恒星额外信息对于恒星,还提供每年在赤经和赤纬上的漂移以及视差。 ## 安装使用步骤 1. 安装库使用Arduino IDE的库管理器安装本项目的库。 2. 解压数据库将db.zip解压到SD卡中。

    (源码)基于JSP和SQL Server的维修管理系统.zip

    # 基于JSP和SQL Server的维修管理系统 ## 项目简介 本项目是一个基于JSP和SQL Server的维修管理系统,旨在提供一个高效、便捷的维修管理解决方案。系统涵盖了从维修订单的创建、管理到配件的录入、更新等多个功能模块,适用于各类维修服务行业。 ## 项目的主要特性和功能 1. 用户管理 管理员和客户的注册与登录。 管理员信息的管理与更新。 客户信息的创建、查询与更新。 2. 维修订单管理 维修订单的创建、查询与更新。 维修回执单的创建与管理。 3. 配件管理 配件信息的录入与更新。 配件库存的管理与查询。 4. 评价与反馈 客户对维修服务的评价记录。 系统反馈信息的收集与管理。 5. 数据加密与安全 使用MD5加密算法对用户密码进行加密存储。 通过过滤器实现登录验证,确保系统安全。 ## 安装使用步骤

    devecostudio-windows-3.1.0.501.zip

    HUAWEI DevEco Studio,以下简称DevEco Studio)是基于IntelliJ IDEA Community开源版本打造,为运行在HarmonyOS和OpenHarmony系统上的应用和服务(以下简称应用/服务)提供一站式的开发平台。 作为一款开发工具,除了具有基本的代码开发、编译构建及调测等功能外,DevEco Studio还具有如下特点: - 高效智能代码编辑:支持ArkTS、JS、C/C++等语言的代码高亮、代码智能补齐、代码错误检查、代码自动跳转、代码格式化、代码查找等功能,提升代码编写效率。更多详细信息,请参考[编辑器使用技巧] - 低代码可视化开发:丰富的UI界面编辑能力,支持自由拖拽组件和可视化数据绑定,可快速预览效果

    《计算机视觉技术》实验报告-8.1提取车辆轮廓

    《计算机视觉技术》实验报告-8.1提取车辆轮廓

    springboot小徐影城管理系统(代码+数据库+LW)

    随着现在网络的快速发展,网上管理系统也逐渐快速发展起来,网上管理模式很快融入到了许多生活之中,随之就产生了“小徐影城管理系统”,这样就让小徐影城管理系统更加方便简单。 对于本小徐影城管理系统的设计来说,系统开发主要是采用java语言技术,在整个系统的设计中应用MySQL数据库来完成数据存储,具体根据小徐影城管理系统的现状来进行开发的,具体根据现实的需求来实现小徐影城管理系统网络化的管理,各类信息有序地进行存储,进入小徐影城管理系统页面之后,方可开始操作主控界面,主要功能包括管理员:首页、个人中心、用户管理、电影类型管理、放映厅管理、电影信息管理、购票统计管理、系统管理、订单管理,用户前台;首页、电影信息、电影资讯、个人中心、后台管理、在线客服等功能。 本论文主要讲述了小徐影城管理系统开发背景,该系统它主要是对需求分析和功能需求做了介绍,并且对系统做了详细的测试和总结。具体从业务流程、数据库设计和系统结构等多方面的问题。望能利用先进的计算机技术和网络技术来改变目前的小徐影城管理系统状况,提高管理效率。

    C++与Matlab实现SIFT特征提取算法+项目源码+文档说明+代码注释

    <项目介绍> - SIFT特征提取算法C++与Matlab实现 - 不懂运行,下载完可以私聊问,可远程教学 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 --------

    (1991-2024年)国家自然、社科基金部分名单(含部分标书)(最新!!!)

    数据介绍 数据名称:国家自然、社科基金部分名单 数据年份:1991-2024年 样本数量:10万+ 数据格式:PDF、excel

    卓晴-信号与系统课件.pdf

    卓晴

    as-bundled-clients

    as-bundled-clients

    学习时最后的资料包括面试等信息

    学习时最后的资料包括面试等信息

    (源码)基于Spring Boot和Ant Design的雨选课系统.zip

    # 基于Spring Boot和Ant Design的雨选课系统 ## 项目简介 雨选课系统是一个基于Spring Boot和Ant Design框架构建的前后端分离的选课系统。该系统实现了学生选课、成绩查询、教师成绩修改、课程编辑、课程新增等功能。登录信息使用Redis存储,并支持课程图片的上传功能。 ## 项目的主要特性和功能 1. 用户登录与权限管理 学生、教师和管理员分别有不同的登录权限。 登录信息使用Redis进行存储。 2. 课程管理 学生可以查看可选课程列表,并进行选课和退选操作。 教师可以查看自己教授的课程,并修改学生成绩。 管理员可以编辑和新增课程。 3. 成绩管理 学生可以查询自己的成绩。 教师可以修改学生的成绩。 4. 图片上传 支持课程图片的上传和展示。 5. 日志记录 系统记录请求和响应的日志信息,便于问题追踪和性能分析。

Global site tag (gtag.js) - Google Analytics