“优秀的工程师是懒惰的工程师,”有人会这样说。在某种程度上,这是真的:如果你要自动化重复性任务,懒惰是一种很好的品质。但懒惰与学习新技术和完成新工作背道而驰。在初级系统管理员和高级 DevOps 工程师之间,懒惰不再成为优势。
让我们讨论一下有志成为 卓越的 DevOps 工程师应该遵循的五项法则。
1. 忘记“我不知道”
卓越的工程师应该做的第一件事是从他们的词汇表中消除“我不知道”这句话。“我不知道”这句话给人的印象是口头上的举手投降(在你开始之前)。消除这句话很难做到。但是说“我需要做一些研究”,或者“我认识某人可能可以给我指明正确的方向”听起来要好得多。重点是:如果你正在讨论某件事作为一个可能的任务,那么你很可能会最终去做它。你或房间里的任何其他人对此一无所知的事实是无关紧要的。
将每个任务都视为学习的机会。投入必要的时间成为手头任务的常驻专家。向自己证明你可以教老狗新把戏。向你的同事证明你可以使团队走得更远。寻求新知识,改进你构建和维护的东西。不要害怕一头扎进你一无所知的事情中。你对知识的渴望应该是永不满足的。你今天可能不知道,但你明天可以知道。
2. RTFM
文档无处不在。复杂问题的解决方案触手可及。努力在不先阅读文档的情况下询问你的同事某件事是如何工作的。
你的同事花时间编写这些文档是有原因的。时间是生命最宝贵的资源。不要浪费他们的时间。如果你在阅读文档后有疑问,请随时提问。手册页也是如此。开发人员花时间创建了这些文档。操作系统供应商为你提供了安装和阅读它们的工具。在某件事上花费的精力越多,阅读就变得越重要。
在没有文档的情况下,阅读代码。它必然包含关于影响其工作方式的决策的注释或说明。至少,确保你理解代码仓库的内容。如果仓库没有遵循 十二要素应用程序 的方法,请确保你理解它在哪些方面不足。当你最终提出问题时,请确保你以积极的方式提出。保持积极有时很难做到。作为局外人,你错过了导致该决策的背景。永远不要忘记迭代改进是工作模式。RTFM!
3. 先搜索再提问
有多少次你读到如何做某事——然后需要问如何做?答案很可能是“零”。你可能拥有可以回答你大部分问题的团队成员。在极少数情况下,你必须咨询你的经理,请确保你至少搜索了可能的答案。很久以前,有人告诉我,“不要给我带来问题。向我展示解决方案。”这是一个非常简单的陈述,在 DevOps 中具有深刻的意义。如果你正在讨论一个问题,你很可能会参与到它的解决方案中。不要带着问题去找你的领导。提出问题和你的解决方案。
你问题的解决方案不会从天而降。解决新问题需要寻找新的答案。我们生活在一个令人惊叹的时代:人类的大部分智慧都可以通过几次击键获得。如果你在没有至少搜索答案的情况下转向领导,你就让他们失望了。
你之所以担任现在的职位,是为了完成你的领导层确定需要其他人而不是他们自己来解决的工作。你至少可以做到自我管理问题的解决方案。
4. 一切皆有可能。永不言败。信任但要验证。
我经常在团队成员中看到一种感觉,认为有些事情是不可能的。在 DevOps 中工作的美妙之处在于,物理学是你环境中唯一的限制。你不能通过连接发送比物理可能更多的电子。你不能在硬盘上存储比物理可能更多的块。你也受到时间的限制(业务截止日期和时间是最常见的限制因素)。这意味着你拥有惊人的能力来完成你付出努力的任何事情。在这个领域,只要有适当的时间、协调和努力,一切皆有可能。你和你的团队成员应该定期提醒自己这一点。
当涉及到复杂的分布式系统——甚至简单的脚本时——你不应该假设任何事情。记住,一切皆有可能。这意味着好的解决方案可能会最终投入生产,糟糕的解决方案也可能投入生产。几乎每个我工作过的地方都有一个团队对他们的系统工作方式做出了假设。存在这些假设的原因有很多。存在这些假设的原因有很多,但没有人进行深入研究以确保系统以他们假设的方式工作这一事实应该令人困惑。你应该始终信任你的队友;然而,如果某件事感觉很奇怪或没有按预期工作,你需要验证该假设是否真的成立。
5. 承认技术债务
技术债务是某人在做出决策时认为有意义的决策的结果。但这些决策现在很可能正在引起问题,因为它们不再有意义。一年前在紧迫的期限内将产品推向市场的因素很可能会阻碍你今年做同样的事情。如果你在一个 DevOps 团队中,你要么在帮助消除技术债务,要么在将其推向生产环境。通常,你必须在计划会议上发出理性的声音,说明为什么某些事情从长远来看行不通。如果你不小心,这会让你成为一个被排斥的人。将这些时刻视为向你周围的人传授新知识的机会。不要对人们不理解他们正在讨论的内容会在以后增加复杂性而感到惊讶。理解你正在支持的系统和堆栈的复杂性是你的工作(而不是他们的)。如果必须,请坚持你的立场。但请记住,如果你不得不坚持你的立场,那么你很可能需要让自己更接近项目反馈循环的开始。
你的存在是因为技术债务。在你完成项目后,这种债务是否存在以及如何存在取决于你。
结论
对基础系统知识永不满足的渴望是 DevOps 成功的必要条件。优秀的 DevOps 工程师不断寻求问题的答案和问题的解决方案。要成为他们中的一员,请将防止未来技术债务作为你工作的持续重点。永不停歇地学习。懒惰是无法让你到达那里的。
本文是 开放组织 IT 文化变革指南 的一部分。
4 条评论