工程师的绝望谷

工程师的绝望谷

原始链接:https://www.seangoedecke.com/the-valley-of-engineering-despair

我已经交付了许多成功的工程项目。现在每次启动新项目时,我总是非常(甚至可能有点盲目地)确信能够顺利上线。即便如此,在每一个项目中,总会有那么一段时间(可能是一天,甚至一周),让你感觉所有事情都搞砸了,项目注定要完蛋。我把这称为**"工程师的绝望谷"**。要成为优秀的项目管理者,很大程度上取决于你能否预见并熬过这段时期。

项目初期总是美好的:你要做什么很清晰,时间也很充裕。项目尾声通常也不错:那时所有重要部分都已经就绪,只需做最后的微调和修复 bug 即可。最艰难的是项目的中期,各种问题会同时爆发:

  • 你发现原本以为很简单的事情,实际上出乎意料地困难
  • 出现了新需求(这几乎是必然的)
  • 在你做出了一些实际的截图和演示后,发现你和产品同事的想法并不像你们以为的那么一致
  • 截止日期的压迫感开始变得真实起来

面对这些,我总是会感到有些崩溃。但诀窍在于:认识到这种感觉是暂时的------你总能挺过去------并且确保在这期间别做蠢事。比如,不要试图通宵解决剩下的问题:这只会让其他人恐慌,带来的 bug 可能比解决的还多。另外,不要大吼大叫地抱怨项目注定失败、在这种条件下根本没法工作。这只会逼着你的经理来安抚你。(经验之谈:永远不要让自己成为经理需要去解决的麻烦。)

那么,你该怎么做呢?放慢脚步,一次只解决一个问题。 解决完一个问题后(无论是通过技术手段直接解决,还是与产品/管理/设计团队协商把它从需求中砍掉),再继续解决下一个。

从最让人头疼的问题开始解决。 如果能解决它,会极大地提振士气。如果解决不了,越早知道越好。如果你实在不想面对它,暂时搁置一下这个最难的问题也是可以的,毕竟做点什么总比什么都不做强,但注意不要拖得太久。

充分沟通你遇到的具体问题。 如果可以的话,把它们以要点的形式写在公开的地方。你的产品经理或主管可能会立刻帮你解决(比如直接砍掉该需求)。就算他们不能,至少他们也清楚你在忙什么。

不过说实话,如何度过"绝望谷"的具体建议并不是最重要的。核心点在于:你要预见到在工程项目中迟早会经历绝望,并在它到来时保持冷静、不要恐慌。

编辑注:这篇文章在 r/ExperiencedDevs(我心目中远远领先其他同类的 Reddit 软件工程社区)上引发了热烈讨论。



如果你喜欢这篇文章,欢迎订阅我的邮件更新,或者[在 Hacker News 上分享](news.ycombinator.com/submitlink?... valley of engineering despair)。下面是一篇同样带有相关标签的推荐文章预览:

调试、情绪韧性与心智模型

擅长调试比擅长写代码更实用------一段代码你只写一次,但你可能需要调试它几百次。随着程序员使用越来越多由 AI 编写的代码,调试可能最终成为唯一 保留下来的编程技能。但不知为何,绝大多数的编程内容都在教你如何写好代码,而不是如何调试。调试到底有何不同?
继续阅读...


相关推荐
jonjia2 小时前
高级工程师应该做些“额外投资” (Side Bets)
程序员
jonjia2 小时前
裁员时代的战术性工作指南
程序员
jonjia2 小时前
这不是你的代码库
程序员
jonjia2 小时前
科技行业的好日子结束了
程序员
jonjia2 小时前
大型科技公司的项目是如何失败的?
程序员
jonjia2 小时前
狂刷 JIRA 工单只是个小把戏,并非提升影响力的正道
程序员
jonjia2 小时前
内部人失忆症
程序员
jonjia2 小时前
参与办公室政治是你的责任
程序员
jonjia2 小时前
搞砸了怎么办
程序员