“我是如何从每一次失败中成长起来的。”
身为程序员,我们往往都了解大神级程序员的故事。比如很小就开始编程,在 11 岁时就创建了第一家能盈利的网站,16 岁上大学、17 岁成立公司、23 岁成为亿万富翁。
我们喜欢这些故事,喜欢这些英雄。
他们以高产的编程项目和引领潮流的方式激励着我们。从解决复杂的 NP 问题到筹集数百万的 A 轮融资,他们似乎从来不会失误。
不过,现实是这样的:
每一个开发者,甚至是这些超牛逼的大神级开发者,都会把事情搞砸,然后克服挫折。不同之处只在于规模:如果我们搞砸了,数据库记录就会被破坏;如果他们搞砸了,可能就是一个价值数十亿美元的错误。
为什么我们总是如此害怕错误?犯错是件好事,没有什么比失败更好的老师了。但是,它也带来了某种耻辱,没有人愿意讨论错误,因为没有人愿意被看作是天才堆中的蠢货。
但这样的压制是有后果的。
当开发者犯错时,经常会被认为是个人的失败然后被指责——“Mike 忘记更新发布文档”或者“Bill 选错了分支”。这样做其实适得其反。
失败通常是系统性的,是发现和纠正业务缺陷的好机会。没有比失败更好的老师了,我们不应该害怕谈论失败。
本着这种精神,我坦白地指出作为一名初出茅庐的软件开发者,我所犯下的三个最严重的失误。接着,我将继续解释,我是如何从每一次的失败中成长起来的,并且我感谢这每一次的失败。
1、删除了上千个网址
当我在一家大型金融机构工作时,我开发了一套清理 F5 网络层中未使用路由的系统。在阻塞之前,F5 路由池只能支持大约 5000 个 URL。系统会自动监控这些 URL 流量,通知未使用的资源的拥有者,并清理掉它们,这样 F5 系统就不会崩溃,不间断的人工手动操作也能被解放出来。
该系统一直运行良好。但是,在某个星期天,我醒来后看到一封电子邮件,它说前一晚有 1000 条路由被删除了,用户抱怨说这些都是活动 / 实时 URL!
大家的周末就这样被毁掉了,我们的团队立刻行动起来。
原来,一个旧的 .yaml 配置文件与应用容器部署在一起,它删除了 1 周内而不是 1 个月内的非活动路由。庆幸的是,我设置了故障保护以防止删除生产资源,但是问题仍然很严重,如果我的程序确实删除了活动的资源,全公司范围内高使用率的应用程序可能会因此中断。
而结果发现&#