3

关于工作无意失误,造成公司损失的疑问请教大家

 1 year ago
source link: https://www.v2ex.com/t/925018
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

V2EX  ›  程序员

关于工作无意失误,造成公司损失的疑问请教大家

  fenranaab · 8 小时 2 分钟前 · 4998 次点击

刚工作一年,开发了个活动,领取现金,领取接口忘记添加分布式锁了,一个用户用技术提走了 5000 多现金,我该负怎样的责任,要赔偿公司的损失吗?公司没有产品经理也没有测试,平时都是运营提需求到我这,我开发完,运营简单测试一下,就上线了。自己感觉挺难受的,平时自己做的工作最多,我其他组员连分布式锁都没听说过。

91 条回复    2023-03-18 17:04:47 +08:00
rimworld

rimworld      7 小时 54 分钟前 via iPhone

活动最终解释权不都在公司吗。假装要走司法威胁,试着找用户追回?
BMAO

BMAO      7 小时 53 分钟前 via iPhone

给你提需求的人有没明确提现规则限制?
rimworld

rimworld      7 小时 52 分钟前 via iPhone   ❤️ 11

直接甩锅,就说客户用非法计算机技术损害公司利益,你发现了,并且给追回了,怕不是还得给你发奖金。
fenranaab

fenranaab      7 小时 50 分钟前

@rimworld 已经在这么做了
xctcc

xctcc      7 小时 49 分钟前

5k 还好,还好不是 50k ,当作一次教训吧,当然要看你领导怎么说
不过这种不是一般限制用户可以领取几次是最基础的吗,5k 最少领取了几十次?
fenranaab

fenranaab      7 小时 48 分钟前

@BMAO 有限制,但这是用户通过批量调用接口,多线程冲突导致的。运营没有技术敬仰,不能理解这种情况
kanezeng

kanezeng      7 小时 48 分钟前

如果明示了活动规则,比如一个用户领一次,那用户算不当得利,5000 够立案了。
正常应该是要求用户返还,
公司内部的话应该给技术处罚,毕竟确实是技术不到家,至于怎么处罚,这个就看公司了。
fenranaab

fenranaab      7 小时 46 分钟前

@xctcc 对,用户多线程请求过来的,未领取状态一直没有修改掉
dunn

dunn      7 小时 44 分钟前 via iPhone

不需要赔付公司损失
当然看你领导会不会扣你奖金了
MZSAN

MZSAN      7 小时 44 分钟前 via Android

承认错误,态度诚恳些,如果实在要不回来 可以暗示自己承担 5000 。领导一般看的是态度,不会真的要你代偿 5000 的
commoccoom

commoccoom      7 小时 39 分钟前

不要想靠技术解决一切问题,必要时加几个活动条款效果更好。不然大厂这么多条条款款的 TOS 放着干嘛。
Maxbee

Maxbee      7 小时 38 分钟前 via Android

用户通过技术提走这不涉及到违法?
daimubai

daimubai      7 小时 38 分钟前   ❤️ 21

@MZSAN 不建议暗示,因为领导可能真的会让他出 5000
xxzlll

xxzlll      7 小时 37 分钟前 via Android

有测试是测试的问题,没测试是公司的问题,程序员写 bug 避免不了滴
daimubai

daimubai      7 小时 36 分钟前   ❤️ 1

我觉得要从根本上解决问题,不然以后这样的问题还会出现。比如招个测试,当然有的测试也不会去测试并发
xxzlll

xxzlll      7 小时 36 分钟前 via Android

@MZSAN 凭啥承认错误?公司难道给他发股份?
testHu

testHu      7 小时 33 分钟前   ❤️ 2

事实已经发生了,责任总得有人扛。
这个时候谁站出来说我为这件事情负责,我认为其实都是加分项。

同样重要的是做好补救和事故复盘:为什么产品定义没考虑到边界情况,为什么开发时存在多线程漏洞,为什么测试阶段会没有这个 case 。怎么做可以让下次避免。

有点鸡汤,但也是十几年来我的工作准则。
testHu

testHu      7 小时 31 分钟前

换个角度,你是老板,你是觉得这个事情谁的责任重要,还是这个事情得到妥善处理并能引起警觉下次避免重要?
deng81416754

deng81416754      7 小时 29 分钟前

说客户用非法计算机技术损害公司利益,你发现了,并且给追回了,怕不是还得给你发奖金。 支持这条
cz5424

cz5424      7 小时 29 分钟前

5000 也不算什么重大损失;假设需要赔偿的情况下,责任也不是 100%是你的,招你进来的那个面试官有责任,你的主管有监督责任;你是主要过错方,但也不用太过内疚,组织举办活动就要考虑这种风险,不是主动犯错一般问题不大
coderluan

coderluan      7 小时 27 分钟前   ❤️ 1

按责任的话,公司没安排测试全责,按法律来说,只能扣测试奖金和开发功能相应的工资。
但是责任和法律都是对正规公司讲的,而楼主公司不正规。
如果楼主有信心离职找到下一份工作,那就楼主说啥是啥,公司垃圾,活该被人薅羊毛。
如果楼主没有这个信心,只能先苟着,那就是公司说啥是啥,楼主技术烂,应该赔偿公司损失。
webcape233

webcape233      7 小时 26 分钟前 via iPhone   ❤️ 1

可能会扣奖金工资,但是按法律给公司造成损失,扣也是不超过 20%吧,不过公司可以解雇
Ansen

Ansen      7 小时 24 分钟前 via iPhone

5000 刚好可以立案,之前我司送进去了一个,好像是一年还是 3 年来着
xbh1794970183564

xbh1794970183564      7 小时 19 分钟前

作为员工就是吸取教训,做好复盘,至于赔偿就有点搞笑了,作为研发,出错是必然的,只能说尽可能不出错,不犯同样的错误,如果这也要赔偿,我只能可以刷题跑路了。
ryd994

ryd994      7 小时 18 分钟前 via Android   ❤️ 18

不负任何责任。
写个 bug 要赔钱,写个爆款会给钱吗?

为什么一个人的 bug 能造成这么大的影响,而没有其他把关措施,这是公司管理层需要反省的问题。

code review 呢?如果有,那 code review 的人也有责任
测试呢?如果有,那测试的人也有责任
相关的流程为什么没能预防这样的事情?这还是管理层的责任
法务呢?法务干什么吃的?

你就是个打螺丝的打工人,今天手滑螺丝没打好,又不是故意破坏,有什么好负责的?

追责到个人、要求个人赔偿的做法,反而会造成甩锅大战,反而会阻碍查找真正的问题根源。人因从来都不是问题根源。
更重要的是,这个“有责任”的人,通常也是最了解这个相关系统,最适合修复问题的人。

相反,如果管理层能建立对事不对人的文化,那么修复问题、避免类似问题,只会更加容易,对公司的长期发展更加有益。

所以不要觉得是“我”写错了代码,而要想想“我们”下次如何消除类似的问题。
ryd994

ryd994      7 小时 11 分钟前 via Android

@MZSAN
@testHu
不要站出来负责。
需要员工担心是否要赔偿的公司,不是好公司,是领导的失职。

能站出来负责是好的。但是遇到 sb 领导的后果是灾难性的。

所以从一开始就不要以“有错”“有责任”“认错”出发,而是客观地陈述事实。指出所有存在的问题。如果领导不认同,而是继续追责,赶紧跑路。幸好只是 5000 。
lifeintools

lifeintools      7 小时 11 分钟前   ❤️ 2

和你有什么关系?这是公司要承担的风险。
charlie21

charlie21      7 小时 10 分钟前

M003

M003      7 小时 9 分钟前   ❤️ 1

@ryd994 对.自己把责任担下来,就是体制内大锅饭的感觉了.

多做多错,少做少错,不做不错.

整体决策,不是一个人能担责的.
hhjswf

hhjswf      6 小时 57 分钟前 via Android   ❤️ 1

在稍微正经点企业,你们整个组今年年终或者绩效白给了,如果有的话。跟钱打交道的活儿,没有一点敬畏之心,这对研发人员并不是盲角死角的问题。哪怕你这 bug 给测试发现拦下来,假如我是领导要找你谈话的
o00o

o00o      6 小时 54 分钟前

下次你写的代码替公司卖了 10 亿的货,是不是得分给你 2 千万?
Euthpic

Euthpic      6 小时 51 分钟前 via Android   ❤️ 1

你给公司干活,你担的只有绩效浮动,实际收益和风险由公司承担
FawkesV

FawkesV      6 小时 43 分钟前   ❤️ 1

我老婆之前写的币交易所,小公司的,提现的时候没加锁,被并发强刷了提现了很多 Usdt 。。后面改了就是,不了了之。
其他员工写的还有个充值的时候没判断正负号,接口调用冲了个负的值进来,又被刷了好几千 usdt.
前前后后估计损失的有十几万人民币,但是客户有钱,流水都是上千万的,结果就算了无所谓😂😂
cmdOptionKana

cmdOptionKana      6 小时 36 分钟前   ❤️ 1

从不同的角度看, 就比较容易客观地看清楚整件事情:

A. 从法律角度, 从公司外部去看, 在公司管理不完善不正规的前提下, 员工的无心小失误, 员工没有法律责任.

B. 从公司内部, 老板的角度看, 可以认为自己信任这个员工, 给他很大权限, 结果他犯错了, 老板可以选择继续信任他, 安慰他鼓励他, 期待他变得更好; 也可以选择不再信任, 收回权限, 把权限给另一个人, 让另一个人来做管理和负责任.

C. 从公司内部, 员工的角度看, 犯错是事实, 责任或多或少总要负一点, 可以选择多负责任, 有利于争取老板的信任; 也可以选择甩锅, 拒绝承担太多责任, 好处是没有直接的金钱损失, 坏处是要赌老板的格局大不大, 如果老板格局小, 很可能盘算着找人取代这位员工.

没有完美的解决方案, 没有绝对的公平, 不管怎样做, 都有得失, 取舍.
perbugwei

perbugwei      6 小时 36 分钟前

我之前也有类似的问题,因为收款账户的 id 变动导致 2000 多都收到一个账户里面去了,我只负责一部分,领导负责部署。然后领导赔付了 2000 ,我请全组和奶茶 200 多。教训就是涉及到钱的谨慎处理或者不处理。
zero47

zero47      6 小时 28 分钟前

看你的描述,你们公司应该娶不到用分布式锁的地步吧。如果单用 mysql ,乐观锁就好了。update 就是原子的,领取前先 update 领取状态(状态必须先为 false ),true 才转账就好了吧
mengdodo

mengdodo      6 小时 27 分钟前

你需要考虑下是不是只有这一个用户哦~
mengdodo

mengdodo      6 小时 26 分钟前

@zero47 可能他想在项目上玩花活吧
wzy44944

wzy44944      6 小时 17 分钟前

@cmdOptionKana 已经分析的挺清楚了,再补充点
要是担心丢工作,就要翻一下你们公司的规定了,要是有明确规定了相关的场景是如何负责,并且你签字了的话就照章办事。看你们这个没有测试,应该大概率没有规定,那就属于正常工作,不是故意内外勾结造成的损失,这种法律上讲员工不需要承担损失,是公司承担的,有很多判例。
另外就是绩效问题,领导不爽可能会通过绩效给你扣掉,这个是三不管地带,主要看你跟领导的关系了,要是跟领导关系还行,就请他吃顿饭就好了。

其实你这个算是有漏洞被人利用,这个无法根除,即使你代码没问题今后极有可能被人找到其他漏洞,有经验的黑产找到漏洞后细水长流的方式提现,短期内都发现不了,只能增加测试和法务流程。

再换个角度类比下,你开发的快,上线快,公司收入增加了一部分,损失了一部分,后续增加了流程,上线晚,公司是少收入了一部分,没有损失。前一种的损失只要不夸张,大部分互联网公司都是能接受前一种的,从你们没有测试来看老板应该是有心理预期的(或者老板完全不懂技术。。。)
PrinceofInj

PrinceofInj      6 小时 11 分钟前

怎么可能需要赔偿公司损失,开公司又要有风险,员工出错也是风险的一种。要不然还得贷款上班了?顶多就是考评调低之类的,大不了被开掉。让个人赔偿?没有这种事。
除非老板证明薅羊毛的人是你自己。
Finnn

Finnn      6 小时 10 分钟前

@ryd994 同意
年底我们的活动配置后台出错, 用户一早 0 元购刷掉了等值 90 万+的礼品券,
如果开发都能预知问题, 那就没有测试的必要了, 只背锅不给奖励哪里也说不通
问题结果是部门季度奖金克扣😑
drydiy

drydiy      6 小时 9 分钟前

@hhjswf 不是公司的问题吗?什么叫敬畏之心?公司连测试都没有,怪一个底层员工?合适吗?
yikyo

yikyo      6 小时 2 分钟前 via iPhone

领现金这种操作,做一个审核流程,数据量不大的情况下完全可以操作
yumizhao888

yumizhao888      6 小时 1 分钟前 via iPhone

微软都一大堆漏洞,谁敢说没漏洞的,宝塔不是给人打脸几个月了吗。
IvanLi127

IvanLi127      5 小时 47 分钟前 via Android

这需要赔偿的话,大家带薪上班好了。
wolfie

wolfie      5 小时 37 分钟前

是个程序就有 bug
别老把自己放在被审视的位置

根据功能重要程度,要配上相应的测试人力投入。
生产环境出 bug ,测试背锅 50% 起步。
auh

auh      5 小时 29 分钟前

刚工作一年。遇到这种情况估计还比较正常。
hhjswf

hhjswf      5 小时 29 分钟前 via Android

@drydiy 公司已经承担了经济损失,不够吗?公司对他定位很明确了,就是一条龙全干工程师,不光是开发,给运营输出更完善的方案也是职责之内,不是被外行人指哪打哪出事不关我事。小企业养不起一个完善团队,没那么多产品线可以做。不想干干不了可以走人的,现在捅了怎么大篓子直接以能力不足裁掉都没问题
cairnechen

cairnechen      5 小时 29 分钟前

总是有人分不清“应然”和“实然”
kingjpa

kingjpa      5 小时 21 分钟前

遇到过相同的问题,不过损失是 2k 。就是趁着半夜不到半小时就给掏干了。

损失算到用户头上了,本来能发 3000 个红包,后来只发了 1000 个。再领取就提示领完了

领导也没说啥,就说下次务必注意,幸好账户余额就这点了。

自己也有了心坎, 以后类似活动 先做约束兜底,预估每个人 /每个时间段最多能发多少钱,一旦金额异常立马锁定,手动复核
chuanqirenwu

chuanqirenwu      5 小时 18 分钟前

赔钱肯定不需要,但年终奖肯定没了,跟赔钱差不多。
juicy

juicy      5 小时 15 分钟前

直接执行的员工不需要任何直接惩罚,一般是惩罚领导,还有领导的领导,通常是扣钱和通报,表明管理上存在问题,后续要整改
jeesk

jeesk      5 小时 11 分钟前

长点记性吧。 设计到 money 都不压测 ? 当前我上一家公司做优惠券领取我自己都做压力测试, 看看并发是否有 bug 。
icatme

icatme      5 小时 7 分钟前 via Android   ❤️ 1

赔偿不至于,奖金应该有影响
至于上面觉得写了个 bug 就得全赔的来说,很多写航天航空控制软件相关的怕是得跳楼了
dxgfalcongbit

dxgfalcongbit      5 小时 7 分钟前 via Android

亡羊补牢就行了
woshipanghu

woshipanghu      4 小时 42 分钟前 via iPhone

有些评论真的是毫无责任心
Solace202

Solace202      4 小时 40 分钟前

暗示领导,五五开,你出两千五。
woshipanghu

woshipanghu      4 小时 37 分钟前 via iPhone

这个问题和分布式锁关系不大 即使没有锁 数据查出来的都是脏数据 也只是在同一秒被撸
iseki

iseki      4 小时 37 分钟前 via Android   ❤️ 1

给多少钱,干多少活,你又不是公司股东,只是个员工,最多扣点绩效,正常公司不会涉及到员工赔偿。至于责任,公司在这种事情上的责任也不小,没有测试,没有评估,没有 code review…这是公司的责任
supersadmin

supersadmin      4 小时 33 分钟前

曾经写过一个 BUG ,公司赚了 1 万多,我罚款 100..
imMetaverse

imMetaverse      4 小时 31 分钟前

是程序都可能出现 bug 个人可以从中吸取教训不断成长 但是责任不能都由个人承担,联系用户让他把钱退还改掉 bug 就好
opengps

opengps      4 小时 11 分钟前

某种程度上,这并非你的工作失误,而是全套方案的不到位。产品设计不到位,研发不到位,测试不到位,管理也是不到位
sdjl

sdjl      4 小时 7 分钟前

这不是你的责任,这是公司自己承担的范围。

首先,干这个活是有门槛的,既然有门槛,公司就应该雇佣专业人士来做,一个专业人士月薪要一万还是十万,这个是公司自己的事情,由老板自己去评估。

公司叫你来做,你没有这方面的能力,公司既然省去了“请专家”的费用,自然也要承担“风险”。

但是公司可以辞退你。
ZeroDu

ZeroDu      3 小时 58 分钟前

这种只要规则上说了只能领一次那用户,问题不大。内部的话,这种不是一个人的责任。
Biggoldfish

Biggoldfish      3 小时 57 分钟前   ❤️ 1

这种事后检讨不都是 blameless 的吗?人总是会犯错的,但是多个人犯同样错误的可能性就小了很多,因此有 code review/launch review 之类,检讨也是讨论流程上怎么改进来保证下次这样的事情不会发生

而且 5K 也不是什么大的数字,用户量大一点的服务随便一个 outage 或者 experiment 出问题就是几万几十万的损失,要是都让开发承担那大家都别干了
iOCZ

iOCZ      3 小时 54 分钟前   ❤️ 1

那去阿里不得破产
ladypxy

ladypxy      3 小时 50 分钟前 via iPhone

公司得责任,内部代码审计不合格,和个人无关。

之前在 ibm 的时候,有个同事没有按照流程拿到客户同意就关了小机做 change ,导致银行客户损失 200 多万美元。处罚就是扣了点奖金
ccppgo

ccppgo      3 小时 32 分钟前

我以前有个同事把生产服务器 rm -rf / 了, 最后扣了点绩效
DCELL

DCELL      3 小时 25 分钟前

@ccppgo 这不是说的是我么~ 还写了好几天的回述报告,当时是想删除 rm -f ./ 缓存文件,脑抽忘记加 ‘.’ ; 当时汗都出来了,慌的一比
learningman

learningman      3 小时 0 分钟前

这有啥,微软都犯过这错。之前的 XboxGamePass 充值就是不加锁的。
vice

vice      2 小时 51 分钟前

N 年前也发生过类似的事情,当时也是运营活动,但并发太高了没有加锁导致用户可以重复提现。刚发生的时候,还没一分钟就提走了三十多万,发现后赶紧下线活动,然后关闭提现功能,追回了三十万左右。负责这块开发工作的后端同事修复 Bug 后,活动继续..尴尬的是,上线后又发现了新的后端 Bug.... 几天后,后端同事自己辞职了..
FreeGC

FreeGC      2 小时 44 分钟前

如果这事发生在我公司,看这个程序员属于什么级别的技术人员了。如果就是一般的人员,我是不会追究当事程序员责任的,毕竟只有开发,没有测试,这不完全是程序员的错误。如果该程序员非常资深、核心,是骨干,核心到各种待遇都享受到了,也清楚他自己的重要性,那么,看工作态度是否有问题,如果只是一个失误,损失不大,也会算了。如果工作态度有问题,那么就需要追责了。
Ericcccccccc

Ericcccccccc      2 小时 43 分钟前

记得报警.
SolarAA

SolarAA      2 小时 29 分钟前

@supersadmin 公司净赚 1 万多 + 100
hhjswf

hhjswf      2 小时 21 分钟前 via Android

@vice 肯定是内部人员搞鬼提前看了代码做了分析吧...一分钟抓包写脚本都不够...
janus77

janus77      2 小时 14 分钟前

这个合理来说的话你是没有责任的,但是可以归类为工作能力不足,看公司怎么处理了,好一点的批评一下或者奖金扣一点,差的就不好说了,公司愿意扣工资或者辞退你也不是没有可能
楼上那么多说用户刷是用户的问题,用户的问题和 op 的失误不冲突的
rocmax

rocmax      2 小时 10 分钟前 via Android

上面建议主动承担责任的都是在校学生吗?没社会经验就别瞎建议了。
看你领导怎么说了,要是领导把责任担了,或者不提这事,说明碰到个明白领导。要是领导往下甩锅你一定不能接,要是傻呵呵的接了甚至主动承担责任,那很可能不只是赔 5000 块钱的事情,兴许还有处分甚至丢工作。
paradoxs

paradoxs      2 小时 9 分钟前

各位都在说什么 jb

这明显就是黑客攻击, 直接报警啊。
justin2018

justin2018      1 小时 56 分钟前

跟楼主没啥关系 领导的事儿 你就那么一点工资 还赔钱 咋可能~

想当年 公司新来员工 直接前端页面抽奖 用 js 写抽奖逻辑
当 xx==xxx 的时候 用户中奖 提交用户手机号码和手机名称到后台保存

-_-|| 被人撸了几台 iPhone 走了
也没啥事儿 就全员邮件通告 + 领导罚钱 也就几千
jiangzm

jiangzm      1 小时 53 分钟前

如果这个项目赚很多钱会给你额外分点钱吗,那些出主意赔钱的都是傻子吗!!!

开发只负责开发部分又不是恶意留后门自己薅羊毛被抓了, 正常开发测试人员测试了运营验收了,已经可以了。
至于后面上线出现问题开发有责任跟进修复,但是对运营效果不担任何责任。

这是你知道有分布式锁,那如果连分布式锁都不知道的开发呢?如果是流量太大系统被挤爆又没有熔断机制,那这个问题你也扛吗?

别啥事往自己身上揽,软件开发是团队协作的过程,线上出问题绝对不是某一个人的问题, 对外学会把问题往高一点的层面去说(大家一起背锅),对内自己要总结经验。
jiangzm

jiangzm      1 小时 47 分钟前

@Solace202 要是你的失误损失 500w 呢, 你也会屁颠掏钱吗
veightz

veightz      1 小时 42 分钟前 via iPhone

工作的事儿该怎么应对,可以想想,公司赚钱给你分收益了吗,亏钱需要你承担损失吗? 这两个答案应该是一致的。

技术上的事儿该怎么提高和改善,可以考虑下整体的设计。 数据库钱包到账,实际资产提币,可以拆分,同时各环节做好幂等。 我觉得分布式锁也不是一个合适的解法。
Autonomous

Autonomous      1 小时 29 分钟前

别总是往自己头上揽锅。
你是活动的开发人员,负责写代码的,提什么需求就干什么活,运营提需求的时候,有没有明确要求一个用户只能领取一次?没有吧?

如果非要追责的话,活动的负责人才是要背锅的。
momo296859251

momo296859251      1 小时 21 分钟前

其实主要还是看老板格局,我之前工作失误两三次共计损失十几万,老板都没说我,搞的我很内疚,反倒是老板开导我,说没做过的事情遇到问题是正常的,只要不是重复犯错就行,让我多反思总结经验,有进步就是值得的
zxCoder

zxCoder      1 小时 20 分钟前

你作为开发负责人有**一部分**责任;

但**不需要**你赔偿。
forgottencoast

forgottencoast      1 小时 15 分钟前

不需要负责。
但是你要搞清楚为什么,下次不要再犯。
这个根本不需要什么分布式锁,单纯的数据库更新语句就能解决的问题。
id80108900

id80108900      1 小时 11 分钟前

[失误] 不如说 [考虑不周] ,人非圣贤,孰能无过?
对自己来说,增加经验,提高技术,甚至承认不足,是进步的体现,有机会“犯错”来学习, 是好事;
对公司来说,有利就应该共享,有失就要共担,因为任何工作都不是“独立”的,没必要的责任千万不要乱承担。
Ritr

Ritr      1 小时 10 分钟前

你是股东吗
acupnocup

acupnocup      23 分钟前

真搞笑,公司赔钱你支付,那公司赚钱给你发钱吗?
ihuotui

ihuotui      14 分钟前

应该积极反馈问题,统计损失,咨询业务寻找弥补方案,和领导沟通反思开发测试上线流程,业务活动预防规则。出问题虽然是个人造成,但是是开发测试上线流程的缺失。

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK