1700488800
胜任者
1700488801
1700488802
高级新手
1700488803
1700488804
新手
1700488805
1700488806
精通水平的从业者需要全局思维。他们将围绕这个技术,寻找并想了解更大的概念框架。对于过于简单化的信息,他们会非常沮丧。
1700488807
1700488808
例如,处于精通阶段的人拨打计算机的技术支持热线电话,被询问是否插上了电源的时候,不会作出良好反应。(比如我在这种情况下就会想顺着电话线摸到那一头,狠狠地惩罚那个说话的人。)
1700488809
1700488810
精通者能够自我纠正。
1700488811
1700488812
Proficient practitioners can self-correct.
1700488813
1700488814
但是,在德雷福斯模型中,处于精通水平的从业人员有一项重大突破:他们能够纠正以往不好的工作表现。他们会反思以前是如何做的,并修改其做法,期望下一次表现得更好。到这个阶段,自我改进才会出现。
1700488815
1700488816
同时,他们会学习他人的经验。作为精通者,他能够阅读案例研究,倾听有关失败项目的流言蜚语,观察别人怎么做,从故事中认真学习,即使他没有亲自参与。
1700488817
1700488818
伴随向他人学习的能力而来的,是理解和运用格言经验之谈(maxim)的能力,这些经验之谈犹如谚言或格言,是可以应用于当前情境的基本原理〔5〕。经验之谈不是指令清单,它们必须在一定的情境下使用。
1700488819
1700488820
务实的秘诀
1700488821
1700488822
当Dave Thomas和我刚开始写《程序员修炼之道》时,我们试图传达给读者一些与我们的专业最相关的建议。
1700488823
1700488824
这些诀窍(经验之谈)凝结了我们多年来的专业经验。从每年自我拓展学习一门新语言到“不要重复自己”和“不要打碎窗户”的原则,类似的经验之谈是传授专业技能的关键。
1700488825
1700488826
举例来说,一个众所周知的极限编程方法的经验之谈是“测试一切可能出错的东西”。
1700488827
1700488828
对于新手来说,这只是一个指令清单。测试什么?是所有的setter和getter方法,还只是打印语句?他们最终会测试所有无关的东西。
1700488829
1700488830
但是,处于精通水平的人员知道什么地方有可能出错,或者更确切地说,什么地方非常有可能出错。他们具有经验和判断力,能够理解这句格言在情境中意味着什么。事实证明,理解情境是成为专家的关键。
1700488831
1700488832
精通者有足够的经验,他们知道下一步会发生什么,如果没有发生又需要改变什么。他们非常明确哪些计划需要取消,而应该采取什么行动。
1700488833
1700488834
同样,处于精通水平的人可以有效地运用软件模式(《设计模式:可复用面向对象的软件》[GHJV95]一书提出的),但是这不是较低技能水平所必须掌握的。
1700488835
1700488836
现在我们已经到达了一个层次。精通者可以充分利用思考和反馈,这些都是敏捷方法的核心。相对早期阶段,这是一次巨大的飞跃。处于精通阶段的人更像是初级专家,而不是高级胜任者。
1700488837
1700488838
误用的模式和脆弱的方法
1700488839
1700488840
现在你可能认识到,软件开发领域的一些最激动人心的新动向是面向处于精通和专家级水平的开发人员的。
1700488841
1700488842
敏捷开发依赖反馈。事实上,我在《高效程序员的45个习惯》中对敏捷开发的定义是:敏捷开发就是在一个高度协作的环境中,不断地使用反馈进行自我调整和完善。但是基于以往表现进行自我纠正,只在较高的技能水平上才能实现。
1700488843
1700488844
高级新手和胜任者经常会把指令清单和软件设计模式混淆,有时这会导致灾难性的后果。就我知道曾经有一位开发人员刚看了GoF的书,并热情地想开始使用设计模式。所有模式,一次用尽,在一小段平凡的代码里。
1700488845
1700488846
他设法把23个设计模式中的17个用在他那段不幸的代码片断中,终于被人发现。
1700488847
1700488848
2.2.5 阶段5:专家
1700488849
[
上一页 ]
[ :1.7004888e+09 ]
[
下一页 ]