likes
comments
collection
share

译:如何成为一名 “捞逼” 工程师

作者站长头像
站长
· 阅读数 11

本文为翻译转载

原文地址:How to be a -10x Engineer

+10x engineers may be mythical, but -10x engineers exist.

+10倍工程师可能是神话,但-10倍工程师是存在的

To become a -10x engineer, simply waste 400 engineering hours per week. Combine the following strategies:

要成为一个-10倍工程师,只需每周浪费400个小时的时间。可以使用以下策略:


Nullify the output of 10 engineers. 使 10 名工程师的输出无效化。

Change requirements as far into development as possible. To avoid blame, obfuscate requirements from the start.

让几乎所有的需求都进入开发。为避免责任,从一开始就使需求模糊。

Create 400 hours of busywork. 制造 400 小时的繁忙工作。

Ask your team to perform tasks that resemble work. Common examples include presentations, diagrams, and ticket management. Create pointless rituals.

让你的团队执行相似的重复任务。比如 PPT、图表和整理发票。制定无意义的日程。

Create 400 hours of burnout/turnover. 制造 400 小时的倦怠或者人员流失。

Be thankless. Foist blame. Sow confusion. Get angry. Cause others to work overtime.

忘恩负义(理解为没有感恩的态度,没礼貌)。推卸责任。制造混乱。发怒。导致其他人加班。

Hold 10 engineers hostage in a technical discussion. 让 10 名工程师困在无数的技术讨论中。

Let engineers discuss ideas. Encourage them to pursue elegance over pragmatism. Ensure nobody has the authority to make any decisions.

让工程师讨论想法。鼓励他们追求优雅而非务实。确保没有人有权做出任何决定。

Add 400 hours of communication overhead. 增加 400 小时的沟通成本。

Meetings wreck calendars. To inconspicuously waste others’ time, write lengthy messages/documents and share as widely as possible. Welcome all opinions and aim for engagement.

随意打破之前定好的日程。为了不明显地浪费他人的时间,撰写冗长的消息/文件并尽可能广泛地分享。欢迎所有观点并以此为目的。

Waste 10 weeks of wages on cloud costs. 在云计算成本上浪费 10 周工资。

Write slow programs. Avoid DB indexes. Run single-threaded programs on 16-core machines. Opt for exotic hardware with fancy RAM and GPUs. Store data on RAM/disk liberally. Don’t compress anything. Pay no attention to data layouts.

编写慢速程序。避免使用数据库索引。在16核机器上运行单线程程序。选择配置奇特的硬件,如高端RAM和GPU。慷慨地在RAM/磁盘上存储数据。不要压缩任何东西。不要关注数据分层。

Create useless tools. 制作无用的工具。

Decide that existing solutions aren’t quite what you need. Write scripts that only one person understands. If the script does something important, avoid documentation.

认为现有解决方案并不完全符合你的需求。编写只有一个人能理解的脚本。如果脚本执行了重要操作,避免编写文档。

Add 400 hours of compilation/build time. 增加 400 小时的编译/构建时间。

Slow builds waste time and incur compound interest. As build times increase, developers are more likely to distract themselves. To ensure developers are context-switching, recompilation should take at least 20 seconds. You can also write slow tests for similar effect.

用缓慢的构建来浪费时间并让它们产生叠加在一起。随着构建时间的增加,开发人员更容易分心。为确保开发人员在不同事情上切换上下文,重新编译应至少需要20秒。你还可以编写缓慢的测试以达到类似的效果。

译:如何成为一名 “捞逼” 工程师

Write pointless tests. 编写无意义的测试。

Create dependencies on particular variables without testing the underlying functionality. Mock function calls until no original code runs. Introduce subtle randomness into your tests so that they succeed/fail without cause.

在不测试底层功能的情况下,创建对特定变量的依赖。模拟函数调用,直到没有原始代码运行。在测试中引入细微的随机性,使它们在莫名其妙的情况下成功/失败。

Waste 400 hours of engineering on bad architecture. 在糟糕的架构上浪费 400 小时的工程时间。

Give zero consideration to how your system design will evolve over time. Alternatively, drive your team obsess over architecture decisions so that they don’t have time to test their hypotheses.

不要考虑系统设计如何随时间演变(不要考虑老系统变成多么难以维护)。或者,让你的团队不断纠结架构选择,让他们不要有任何时间去做试验。

Waste 400 hours on deployment. 在部署上浪费 400 小时。

Create as many environments as possible. Production and staging must differ wildly. Launch fragile code with fragile build systems. Migrate your databases frequently.

尽可能创建更多环境。生产和预发布环境必须有很大差异。用脆弱的构建系统发布脆弱的代码。经常迁移数据库。

Lose 10 weeks of wages on unhappy customers. 因为客户投诉损失 10 周工资。

Repeatedly fail to detect and address severe bugs. Pay no attention to security vulnerabilities.

反复没能定位和解决验证 BUG。对安全漏洞不予关注。

Write worthless documentation. 编写无价值的文档。

Explain code in private messages. Write wikis that nobody uses.

在私聊中解释代码。编写无人使用的文档。

Trap 10 engineers in a futile skunkworks project. 让 10 名工程师陷入徒劳的秘密项目。

Attract bright engineers and waste their potential. Undersell the difficulty of the project to management; oversell the project’s usefulness. Tell management it’s “almost complete” until they scrap it.

吸引聪明的工程师,浪费他们的潜力。欺骗管理层,让管理层低估项目的难度;夸大项目的实用性。向管理层不断汇报项目“快了,快了,马上做完了”,直到他们放弃它。

Add dependencies that demand 400 hours of maintenance. 增加需要 400 小时维护的依赖。

Engineers individually learn each library.

让开发者学习社区里面的每个库。

Delay pivoting. 拖延转机。

Never admit failure. Drown your team in sunk-cost. Ignore 80/20 compromises that could improve your circumstances.

永远不要承认失败。让你的团队保持沉默,不断消耗。忽略可能改善你的处境的80/20 (80/20原则认为,通过专注于解决问题的关键20%,可以实现80%的结果) 折中方案。

Hire 10 0x engineers. 聘请 10 名 0 倍工程师(简单理解对团队没改善的人)。

Opportunity costs can kill. Dead-weights may not actively harm your team, but they sit in the chairs of people who could actively help.

机会的选择可能致命的。大量人员(臃肿的团队)可能不会很明显的危害你的团队,但他们占据了那些对团队有积极影响人的位置。

Hire 5 -1x engineers. 聘请 5 名 -1 倍工程师(理解为有消极影响、不愿意自我提升的人)。

Don’t settle for dead-weight. Actively hire engineers who cause catastrophes and resist learning.

不要只满足于臃肿的团队。积极聘用那些制造灾难并抵制学习的工程师。

Prevent 10 -1x engineers from getting fired. 阻止 10 名 -1 倍工程师被开除。

Don’t rock boats. Leave no paper trail of failures. Vouch for bad engineering.

不要没事找事(看到不好也不说)。不留任何纸质证据。为糟糕的工程背书。(可以理解为多一事不如少一事,遇到这样不好的人,不要告发他们,要保护他们,还有为他们背锅)

Incur 400 hours of bug triage. 花费 400 小时定位 BUG。

Make undebuggable programs. Plaster layers of abstraction over everything. Write spaghetti code. Make everything sensitive to initial conditions. Avoid pure functions. Use dependencies liberally. Say “it works on my machine” whenever possible.

编写无法调试的程序,过分使用抽象层,编写复杂的代码。编写意大利面条式代码 (意大利面条代码是一种不遵循任何规则的代码,它只是按照作者的意愿编写的,这让其他程序员甚至作者本人都难以理解它) 。使所有代码都对初始条件敏感。避免纯函数。随意使用依赖项。尽可能说“它在我的机器上可以运行”。