论添加一行代码需要付出多少努力

157 天前
 roundRobin

需求是需要在某一行计算费用总和的代码中除去某一项费用,就是类似加一行

totalfee -= excluded_fee

这个需求是公司的税务部门提出的,说这个费用必须免除。PM ,TPM ,SDM 们经过一周的开会后确定必须免除,于是让我开始写 LLD 和 LoE 。

然后我花了一天研究这个excluded_fee的是否在任何情况下都等于要求免除的费用,免除的费用是否能够同步到所有的数据库,中间是否存在数据不同步所导致的错误计算的可能。LLD 和 LoE 写好后开始分别找:

  1. 这个 calculator 的 up stream
  2. 这项费用的 down stream
  3. 这个 total fee 的 down stream
  4. 公司会计部门
  5. 公司的会计工程部门(会计相关的 service 开发)
  6. 公司税务部门
  7. 公司的税务工程部门(税务相关的 service 开发)
  8. 组内的 stake holder 们

在两周的时间里,开了无数会,写了无数个 meeting notes ,deployment plan 也因为 prime day 改了无数次,最终才得到所有的 approval 。

昨天一边吃止痛药一边花了一个小时的时间完成了代码修改和测试,接下来,这个 CR 需要再让他们 approva 一遍,才能部署。

这个漫长的过程,到底体现了流程的严谨,还是有太多的冗余步骤呢,过程中自己好像变成了 TPM ,跟各个部门扯皮较劲,心累不已。

9655 次点击
所在节点    程序员
66 条回复
renmu
157 天前
大公司病
guanzhangzhang
157 天前
🙈注释有写吗
majula
157 天前
大厂是这样的

之前在大厂做内部系统的时候,就连“修正界面上错别字”这种不涉及任何逻辑变更的改动,都需要分别找十几个业务方同步,等他们都确认无影响后才能上线,共耗时 5 个工作日。可想而知,那些涉及到逻辑变更的改动,要多久才能上线

至于为什么要这么做,那就不得不提当年的生产事故。有个业务方在获取数据的时候不去调 rpc 接口,而是直接爬 web 页面。有次我们修改了文案而没有通知下游,导致他们的爬虫获取到的数据错乱,影响生产环境,直接损失数百万元。最后我们全组背锅,绩效 C (意味着年终奖少了 10k+,而且一年内没有晋升资格)。那个业务方也没好到哪里去,据说裁了十几人
chaorenzhuce
157 天前
当然是流程的严谨,建立这些流程一定是经过了血的教训,大公司之所以是大公司,就因为这些流程是有价值的,靠流程规避人性的风险,你看哪家大公司没有流程管理部门,真当老板们是傻逼吗
youthfire
157 天前
微信:所以我早就说了 :D
yagamil
157 天前
所以在大厂,大部分都是螺丝钉。
xiangyuecn
157 天前
无所吊谓,就算是拉屎也得付薪水,开一礼拜会也不是不可以
akira
157 天前
啥都不管直接上当然也可以啊。。后面各种账目对不齐的时候,花的 可就不是 2 周时间了
forvvvv123
157 天前
LLD 和 LoE 是什么意思?
keepwalk2020
157 天前
你干的这活有必要用 5 个显示器+两台笔记本么?
只看你的硬件配置,就知道是个形式主义+大公司病流行的公司。

但是,你改的那行代码确实需要这么到哦手续审核
keepwalk2020
157 天前
你改的其实不是程序,而是付款流程,当然需要严格审核,如果你仍认为你改的只是一行代码,说明你还有很大成长空间
keepwalk2020
157 天前
发起改这行代码的流程其实应该是自上而下,他们开完会,你负责删代码,根本没你多少事。
但是依你说的情况,发起改这行代码的过程是自下而上,当然会把事情搞得复杂,而且无形之中你可能给自己挖了一个坑你还不知道...
wenyuhe
157 天前
@powerman 不能赞同更多,有些流程看似繁琐,其实只是正规流程。国内程序员不喜欢流程的本质就是流程上的耗时不算工作内容,而且很多小老板小 leade 喜欢处于“划算”的角度砍掉应有的流程。
suuuch
157 天前
税务提出来的,可能是跟税收减免相关的,税务这玩意没弄好,被认定是故意的,那是可以把税务部门的审核人员给送进去的。。。。这人家怎么可能随便操作。
LonelyChristmas
157 天前
@0xsui #6 非常对,开发第一版功能不注重代码质量,堆起的屎山可以推动很多项目,比如重构,比如各种 PMO 介入。要是一开始做好了,也就没后面人的事了,但是也体现不了初版设计的优越性,所以每次看到屎山我都用扁鹊三兄弟的故事提醒自己,出了问题再找我,否则不管。
lookStupiToForce
157 天前
你对待这个变更的流程和态度是对的。

至于耗时费力,这其实暴露了 [现有的代码框架、工具、流程/你们使用的代码框架、工具、流程,无法很好地穿透单个变量的计算流程,以做到明晰化]

我以前就遇过这种问题,一个变量被引用来引用去,在各个类里继承来继承去,每次引用/继承还附带不知道多少道的转手解释或者过渡用计算。最后整个计算流程散落在 N 个人负责的不同子项目里,问谁谁都不懂这玩意儿咋来的,谁都不知道全局。
除非有完整经历以上所有过程的 code review 的总项目负责人,否则这就是个禁忌的薛定谔猫箱,谁都不敢打包票我输入进去啥,出来的对应玩意儿能按照我理解的概率可能来分布。

何解?
试想一下,现在有了 AI ,或者以后有了 AGI ,每次这种 引用+后继计算 时,都有一个 AI 来总结计算内容、计算逻辑、变量来源、变量边界条件、输入输出范围、输入输出意义,那么变成上面这种烂摊子的几率就会小很多
wolfie
157 天前
第一次看到 横排 5 个显示器的,能多发几张桌面图?
zkqiang
157 天前
所以为什么要那么多个屏幕...
corcre
156 天前
@zkqiang 当然是为了玩 Command Line Train 啊🐶🐶
0xsui
156 天前
@LonelyChristmas 好,事不关己高高挂起,学会了,睁一只眼闭一只眼。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1057143

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX