在我任职于雅虎期间(大约 2001-2007),我学会了做很多事情,但同等重要的,我还学会了如何避免做某些事情。对于后者,主要就是如何避免不公的对待技术人员。雅虎,尽管做出了很多善意的努力和明显的例外举措,仍然没有在公司内带来技术人员地位的提高。尽管我们这些技术人员创造了大量的价值,可管理层永远都是非技术人员。不可避免的,大量优秀的人才注意到了这些,忍无可忍,愤而离开。
在 2007 年离开雅虎后,我和别人合作创立了 Polyvore,从这时开始,我的一个人生主要目标就是,要建立一个高度重视技术人员、将他们作为一等公民对待的公司/社会环境。我毫不动摇的坚信,建立这样的环境能带来各种各样大量的好处。
此后我一直在思考一个问题,相对于很多的社会上能创造出巨大价值的传统职业角色,为什么软件技术人员的价值会被整体的低估?我总结出三个社会学上的原因。
一个有形,一个抽象。人们倾向于更认可他们能看得见摸得着的有形的东西。
一栋办公大楼,坐满了在办公桌前办公的人。人们能看见这些,很自然的会认识到大楼的价值。人们面对一栋高耸如云的建筑物,会欣赏它的规模和设计。人们会习惯的认为,不管是谁在负责创造这些东西,他一定是极具价值的人。与之形成对应,人们却看不见和摸不着一个运行起来能等价于 50 个人工作的软件或一个用来设计大厦的软件。软件和其它抽象的智力劳动是因为人们不可见,所以被社会性的低估。
缺乏测量方法。在缺乏好的方法来测量和评估一个东西的真正价值时,人们倾向于用他们的偏好来评判。人们倾向于认为大型团队=更重要。对于我们这些曾经在“大企业”工作过的人来说,这是显而易见的,一些大型公司的管理者通过组建更大的团队来扩大他们的权利机构。更多的人=更多权力&报酬。
要公平还是要平均?人们都渴望公平。但有趣的是,人们的这种渴望却无法应用到像软件工程师这样一个人产出会比另一个人高出几个数量级的生产力异类上。一个技术人员能让一个操作过程自动化,于是 50 个人的活儿现在只需要 5 个人。人们很难接受这样的事实:一个人的报酬应该比其它人高出几个数量级,这种悬殊看起来不公平。
还有一些实际操作上的原因。例如,用一个经理来管理一个大组织,这是必不可少的,因为少了他们事情会很快变得一团糟。这种必不可少成了他们讨价还价的资本。而相对照的,优秀的程序员总是使得自己看起来是多余的,他们能让系统在缺少他们的情况下仍能不停的工作、生产有价值的东西。只有最开明的公司老板才能真正认识到这种人的真正价值。
如果你在做的工作正是这种创造可扩展且复杂、抽象的智力工作,很有可能你正是不被人看重并且因此被低估。
怎么办?
要杰出。并不是因为你是程序员,你就能创造出无数的价值。你能让你的团队的工作效率翻翻吗?你能让你开发的项目具有很好的扩展性吗?
会讲故事/沟通。让一个复杂抽象的题目变得易于理解和欣赏的好方法就是给人们讲故事。用一种其他人能听懂的方式解释为什么你正在研究的工作很重要。一旦人们理解了其中的原因,他们也就找到了欣赏你的工作的理由。
用合适的度量手段。采用人们易于接受的度量方法能让抽象的事物变得有具体,能够很好的让人们理解你创造的价值。如果你说你调整了图像压缩比,使得每个图像的体积减少了 4.5KB,很少人能理解你说的是什么。而当你解释说这些压缩能使得用户界面的加载速度提高 15%,那大部分人都能明白。如果你解释说页面加载延迟减少 10ms 意味着收入会增加 10%,这就更好了。每个人都理解收入是什么。
加入正确的公司团队。最后一点,你也许应该寻找一个开明的公司,一个能按人的实际贡献、而不是按老旧的社会标准来评价人的公司,加入他们。选择的方法可以看看这个公司是不是由技术人员创立/管理的,看看这个公司是否大量的使用各种方法评价人。去看看他们都有哪些评价标准!
你认为呢?还有什么其它原因导致程序员的价值被低估吗?你对如何选择一个正确的公司有什么好的建议?