必须懂得如何"开车"
原始链接: https://www.seangoedecke.com/knowing-how-to-drive-the-car
软件工程师有很多种当法。你可以每天猛敲 12 小时代码来让世界变得更美好;可以专注于胶水工作(那些能让周围人更成功的流程性工作);可以和产品经理、设计师深入交流,不仅决定产品"怎么做",还能影响"做什么";你可以一路晋升到主任工程师(Staff Engineer)甚至更高,也可以选择"躺平",把精力留给业余爱好。但无论你选择哪条路,你都必须了解科技公司是如何运转的。
我要感谢 Alex Wennerberg 在我们最近的讨论中指出了这一点。Wennerberg 觉得我花太多笔墨去写科技公司里的"职场政治",而较少谈论真正的"价值"。用他的话来说,就是交付"人们想要和喜欢的"软件。毕竟,在科技行业工作的最终目的就是创造价值。
但在我看来,这就像是说:汽车的作用是帮你去你想去的地方(比如去超市买菜,或者接伴侣去约会)。这话没错!而且用车达成某些目标确实比另一些更好。比如,开车去"折磨纽带"(Torment Nexus,科幻恶搞梗)上班,肯定不如开车去慈善厨房做志愿者。但不管你想去哪儿,你都得先学会怎么开车。
让我们看几个例子。假设你是一个有野心、想在公司往上爬的软件工程师。你应该清楚,狂刷 JIRA 任务很难让你晋升(至少在中级以上是这样);胶水工作可能是一个陷阱;公司会通过你的项目成果来评价你。因此,擅长交付项目才是职业成功的捷径。明白了这些,你就该果断放弃那些非主导项目的零碎工作,拼命把你负责的核心项目做好,并且花大力气向管理层汇报你的项目进展。这些道理大家很容易理解。
换个角度,假设你是一个"没野心"的工程师,只想轻松一点,多花点时间陪孩子(或狗,或玩模型火车)。你可能不在乎升职。但你也必须警惕胶水工作的危险,并且知道主导项目有多重要。你应该仔细追踪公司里的高光领域(the spotlight),这样才能把有限的精力花在能换取最大声誉的地方(同时完全不需要去拼命卷)。
最后,假设你是一个一心想为用户提供真正价值的工程师------你关心的不是公司眼下看重什么,而是实打实的用户价值。比如,你特别在意无障碍设计(accessibility),但你的团队只是走个过场。那你可能需要知道如何在公司里积累自己的声望,然后用这些积攒的资本去做那些未被正式批准(或勉强被批准)的无障碍优化。同时,你还要提前准备好一套完整的无障碍方案,这样当公司某天突然重视起这个方向时,你就能顺势"抓住风口"。
不懂得如何"开车",会给你带来麻烦。 我见过一些雄心勃勃的工程师把精力花错了地方,因为没能升职而感到沮丧;见过只想"躺平"的工程师被边缘化甚至被扫地出门(虽然他们往往对这也抱有"无所谓"的态度);我还见过很多工程师想实现自己的目标,但完全无能为力(或者在尝试的过程中把人际关系全搞砸了)。
要想真正避开大公司的职场政治,唯一的办法就是不去大公司工作。这是个完全合理的选择!但这也就意味着你放弃了只有大型科技公司才能提供的影响力:那种能影响数百万甚至数十亿人的机会。如果你想追求这种影响力------不管你打算用它来做什么------你真的应该去试着了解大公司是如何运转的。
补充:这篇文章在 Hacker News 上收到了一些评论。一些评论者给出了很好的职场政治建议,比如"和经理沟通的频率要是你认为需要的10倍"。其他评论者则对必须关心职场政治感到心力交瘁(这也很正常!)。
如果你喜欢这篇文章,可以考虑订阅我的邮件更新,或者在 [Hacker News 上分享](news.ycombinator.com/submitlink?... have to know how to drive the car)。下面是一篇与本文标签相关的文章预览:
我对"成为有用的人"上瘾
每次和业内朋友聚会时,我对工作的热爱总让我感到一丝内疚。现在做软件工程师是一个艰难的时期。2010 年代末的工作压力远没有现在这么大,我很同情那些因为行业变化而感到沮丧的人。确实有很多客观理由让人对工作感到不满。但尽管如此,我依然乐在其中。我喜欢统筹项目、解决棘手的 Bug,也喜欢写代码。我喜欢和电脑打交道。但我真正热爱的,是成为一个有用的人 。
继续阅读...