弱的软件开发人员都跑到哪里工作了?
信不信由你,他们可能成为了你的上司。
首先声明一下,以下内容主要翻译自托米斯拉夫·图拉利亚,主要是他的观点。我作为一名弱的软件开发人员,可没有资格成为一群强的软件开发人员的上司,更没有压榨他们。
下面是图拉利亚的话。
我在 IT 领域工作了大约 10 年,主要在 20 至 100 人的中小型公司工作。在这类公司中,最薄弱的环节却进步得更快,这是一个悖论,但它却是真实的。下面是一些记录自真实世界的例子。
示例 1
当优秀的开发人员在老旧项目上勤恳工作并不断解决 Bug 时,一个糟糕的开发人员会为自己的管理辩护,因为整个项目是以「错误的方式」完成和维护的。糟糕的开发人员因此会被提升为团队负责人,并肩负起了「以正确的方式」做事的使命。
这大概就是好人长在嘴上,会干不如会说。这是一句鸡汤。
示例 2
公司有一个开发人员团队,正在开发一个非常大的项目,他们急需要一个项目经理,所以他们将最弱的开发人员提拔为项目经理。没有人想念他,因为这个人在编码上非常糟糕。因为接下来几个月的时间都不需要为引入新人而操心,所以这一举动被大家默认是合理的。
项目经理和产品经理,不管怎么说,它们是门槛非常低的岗位,基本是个人都能做,做好做坏且不论。如果这个人再经常给大家买买零食,帮大家跑个腿,基本团队的所有成员都不再嫌弃他。中国人普遍对弱者都很善良,强者很多时候还以能维护弱者的生存为荣耀。但弱者有时候却以此为耻,并不会还有任何感激。
示例 3
一家非常有前途的初创公司,开发人员数量往往短时间内会大幅增加,一般这种情况下,他们会提拔在公司工作时间最长的开发人员作为组织架构中的团队负责人。这些人的编码质量仅仅可以超越小学生的编程水平,但因为他们在公司工作时间最长,忠诚度最高,所以得到提拔。一般他们的工资也是最低的,他们接受这种工资,因为没有人愿意为他们的技能支付更多。
愿意拿最少的工资,以彰显团队的稳定团结,对团队的文化建设、文件继承也算是有价值啦。
示例 4
在创业公司,团队中有两种类型的人:满不在乎的人和想把事情做对、做好的人。在与无知的管理人员,和团队中的不良成员进行了几个月的斗争后,所有优秀的开发人员都会辞掉了工作。猜猜谁会被提拔起来管理新团队?
劣币驱逐良币这个现象,全世界都存在。并不是像某些书或人讲的,中国人有劣根性,所以很难管,不是的,这些都是弱的管理人员在管理不好的时候,编织的一些借口。
示例 5
一位非常糟糕的软件开发人员,因表现不佳而被解雇,他起诉公司并且还获胜了。他的理由是,在所有开发人员中,他每天编写的代码行数最多,所以他做的工作最多。他说的是事实,他的同事将他的 8000 行代码类重构为 230 行。后来公司给了他一年的工资,作为他答应辞职的条件。
可笑的是,那些真正想把事情做对、做好的人,他们往往一怒之下就主动离开了团队,没有得到任何补偿。这一般是因为,他们相信自己很快就能找到新工作,并且也不屑于做一些他们认为卑鄙的事。而另外一些人则不是,他们因为害怕,而主动学习并实践到了许多非工作方面的生活技能。
示例 6
一个糟糕的开发人员总是向管理层抱怨,其他开发人员强迫他参加代码审查。原因很简单,他是整个团队中唯一一个编写糟糕代码的人,他每次提交代码都会导致项目混乱。过了一段时间,他说服管理层,代码审查是浪费时间和金钱的,不进行代码审查将为公司节省很多成本,可笑管理层相信了他的鬼话。他先成为了团队负责人,继而又成为了部门负责人,因为所有优秀的开发人员都在他升职后的几个月内辞掉了工作。
Code Review 是一项非常好的团队文化举措,它可以促进团队保持公平、公正和透明的规则,也可以促进成员之间相互主动学习。当然推进的时候肯定有阻力,这时候就是考验管理层水平和意志力的时候了。
天下的乌鸦都一样黑,美国的月亮也不比中国圆。在研发管理上,中外小团队面临的问题我相信都是类似的。
示例 7
一家快速发展的 IT 初创公司肯定需要很多新人,所以他们雇佣了大量的软件从业人员。每个不是写程序这块料的开发人员,都被提升为项目经理或销售代表,极少的人转到营销、设计团队,只有很少的一部分人从事软件开发工作。
任何时候软件开发的门槛都是存在的。
示例 8
在许多情况下,团队领导和项目管理人员,将缺乏足够沟通能力的弱编程人员,转移到数据分析师、软件设计师、软件架构师等岗位或角色。
架构师在国内其实一个受人追捧的角色,没有想到在国外,它是一个像产品经理一样夸夸其谈的角色。很多时候架构师确实只是在说,并不是在做,尤其是业务架构师。
示例 9
在较大的公司中,开发人员总是来来去去。通常,优秀的开发人员会离开以获得更高薪水的工作,而弱的开发人员会留下来,因为他们找到了一份自认为不错的稳定工作,并获得了他们满意的薪水。几年后,弱的开发者成为了团队唯一的老员工,所以他们是最先得到晋升的。
我还有很多例子。没有必要把它们都写出来。基本就是,如果您是弱程序员,那么您仍然很有可能获得一份好的工作和高的薪水——通常比一个好的程序员还更好,还要高。如果你是一名优秀的程序员,你可能不会得到晋升,因为你是团队里干活的主力,如果公司提拔你,就没有人能把事情做好了。
你可能会觉得这很奇怪,但确实很少有公司像谷歌、Facebook、亚马逊等那样重视他们的开发人员。在大多数情况下,软件开发人员被认为是高薪的互联网民工,他们的薪水是研发团队最大的支出成本,管理层认为必须加强管理,以最大程度榨取他们的剩余价值,例如 996、007、末位淘汰机制等。很少有开明的老板愿意把好的开发人员,真正视为团队的财富而细心呵护。
后记
我看到这篇帖子还是有点小震惊的,以前总有人说,中国和国外不一样,中国是人情社会,不能照搬研发管理的那一套。其实在软件的研发管理中,中外遇到的问题是相似的,国外的月亮也没有那么圆,国内土生土长的程序员也没有那么不堪。
**最后,向所有一直在岗位上把事情做对、做好,以后仍然想做对、做好的程序员致敬,无论厂子大小!**也向自己致敬,我一直都是这样走过来的。(关于团队管理,客观讲我认为它是计算机世界客观存在的一种事物,必须按照软件研发管理的科学理论认真对待,并不是什么旁门左道。)
参考链接