“软件工程师的日子当然是越来越好。”CNet如是说。招聘网站Glassdoor对此表示同意:软件工程师的平均工资是85000美元,旧金山地区更是达到六位数 (我个人觉得还有点低了)。对软件工程人才需求的暴涨是众所周知的。那么,为什么还有人会认为软件工程师是被践踏、被鄙视,被剥夺权利的一个群体?
  ……其实,他们差不多说准了一部分。
  一个名为麦可·O·彻奇(Michael O. Church)的作家是其中一员。他对比了同一个申请者申请“高级软件工程师”与“数据科学副总管”(一个管理职位)两个岗位的不同经历。为申请软件工程师,他需要通过五层严苛的技术考核,其中任意一层的面试官都有一票否决权。而申请管理职位则完全不同,面试的问题简单多了,他基本上是在聊天,后公司往往会提供不错的职位,甚至还有一笔可观的安家费。彻奇认为这种差异的出现是因为软件工程师的社会地位比管理人员低,而即使是管理职位的申请人,只要他们能证明自己的实力,也和正式的管理人员有相同的地位:
  [作为管理人才],总裁跟比尔(注:文中的申请者)进行了平等的对话。谈话没有居高临下的家长式的威严,也没有说“你的职业生涯在这里起飞”之类的大话。实际上,这种对话可不是一个软件工程师和一个百人规模的高科技公司的首席执行官之间能听到的。
  那么既然这是事实,我们又怎么把这个问题推到席面上?彻奇一直有个不好的习惯,那是把一些小问题夸张化戏剧化,后让它偏离正确的方向,所以他的这篇博文被程序员社区疯狂转载,不过他似乎是喜欢这种感觉。

  事实上,一些非常成功的企业,特别是Facebook和谷歌,都是以工程师文化闻名全球的,他们中间的非常、非常多的工程师都有可能晋升成为高管从而获得了更大的成功。此外,我已经反复不停地说过,一本正经的技术考核是没水平的工程师评价系统,如果面试官已经给面试者设置了西游记般的重重险阻(并且这一点意义也没有),那么要求双方再保持平等的地位是不可能了。
  造成这些的原因不止是面试。工程师往往被视为四体不勤的头脑苦力,他们的语言只有电脑才懂,思维也刻板得像个电脑,不像商务人士有资格做出重要的决策。分析师、产品经理、工商管理硕士才是生意的运转者,他们赏给工程师物质,但绝不会把他们的意见当回事,尤其是在管理方面的意见。
  而实际上,任何称职的工程师都会告诉你,为了完成本职工作,他们每天必须不断地进行业务决策,只不过是在微观而不是宏观层面——这个数据库字段究竟要多长?应该采用什么数据类型?如何进行校验?如何处理所有的边缘情况?这些其实都是商业决定,是工程师决定的商业行为,也是产品经理一辈子都做不了的决定,他们有时候甚至根本不知道什么是技术上可以实现,什么是不能实现的。
  诚然,的管理者要在无休止的信息不对等情况下做出好的判断,既要满足上司的要求,还要保持下属的愉悦和紧张感,给客户超出预期的结果。这是个极其困难的工作。你可能会说(我也可能会说),管理者和工程师一样稀缺,这是他们的价值。
  但在这里我不是在讨论两者的价值比较,而是软件工程师这个企业底层群体在重要决策中被忽视的现实。我们讨论的是工程师被越来越多的人贴上古板、自闭、天真、神经大条、见不了大世面的标签。这种想法在“技术”和“商业”联系越来越紧密的当下,无疑是不可想象的。
  同时,那些完全不懂技术的管理人员势必将给公司运营带来负面效应。那些从来没写过代码或者焊接过二极管的人不会真正明白工程师的世界,他们只能盲目相信工程师的选择。而矛盾的是,这种不对等导致了更少的尊重,后导致整个公司气氛难以调和。
  我的结论?彻奇是对的,但一些企业,比如那些不了解或不尊重工程师的企业。如果企业的业务和技术完全无关,那么看低工程师还算是有一定的理由,不过当下这种企业几乎是屈指可数了。作为软件工程师,如果你发现你在供职单位受到的待遇不如商科背景的雇员,甚至被当做码农和苦力,那么你一定得好好考虑一下自己的未来了。