外观远处百余法,不如唯观内心胜

配置管理,JAVA

导航

怎样才算优秀的xyz员

透明思考的blog上看到下面这段文章
说的很好,是我一直想说却一直没有说出的意思,: )
把下文中的程序员换成配置管理员同样是很合适的

我还想起中学课本里卖油翁的故事
同样是那么朴实、那么让人清醒的文字,
这才是真正的秘籍把

-------------------------------------------------------------
UML Distilled中,Martin Fowler这样谈起敏捷方法:“Agile approaches assume that the most important factor in a project's success is the quality of the people on the project and how well they work together in human terms.”
 
从某种角度,也可以把这句话理解为:敏捷方法要求优秀的程序员。是的,对于真正不称职的程序员,任何一种方法学都不能让他做得更好。不过这里有一个问题需要澄清:在程序员的职业上,怎样才算优秀?国人爱用的“武侠隐喻”严重地误导了很多人,以为“武功盖世”、或者学会什么“独门绝学”就算是优秀的程序员。于是我们看到很多人四处寻找“秘籍”,或者请求“大侠”给一些“点拨”,希望像张无忌或者杨过那样“武功”突飞猛进。出版社也在这里推波助澜,“宝典”、“箴言”、“修炼之道”……这样的书名都在暗示:程序员就像武侠小说里的主角(或者配角),只要机缘巧合读了某本书,就可以一夜之间变得优秀了。
 
纯粹是南辕北辙。对于软件开发这件事,工艺学是一个更加贴切的隐喻。也就是说,这里几乎没有什么秘而不宣的绝技,学徒小工做的事和大师工匠几乎相同,差别只在于习惯。没错,正是日常工作的习惯makes them different。看看Martin Fowler那句话,“优秀程序员”的定义已经呼之欲出了:(1)高质量的个人工作;(2)善与他人合作。高质量的个人工作从哪里来?就来自那些最琐屑的习惯:测试先行、无情重构、持续集成、结对编程、交流、反馈、快速、勇气……即便天资并不出色,即便没有过目不忘的记忆力和快如闪电的思维,即便学习新知的速度稍慢,只要养成这些好习惯,每时每地做好最基本的事情(例如单元测试),同样可以成为一个优秀的程序员。
 
偏偏是根深蒂固的武侠隐喻蒙蔽了很多人的眼睛。“这些细枝末节的东西有什么用呢?我只要看了xxx秘籍,学会yyy功夫,我就是一代宗师了,还用在意这些小玩意吗?”其实,你会不会用JMS、会不会做工作流、懂不懂Spring和IoC,谁在乎呢?学会这么一个东西顶多只需要一个月,然后烂代码还是烂代码。

posted on 2004-04-24 10:02  wangxhgh  阅读(998)  评论(2编辑  收藏  举报