提高程序员的准入门槛? 博客分类: 管理 咨询招聘敏捷开发制造Google
效仿敏捷宣言,有人也搞了一个软件工艺(Craftsmanship)宣言。在标题的下面是一行小字,提高准入门槛(Raising the bar)。
UncleBob就这个Topic在世界各地发表演讲。他曾经把程序员与医生做比较:既然程序员与医生一样都是提供职业服务(Professional Service),那么他们就应该遵守类似的行为准则。医生在做手术之前需要洗手洗三遍以防止病人被细菌感染,而且需要用特殊的方式内搓三下外搓三下。假如病人说,我不希望你洗手。医生会拒绝这样的要求,因为这是他们的职业准则。程序员给代码做整理,不屈服于客户(在医生例子就是病人)的不合理的时间要求,因为程序员相比客户来说,程序员是职业的(Professional),应该知道什么样才是正确的事情,什么样才是真正为客户好(在医生的例子里就是怎样才能保护病人)。相反,如果我们屈服于时间压力了,没有对代码做整理,没有坚持更广泛的那些“正确的事情”,那么我们就不是职业的(Professional)。
他在世界各地做演讲之前都会问一个问题,多少人被Bad Code困扰过。结果自然是所有人。然后第二个问题就是,这些Bad Code都是谁写的。他的结论是,我们这个行业充斥了大量的Bad Code,而根源就是有太多不合格的人在从事这个行当。所以,这才有了那标题下的一行小字:提高准入门槛。但是,这有用吗?
我们来看看参加软件工艺北美大会(SCNA)的Speaker名单。假设这些人都是合格的Professional。他们都是在什么样的公司呢?
1、Small Group 咨询公司或者独立咨询
Robert C. Martin,Michael Feathers ~ Object Mentor
Ken Auer ~ RoleModel Software
Ward Cunningham ~ 一个人干的产品 AboutUs.Org,曾经的c2.com
Jim Weirich ~ EdgeCase
Christopher Avery ~ 貌似独立咨询
Cory Foy ~ 独立咨询
Kevin Taylor,Dave Hoover ~ obtiva
Micah Martin,Paul Pagel ~ 8th Light
Carl Erickson ~ AtomicObject
2、高Value的产品
Fred George ~ TrafficBroker
Dave Astels ~ Engine Yard
Bobby Norton ~ DRW Trading
那么所谓的不合格的Professional都在什么公司呢?这个就不用问了。显然不是那些精英咨询公司和高Value的产品公司。他们广泛分布于印度中国的外包企业内,而且这个行当每年都在以更快的速度制造这些不合格的Professional。那如何提高准入门槛呢?
但是有什么门槛好提高的?因为门槛已经在那了。如果你不是合格的Professional,像TrafficBroker,DRW Trading的公司会招聘你吗?如果你不是合格的Professional,UncleBob他自己的咨询公司ObjectMentor会招聘你吗?这是一个金字塔。一个人从塔基进入,先从不规范的民企,最次的外包企业开始,然后到好一些的外包企业,然后开始去做咨询,然后要么独立咨询要么就是被Google的Wave Team挖去,要么就是一帮人聚集到DRW Trading这样的小公司,给资本家写期权模型。如果我们只看塔尖,这个门槛已经在那了。Dan North, Bobby Norton这些人自己的道路,就已经说明了走到塔尖是多么的不容易了。那为什么还要提高准入门槛呢?难道是让Tata这样的外包公司不再招聘不合格的毕业生来堆砌代码?且不说其他方面的可行性。哪里来的合格的毕业生?Professional之所以成为Professional,肯定不是一毕业就是Professional的。那么提高门槛的目的就是不再让毕业生加入到写代码的行列来吗?
如果没有这巨大的塔基,如果没有大量的公司招聘大量的Unprofessional。你们塔尖上的人到哪里去招聘人?我同意Software Craftsmanship强调的价值,但是提高准入门槛却是一个很无聊的事情。关键不在于让谁进来,不让谁进来。而是我们这个行业,如何才让像律师和医生一样提供给毕业生在职的锻炼,而不是两三天买一个证书的培训。按照经济规律,牛人扎堆在了牛人一起,而Unprofessional扎堆在塔基在广大的外包软件公司里。那么我们除了牛人从塔尖向下望,摇头还是摇头。那么我们除了塔基的人向上望,摇头还是摇头。还能有什么其他的结果?
到底是环境造就了这样一批人,还是 这样一批人造就了现在这样一个环境呢?到底是什么让这些product owner相信软件可以由non-professional写出来,继而创造了一个可以创造更多non-professional的环境。是我们,还是他们,还是the damn god?