本文为翻译转载
原文地址: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.
编写无法调试的程序,过分运用笼统层,编写杂乱的代码。编写意大利面条式代码 (意大利面条代码是一种不遵从任何规矩的代码,它仅仅按照作者的意愿编写的,这让其他程序员乃至作者本人都难以了解它) 。使一切代码都对初始条件敏感。防止纯函数。随意运用依靠项。尽或许说“它在我的机器上能够运转”。