软件工程师如何影响公司政治

软件工程师如何影响公司政治

原始链接: www.seangoedecke.com/how-to-infl...

许多软件工程师对公司政治感到无奈。他们认为参与其中毫无意义,因为:

  • 技术决策往往出于完全自私的理由,好心的工程师根本无法左右。
  • 掌权的老板们通常既愚蠢又缺乏能力,你根本不可能搞清楚他们的需求并提供合适的解决方案。
  • 政治游戏依赖的是工程师接触不到的内部信息,所以瞎掺和只会碰壁。
  • 管理层把大部分时间花在搞政治上,而工程师在写代码,所以工程师在起步时就处于绝对的政治劣势。

总结起来就是:软件工程师根本不具备和真正的政治老手同台竞技的能力。这是事实!如果你想像《权力的游戏》那样去玩弄权术,那就大错特错了。你的计谋会被立刻识破,甚至被别人拿来利用。玩弄权术需要经验和权力,而这两样软件工程师都没有。

现实情况是,在大公司的政治游戏中,软件工程师只是工具,而不是玩家。不过,即使不玩弄权术,你也有很多方法可以参与其中。

最简单的方法是:积极推动备受瞩目的项目取得成功 。这其实也是你日常工作的一部分。如果公司正在重金投入某个新项目(比如现在的 AI 项目),用你的技术能力让它成功,对牵头该项目的高管来说就是一种政治优势。作为回报,你会获得科技公司高管能给的奖励:奖金、升职助力,以及未来参与重要项目的机会。大约一年前,我在大公司工程师声誉的棘轮效应一文中讨论过这点。

稍微难一点(但你能掌控更多)的方法是:把你心仪的想法融入到现成的政治运动中。假设你一直想把某个功能剥离成独立的服务,有两种方法可以实现。

困难的方法是消耗你自己的政治资本:到处拉赞助,跟老板强调它的重要性,慢慢说服质疑者,直到项目被正式批准。简单的方法是:让某位高管用他们(多得多的)政治资本来支持你的项目。你可以等待公司出台一个与你项目目标一致的全局指令(比如在某次重大故障后,公司往往会大力推进"系统稳定性")。这时,你就可以向老板建议,你的项目刚好符合这个目标。如果你的判断准确,你的部门就会支持这个项目。不仅如此,这还能增加你的政治资本,而不是消耗它。

公司的关注点是呈波浪式推进的。到了抓"稳定性"的时候,高管们急于做点什么。他们需要找出听起来靠谱的稳定性项目来投资,好向他们的上级交差,但他们自己又没有技术能力去落地。这时候,他们通常很乐意资助工程团队提出的任何建议。相反,如果公司的注意力在别处(比如发布重磅新产品),他们最不希望看到的就是工程师把时间花在客户看不见的内部重构上。

所以,如果你想在科技公司推进某项技术工作,你应该等待合适的"浪潮"。最好的做法是准备多个不同方向的技术方案。优秀的工程师在日常工作中就会自然而然地发现并积累这些想法。例如,你可能有一些初步计划:

  • 把计费代码从"缓存 API 调用"迁移到"Webhook 更新存储数据"
  • 拔掉老旧的手工构建流水线,换成 Vite
  • 用 Golang 重写一个臃肿的高并发 Python 服务
  • 用快速的静态网站替换掉缓慢的公开文档 CMS 前端

当高管们关注计费问题时,你可以把计费重构包装成稳定性提升方案抛出来。当他们关注开发体验时,你可以建议替换构建流水线。当客户抱怨性能时,你可以推荐 Golang 重写方案。当 CEO 觉得公开文档太烂而感到尴尬时,你可以顺势提出静态网站重构计划。关键在于:不管当下流行什么风向,你都要准备好一套详细、有效的工作方案随时待命。

无论你做不做准备,总会有一些项目得到资助。如果你不准备,你就无法控制最终立项的是什么。根据我的经验,公司最糟糕的技术决策通常发生在这种时候 :当政治上需要做点什么,但大家又拿不出好主意时。病急乱投医,烂主意也会被采纳。但没人喜欢这种结果:高管不得不把糟糕的技术成果包装成胜利来推销,而工程师则不得不把时间和精力浪费在错误的想法上。

如果你是一位资深工程师,高管们会因此暗中责怪你。而且他们怪得有理!在合适的时机拿出正确的想法,是你的责任。

你可以从两个角度来看待这件事。往坏了想,你可以认为这是在教你怎么充当好用的工具,帮公司里那些冷酷无情的人在权力斗争中冲锋陷阵。往好了想,你可以认为这是在让高管们去做他们该做的事------设定公司整体优先级------而你只需要让自己的技术计划顺应大局。无论哪种方式,只要你在正确的时机推行正确的计划,就能实现更多属于你自己的技术目标。

补充:这篇文章在 Hacker News 上引起了一些关注。评论比我写的其他关于政治的文章要正面得多,原因我不太清楚。这条评论很好地表达了我在这篇文章里写的内容(只不过那是写给初级工程师的)。这条评论(以及这里的附和)引用了米尔顿·弗里德曼(Milton Friedman)的一句话,把本文的观点应用到了更广泛的政治政策上。我以前没这么想过,但听起来很对:

只有危机------无论是真实的还是感知到的------才能带来真正的改变。当危机发生时,人们采取什么行动取决于当时手头上有哪些现成的想法。我相信这就是我们的基本职责:为现行政策开发替代方案,让它们保持活力并随时可用,直到那些在政治上不可能的事情变得在政治上不可避免。

有几条评论认为这种做法太像玩弄游戏且过于利己。我认为这取决于你的目标是什么。我上面提到的那些目标对我来说都是很有益的!最后,这条评论很好地总结了我想表达的意思:

作者没有被动等待别人发号施令,也没有在权力真空中面对糟糕主意时愤世嫉俗,更没有放弃自己想做的事。相反,他积攒了一堆重要且优秀的备用想法,等待某个大人物宣布"这是优先事项"的适当时机抛出来。他最终完成了自己想做的事,只是在时机上做出了妥协。



如果你喜欢这篇文章,考虑订阅我的邮件推送,或者[在 Hacker News 上分享](news.ycombinator.com/submitlink?... I influence tech company politics as a staff software engineer)。以下是一篇带有相同标签的相关文章预览:

在大型科技公司,我如何决定该做什么工作

科技行业最重要的职业技能之一,就是学会识别什么工作才是真正重要的 。许多工程师在整个职业生涯中都没有真正做过这种决定。他们可能偶尔会在冲刺计划会上为某个具体问题发声,但他们的脑海中并没有一张"团队当前最重要工作"的清单。把这个决定权推给老板很容易。毕竟,决定哪些项目重要似乎不是你的工作------你的工作是执行项目并在技术层面发表意见。
继续阅读...


相关推荐
jonjia2 小时前
如何向领导层提出反对意见
程序员
jonjia2 小时前
我是如何在两年内两次晋升为主管工程师的
程序员
jonjia2 小时前
做最简单且可行的事情
程序员
jonjia2 小时前
在科技公司,如何识别真正重要的工作
程序员
jonjia2 小时前
设计切实可行的软件
程序员
jonjia2 小时前
大厂不需要英雄
程序员
Baihai_IDP7 小时前
HackerNews 热榜第一名:AGI 的 A,原来代表的是 Ads(广告)
人工智能·程序员·llm
kymjs张涛7 小时前
借助 API 手写一个 Transformer 架构
程序员