我们为什么仍然要雇用效率低下的程序员?

jopen 10年前

  英文原文:Why Bad Programmers Still Get Hired

  有的程序员工作效率很高,一个顶十个,那么回过头来想想,为什么我们还要聘用那些效率低下的程序员呢?

  我最近拜读了 Troy Hunt 再版的《Measuring code quality with NDepend》一文。在具体讲述关于 Ndepend 的细节之前,Troy Hunt 分享了一个关于专业差异的现象。

软件行业之所以常常让我觉得与众不同,是因为它和其他领域存在着巨大的不同之处。例如医药和航空,它们的专业门槛要求非常高,而软件开发对于从业者 的经验和专业等要求相对就低多了。当然我承认上述论断并非绝对——偶尔也会有医疗事故或者飞机失事出现——但是我们只要想到,在软件开发中会出现劣质的代 码的频率是那么的高,相对而言,医疗事故和飞机失事的概率就微不足道了。

  读完这篇文章,我不由地思考起了软件行业的专业性以及效率低下的程序员之所以仍能被聘用不被炒鱿鱼的问题。经过深思熟虑之后,我终于得出结论:之所以光凭能力、效率、专业性不能决定一个程序员去留,主要有以下 3 个原因。

  • 任何公司都需要采用营销和技术手段,来生产和推广产品,代码质量并非成功的唯一因素。
  • 外行人看不出代码质量。一个漂亮的用户界面,哪怕后面的代码乱七八糟也没关系,Who knows?
  • 是否专业化要经过 10 多年的维护之后才看得出来,大浪淘沙,历时弥久。

  产品理念、市场营销和技术能力之间的关系

  现在凡是在 IT 界赫赫有名的公司(苹果、谷歌),都有属于自己的产品理念、庞大的市场和卓越的技术能力。但是如果一家公司想要取得成功,这 3 个条件中只要满足 2 个就足够了。拥有一个超棒的产品理念和正确的营销策略,其技术水平达到一个差不多的水准就 ok 了。

  2000 年的时候,我曾就职于 CeBIT 公司,这家公司捣鼓出了一个在技术层面上堪称划时代的 Web 发布系统,但是可惜的是由于营销策略不当,这样一个产品竟然无法进入公众的视线。我们的旁边还有一家公司,员工总是衣着得体,善于与人沟通交涉,产品还算 可以(虽然我的同事曾经嘲笑其为“好像我大学实验室随便做做的图像处理软件”)。现在那家公司已经是移动成像软件上的执牛耳者了,而我的老东家还是一家小 公司,苦苦经营。

  外行人看不出代码质量

  我不知道那个图像处理软件的代码是怎么样的,使用这个产品的外行人也一无所知。但是我可以肯定,其用户界面的设计肯定是一流的。好吧,软件的外 观(即用户界面)和代码质量之间几乎毫不相关。与此相比,建筑业则完全不同(例如特洛伊遗址),我们仔细看凑近看,还是能对建筑质量品评一二的。但是如果 是个门外汉看代码,要是一点也不懂编程和软件设计,那就跟看天书一样,质量如何根本无从谈起。

  大浪淘沙,历时弥久

  对于一个软件,外行人所能看到的只有程序何时更新、是否好用、以及界面外观是否漂亮。其真正的质量如何还是需要靠时间来检验。差不多经过 10 年左右的有效维护,取其精华、去其糟粕,才能最终出来一个设计精巧的成果。但是不幸的是,在这 10 年时间里,那些效率低下的程序员已经写了不计其数的劣质代码。而且时间已经过去那么久,要想再追究也毫无意义。即便辞退他们,他们也能根据以往参与过的项 目经历,炫耀那些迷人的用户界面而隐藏起背后的杂乱无章,通过复制粘贴代码,轻轻松松在网上找到一份好工作。

  译文链接:http://news.html5tricks.com/why-bad-programmers-still-get-hired.html

  翻译作者:IT 新闻 – 蒋丽丽