效仿敏捷宣言,有人也搞了一个软件工艺(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?
分类目录
- arch/management (17)
- computer (38)
- java/j2ee (305)
- lnmpa (237)
- mac/iphone/ipad/android (11)
- mysql/oracle/postgresql (126)
- os/software (74)
- other (518)
- python (6)
- redis/memcached/mongo (31)
- sitebuild (143)
随便看看
标签云
程序员 创业 人生箴言 eclipse 快捷键 术语 索引 unix命令 vim wordpress java学习笔记 环境变量 oracle内置函数 index 人生 数据类型 nohup tuxedo mysql学习笔记 MS-DOS命令 servlet spring 职场进阶 职业进阶 服务器选购 服务器选型 apache JPA MongoDB 注解 tomcat 子女教育 jquery maven JVM aix命令 网络营销 java异常 seo 人生规划 关键字 css 网络推广 struts 系统优化 成长 frame iframe bluehost jdbc select 我的信仰 oracle函数 cookie HashMap 站长工具 乱码 ArrayList secureCRT jsp session tail find halt 事务 oracle单记录函数 算法 URL window table javascript操作表单元素 String 字符串处理 健康 http 域名 情感 more google A记录 域名解析 netstat 弹出对话框 弹出窗口 框架集 框架 excel 字符串 javascript函数 showModalDialog nginx number 数组 sql frameset 开源程序 java数组 软件 oracle服务友情链接
收藏链接