Total Pageviews

Monday 10 October 2016

编程新范式-面向工资编程、简历驱动开发

面向工资编程(Salary Oriented Programming)这个说法我还是第一次听说,不过意思应该跟我接触到的另外一个名词 “简历驱动开发”(Resume Driven Development)一样。
接触“简历驱动开发”还是08年在美国出差的时候,当时做的系统是把奥巴马搞的很狼狈的一个东西,那就是美国的健保计划,联邦级别的议会一直不通过,有些州就搞了自己的儿童健保计划,我们就是做这样一套系统打算卖给各个州政府,让他们运作健保计划,最后好像在三个州完成了实施。
当时项目组中国和美国两边加起来应该有将近一百个人,使用了当时刚刚出来的BPM、RuleEngine、WorkFlow、ServiceBus等等一大堆新鲜东西,共分了三十多个子项目,从06年开始,整个项目一直持续到11年,其中把系统流程整个完整的跑起来用了将近三年。
问题来了:因为这个系统的功能并不复杂,流程就是录入申请人信息、计算能否加入计划、费用计算、支付以及一些存档功能,按现在一般国内研发团队的能力十个人花三四个月时间应该可以搞定。那么为什么搞那么复杂呢?
我问了当时项目里面架构组的总架构师,他给了我两个原因,第一,如果想中标,系统里面的技术必须要比其他投标公司先进,否则没有竞争优势。第二个原因就是“Resume Driven Development”了,我当时第一条听懂了,但是第二条不知道什么意思,他微微一笑、没有细讲。
后来我就查什么是“Resume Driven Development”,主要有以下几点:
1. 选择是否使用一项技术或者架构的标准是是否有利于自己的职业发展,而不是有利于客户/用户。
2. 选择是否使用一项技术或者架构的标准是是否时髦而不是是否实用。
3. 以技术的名义创造各种NB头衔(Job Title)
这样我就理解当时是什么情况了,架构组里面有N多架构师,前端架构师、BPM架构师、RuleEngine架构师等等等等…..
后来,项目半死不活、系统勉强跑通,项目里面哪些NB人物简历上填满了各种NB技术、NB头衔,一个一个的另寻高就了。
更新一下:
看到“面向工资编程”的另一个解释跟百度有关,也就是昧着良心为价值观不正确的公司干活,我不发表意见……

面向工资编程,就是为了涨薪,什么技术前景好,就学什么。
现在从业2年半,接触了这么多语言,最大的感受是一门技术学通,其实只需要半年就够了,往往3个月就能到熟练运用的程度。
自己严格来说算半个面向工资编程,还有一半看重公司能否让我学到新技术,目前在公司从来都是主动要求让老板涨工资的一方。 
遇到过,IT部为在集团内争宠,弱需求强开发,应该称为”程序员驱动项目”吧。
是这样的。把小项目做大,给自己简历增加各种nb技术和title,这就是tmd成功之道啊!
太常见了,拿公司资源刷简历,各种高大上最尖端,搞死项目玩残公司自己拍拍屁股跑路升职加薪。