如何通过失败驱动开发走向成功

我是字典里“失败”这个词旁边的图片——这就是我擅长工作的原因。
93 位读者喜欢这个。
failure sign at a party, celebrating failure

Opensource.com

我的职位是高级软件工程师,但这不是我最亲密的同事对我的称呼。他们叫我“Cherrybomb”,因为我炸毁了很多东西。我定期发生的失败已经被追溯到我们的季度收益和停机时间。从字面上讲,我就是你读到的生产灾难,它说“在任何情况下,任何时候都不要这样做”。

我的职业生涯始于服务台,在那里我编写的循环破坏了高端公司的服务器。我曾在没有任何警告的情况下让生产应用程序宕机长达八小时,并且我摧毁了无数个集群,试图让事情变得更好——还有几个只是因为我打错了东西。

我们之所以在Kubernetes中有灾难恢复 (DR) 集群,就是因为我。我是一位混沌工程师,会在没有任何警告的情况下,教人们如何在应用程序从未经过中断恢复计划测试的情况下快速行动和排除故障。我作为失败的最佳例子而存在,这实际上是有史以来最酷的事情。

Jess 和消失的 K8s 集群

我的官方职责之一包括我们的应用程序架构。对于任何类型的架构变更,我都可以制作和测试代码,看看有什么可能。最近,这给我的老板带来了极大的痛苦,说实话。

我们的大部分基础设施都在 Kubernetes 上运行,Kubernetes 以其弹性而闻名。尽管如此,我还是设法让两个集群消失了。你可能想知道我是怎么做到的;这很简单:terraform destroy。我们通过Terraform将我们的基础设施作为代码进行管理,无需任何软件知识就能知道 destroy 会做一些糟糕的事情。在你惊慌之前,这是开发集群,所以生活还在继续。

鉴于此,有理由问我为什么还在工作——以及我为什么要写这个。这些很容易回答:我仍然在工作,因为我的基础设施代码更新比我们最初的代码工作得更好、更快。我写这个是因为每个人都会定期失败;这是非常非常正常的。如果你没有定期失败,我认为你没有努力学习。

破坏东西并训练他人

你还会认为没有人会让我训练任何人;这是有史以来最糟糕的主意,因为(正如我的团队开玩笑说的那样)你永远、永远不应该做我做的事情。然而,我的老板经常让我训练任何走进门的人。我甚至使用我们的基础设施或代码为整个团队提供培训,以教人们如何构建自己的基础设施。

原因如下:失败是你走向成功的第一步。失败的教训不仅仅是“备份是一个绝妙的主意”。不,从失败中,你学会更快地恢复、更快地排除故障,并让你的工作变得更好。当你变得擅长你的工作时,你可以训练其他人不要做什么,并帮助他们了解一切是如何工作的。由于你的经验,他们将比你开始时领先一步——而且他们也很可能会以新的、惊人的、史诗般的方式失败,每个人都可以从中学习。

你有多成功,取决于你的失败

没有人天生就具备软件工程和云基础设施方面的才能,就像没有人天生就会走路一样。我们都从滚动和撞到东西开始。从那里,我们学会爬行,然后站立片刻。当我们开始走路时,我们摔倒并擦伤膝盖,撞到我们的肘部,至少在我哥哥的例子中是这样——直接撞到桌子的尖角上,并在眉毛中央缝针。

学习需要时间。阅读你能找到的所有东西来帮助你前进——但这始终是开始。完美是无法实现的幻想;你必须失败才能获得成功。

一路走来,我的失败教会我如何更好地做事。

最终,你有多成功,取决于你的所有失败的总和,因为这会告诉你你有多成功。

接下来要读什么
标签
User profile image.
技术游牧,从事我能找到的任何事情。 IT 领域中预防孤岛的倡导者,与所有团队分享信息的重要性。 相信教育所有人以及开源开发。 热爱所有技术相关的东西。 关于 K8s、混沌和我能找到的任何新的和闪亮的东西! Mastodon ID

评论已关闭。

Creative Commons License此作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。
© . All rights reserved.