许多敏捷专家认为,不是所有的人都能适应。一些人无法理解敏捷的哲学,而且会对团队的运作起到潜在的负面作用。极限编程小组有一个有趣的话题,小组成员们讨论如何评估一个人是否适合XP。这个讨论涉及到可以作为评价标准的不同因素。
Ken Boucher认为:一些软技能,例如沟通能力、团队协作能力比个人的编程技能更加重要。他觉得编程技巧是可以学会的,但是掌握软技能需要更长的时间,难度也更大。Ken还说:
他们会进行一天的面谈,包括进行结对编程、白板设计、一起吃午饭,通过这些来评估技术水平和软技能。
Kevin Petteys有些不同意见,他认为对沟通能力的判断是很主观的,最客观的评价还是应该根据一个人的技术能力。他曾在多个项目中遇到过口才很好、但是完全不懂编程的人。
David Peterson 认为,编程能力和沟通能力是相互联系的。如果一个人无法清晰地表达自己,那么他也不大可能写出清晰的代码。Pat Maddox建议与候选人结队编程,评估对方的技术水平和沟通技巧。在他看来,结队编程能够揭示出如下事实,
在我教授之后,他们是否能够很快学会?(他们或许不了解TDD的“红灯——绿灯——重构”模式。这没有关系,我可以教他。但是在我们第二次共同开发时,他们能马上学着使用TDD么?) 他们的算法编写能力怎么样? 他们能否识别出重构的机会? 在解决问题时,他们如何沟通? 小组中有人反对用结队编程去评价别人,他们认为这可能会让候选人感受到威胁,或者处于压力之下。其他一些成员则认为:如果某人因此感到威胁,这就说明他不适合XP。
小组接下来讨论了评价个人技术能力的最佳方式。大部分小组成员认为写代码是最好的方式之一。Kent Beck补充道:通过写代码是可以了解某人的工作方式,但是却无法衡量他的性格和人际交往能力。应该选用什么样的代码进行测试,对此大家意见不同。有人认为采用编程技巧题目会比较方便,例如FizzBuzz。其他人则认为:即使候选人解决了这些技巧性的题目,也无法知道对方解决实际问题的能力。他们主张采用实际工作中的问题进行测试。D.André Dhondt提出了折中的意见:
不管采用编程技巧测试题目,还是真实问题,用它们进行结队编程肯定是各有利弊。我认为这两种方式都采用会更好。让候选人花45分钟时间独立解决编程技巧问题,然后再跟他一起结对开发一个真正的用户故事(要尽量选择不含公司和行业特性的故事)。 D.André还说,他主要看中
沟通能力、工作节奏和指导能力。这些特性决定一个人是否具备协作能力,与解决何种类型的编程问题无关。
Craig Davidson试图用自己的观点来总结讨论。他认为最重要的是积极性和采用XP进行工作的热情。合格的人要有的热情,应该关心他所使用的开发语言和所能解决的问题。
总而言之,许多小组成员赞同这样的观点,合适的人选需要同时具备技术能力和软技能。大家形成了这样的共识:与潜在候选人进行结队编程时,这些技巧会得到体现。还应注意的是:这个人是否具备加入XP团队的热情和渴望。
阅读(1927) | 评论(0) | 转发(0) |