效仿敏捷宣言,有人也搞了一个软件工艺(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?
分享到:
相关推荐
然而,有些人对于这种技术的发展感到担忧,尤其是低端程序员。他们担心,随着CHATGPT等人工智能技术的普及和成熟,他们的工作岗位会受到影响,甚至会被淘汰。那么,面对CHATGPT的出现,低端程序员应该怎么办呢? ...
5. **工具熟练使用**:熟练使用开发工具,如IDEs、版本控制系统(如Git)、调试器和性能分析工具,能显著提高开发效率。 6. **团队合作**:编程往往是团队工作,因此良好的沟通、协作和冲突解决能力至关重要。...
#9非计算机专业可以入门程序员吗?
最近园子里有个MM发了一篇一些让程序员伤心让程序员开心的话,作为入行快10年的老程序员的我,她那篇帖子里不管是“让别人开心的话”还是“让别人不开心的话”,基本我都说过。软件开发中的各个角色基本我也都担当过...
在遇到挫折时,他们应该首先反思自己,找出问题的根源,然后努力改进,这样才能不断提高自己的编程能力。 总之,成为一名优秀的程序员,不仅需要具备耐心、毅力、细心和勇于挑战的品质,还需要保持谦逊、热情和自我...
目前ChatGPT的水平,还只能是给出一段功能性的代码,能提高程序员的工作效率,对于程序员有一定的辅助作用,但它是没有办法根据需求生成整个系统的,更不用说安装运行环境,调试,测试之类,而对于高级或者资深一点...
老刘心语#14如何获得程序员思维?如何从程序的角度看问题?
使用一种特殊的编程语言、编程很牛,单单靠这个并不能说一名程序员/开发者是程序员/开发者。 快速发展的开发环境使得这个行业比我看到的任何一个行业都要发展迅速,这既有积极的一面也有消极的一面:的程序员/开发者...
如何面试一份PHP程序员工作? How to interview a senior PHP developer
程序员如何防止颈椎病程序员如何防止颈椎病程序员如何防止颈椎病程序员如何防止颈椎病程序员如何防止颈椎病程序员如何防止颈椎病程序员如何防止颈椎病程序员如何防止颈椎病程序员如何防止颈椎病程序员如何防止颈椎病...
最近有一幅老图很火,很多人说这是“从语言来区分程序员的高低”。很多人说这幅图有问题,我说是你们的理解有问题,类似这样的对话在推特上面出现过多次,一般说着说着也就过了 最近有一幅老图很火,很多人说这是...
编者按 入们习惯将软件外企面 试时设置 的技术难度称为 “门槛”,它导致有 太多 的程序员跨不过。外企的门槛的确存在 ,门槛也的确够高。我们无 法在本文中给定一 个明确 而具体的 门槛高度或难 度系数 ,因为不同...
### 为什么设计师的地位比程序员低? #### 背景与现状 在当今社会,无论是互联网企业还是传统行业,设计和技术都是推动产品成功的关键因素。然而,在很多情况下,设计师的社会地位和认可度似乎低于程序员。这一...
为什么很多程序员喜欢喝咖啡?喝咖啡真的很伤身体吗?除了咖啡之外,还有什么方法可以提神?一个老鸟来为你分享一下真实的心里感受
黑马程序员 C语言提高课程配套课件 黑马程序员 C语言提高课程配套课件
“您也能算是真正的程序员?” 要回答这个问题,要首先搞清楚一个定义:真正的程序员是什么? 使用google一查,对这个定义的回答还真多,例如: (一)《国际:如何识别真正的程序员》: 1,激情。2...
在黑马程序员的《程序员C++提高编程PDF》讲义中,特别针对泛型编程和STL技术进行了详细讲解,这表明了模板在C++编程中的重要性。 首先,讲义介绍了模板的基本概念,这可以通过生活中的模板类比来理解。模板就像是一...