工程师的绝望谷

工程师的绝望谷

原始链接: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 编写的代码,调试可能最终成为唯一 保留下来的编程技能。但不知为何,绝大多数的编程内容都在教你如何写好代码,而不是如何调试。调试到底有何不同?
继续阅读...


相关推荐
无限大610 小时前
数字生存03:在AI时代,如何保持工作与生活的平衡
程序员
uzong15 小时前
作为面试官,如何针对不同岗位进行合适的面试
程序员
uzong16 小时前
技术人职场个人影响力打造:技巧、路径与实战总结
程序员
uzong17 小时前
技术管理者,什么是 high level 的事情
程序员
databook21 小时前
当AI学会编程,我们还能做什么
人工智能·程序员·ai编程
两万五千个小时1 天前
AI Agent 能力分级:从工具到 AGI
人工智能·程序员·架构
陈随易2 天前
站在普通开发者的角度,我觉得 RollCode 更像是“把 H5 交付这件事重新捋顺了”
前端·后端·程序员
文心快码BaiduComate2 天前
Comate内置模型已支持 MiniMax-M2.7!
设计模式·程序员·前端框架
陈随易2 天前
AI时代,说点心里话
前端·后端·程序员