InfoQ

新闻

如何评价一个人是否适合XP?

作者 Vikas Hazrati译者 郑柯 发布于 2008年7月16日 上午8时38分

社区
Agile
主题
协作,
团队协作
标签
人际沟通,
采访,
极限编程

许多敏捷专家认为,不是所有的人都能适应敏捷开发。一些人无法理解敏捷的哲学,而且会对团队的运作起到潜在的负面作用。极限编程小组有一个有趣的话题,小组成员们讨论如何评估一个人是否适合XP。这个讨论涉及到可以作为评价标准的不同因素。

Ken Boucher认为:一些软技能,例如沟通能力、团队协作能力比个人的编程技能更加重要。他觉得编程技巧是可以学会的,但是掌握软技能需要更长的时间,难度也更大。Ken还说:他们会进行一天的面谈,包括进行结对编程、白板设计、一起吃午饭,通过这些来评估技术水平和软技能。

Kevin Petteys有些不同意见,他认为对沟通能力的判断是很主观的,最客观的评价还是应该根据一个人的技术能力。他曾在多个项目中遇到过口才很好、但是完全不懂编程的人。

David Peterson 认为,编程能力和沟通能力是相互联系的。如果一个人无法清晰地表达自己,那么他也不大可能写出清晰的代码。Pat Maddox建议与候选人结对编程,评估对方的技术水平和沟通技巧。在他看来,结对编程能够揭示出如下事实,

  1. 在我教授之后,他们是否能够很快学会?(他们或许不了解TDD的“红灯——绿灯——重构”模式。这没有关系,我可以教他。但是在我们第二次共同开发时,他们能马上学着使用TDD么?)
  2. 他们的算法编写能力怎么样?
  3. 他们能否识别出重构的机会?
  4. 在解决问题时,他们如何沟通?

小组中有人反对用编程去评价别人,他们认为这可能会让候选人感受到威胁,或者处于压力之下。其他一些成员则认为:如果某人因此感到威胁,这就说明他不适合XP。

小组接下来讨论了评价个人技术能力的最佳方式。大部分小组成员认为写代码是最好的方式之一。Kent Beck补充道:通过写代码是可以了解某人的工作方式,但是却无法衡量他的性格和人际交往能力。应该选用什么样的代码进行测试,对此大家意见不同。有人认为采用编程技巧题目会比较方便,例如FizzBuzz。其他人则认为:即使候选人解决了这些技巧性的题目,也无法知道对方解决实际问题的能力。他们主张采用实际工作中的问题进行测试。D.André Dhondt提出了折中的意见

不管采用编程技巧测试题目,还是真实问题,用它们进行结对编程肯定是各有利弊。我认为这两种方式都采用会更好。让候选人花45分钟时间独立解决编程技巧问题,然后再跟他一起结对开发一个真正的用户故事(要尽量选择不含公司和行业特性的故事)。

D.André还说,他主要看中沟通能力、工作节奏和指导能力。这些特性决定一个人是否具备协作能力,与解决何种类型的编程问题无关。

Craig Davidson试图用自己的观点来总结讨论。他认为最重要的是积极性和采用XP进行工作的热情。合格的人要有学习的热情,应该关心他所使用的开发语言和所能解决的问题。

总而言之,许多小组成员赞同这样的观点,合适的人选需要同时具备技术能力和软技能。大家形成了这样的共识:与潜在候选人进行结对编程时,这些技巧会得到体现。还应注意的是:这个人是否具备加入XP团队的热情和渴望。

查看英文原文:How to Evaluate a Good Fit for XP?

InfoQ英文站的读者Bruce Rennie和Kurt Christensen也认为软技能更加重要。Bruce指出:自己遇到的很多已经失败或仍处于挣扎之中的项目,技术问题并不是造成它们失败的主要原因。而Kurt则说,缺乏“软技能”的人会造成更多的问题。

7 条回复

回复

如何评价一个人是否适合XP? 发表人 sw pollux 发表于 2008年7月16日 下午8时36分
如何评价一个人是否适合XP? 发表人 gao.jiadong gao.jiadong 发表于 2008年7月16日 下午9时37分
Re: 如何评价一个人是否适合XP? 发表人 dream good 发表于 2008年7月17日 上午1时43分
Re: 如何评价一个人是否适合XP? 发表人 霍 泰稳 发表于 2008年7月17日 上午1时59分
Re: 如何评价一个人是否适合XP? 发表人 yang zhang 发表于 2008年7月17日 上午7时57分
Re: 如何评价一个人是否适合XP? 发表人 霍 泰稳 发表于 2008年7月17日 上午1时58分
Re: 如何评价一个人是否适合XP? 发表人 jian jin 发表于 2008年7月22日 下午8时55分
  1. 返回顶部

    如何评价一个人是否适合XP?

    2008年7月16日 下午8时36分 发表人 sw pollux

    自学能力和沟通能力

  2. 返回顶部

    如何评价一个人是否适合XP?

    2008年7月16日 下午9时37分 发表人 gao.jiadong gao.jiadong

    回答的人太主观了,古人就有说过"能言者未必能行,能行者未必能言",对你会说:但是你说的全是废话,那能对团队建设有用吗(我看过一些团队,能说的人,他们只是为了表现,boss在的时候大道理说得一大堆,实际上没有一件事能够做完整的,要吗是遇到困难就放弃的)?有的人不怎么会说,但他懂得怎么样去做(你能说这个人能力有问题吗)。再说到沟通技巧,中国人的沟通技巧远比外国人高很多,外国人说话都很直,不留余地(很容易得罪人),而我们中国人却懂得和谐共处(寻找平衡点,这是老外不懂的) 关键还得看这个人是否从团队的角度出发考虑问题,而不是个人(关键看修行)。

  3. 返回顶部

    Re: 如何评价一个人是否适合XP?

    2008年7月17日 上午1时43分 发表人 dream good

    是有这样的人,boss在的时候特能说,把所有的话都抢过去说,boss不在发言就少多了。能说不等于能做。那干活怎么办?正好XP来救场了。干活的时候pair,反正是两个人干,干出来功劳自然有一份。干不出来也是两个人顶。这种人最喜欢XP,最适合XP。

  4. 返回顶部

    Re: 如何评价一个人是否适合XP?

    2008年7月17日 上午1时58分 发表人 霍 泰稳

    不管观点如何,现在ThoughtWorks招聘的员工就我所知,大部分都是沟通能力不错,而技术能力也很强的人,这可能是他们招聘的基本原则。我想主要原因是,和传统的软件开发过程不一样,敏捷开发要求你必须和其他人沟通,而不是单纯地照文档做事。这是不是也和做敏捷的人多是做咨询有关系?

  5. 返回顶部

    Re: 如何评价一个人是否适合XP?

    2008年7月17日 上午1时59分 发表人 霍 泰稳

    这样的人很快就会被发现,被Fire掉吧?难道和他一起Pair的人不会抗议?

  6. 返回顶部

    Re: 如何评价一个人是否适合XP?

    2008年7月17日 上午7时57分 发表人 yang zhang

    会说的人比较容易知道这个人在哪些技术方面是弱点. 而不会说的人我们很难了解这个人在哪些技术不行. 从这方面来讲,不会说的人所潜在的风险是不是更大? 个人理解,不对的地方忘各位指正.

  7. 返回顶部

    Re: 如何评价一个人是否适合XP?

    2008年7月22日 下午8时55分 发表人 jian jin

    ThoughtWorks? 我毕业的时候有两个人拿到了它的offer,最后都拒绝了,因为他们认为不适合ThoughtWorks,技术上和工作方式上。 你说面试能有多大作用?

独家内容

利用Ruby简化你的Java测试

本文是Productive Java with Ruby系列文章的第一篇,我将从单元测试这个话题开始,让Java的开发人员能够在实际工作中利用Ruby提高工作效率。

与赵进聊SaaS

InfoQ中文站有幸与阿里软件的首席架构师赵进在一起探讨了SaaS的相关话题,包括SOA和ASP与SaaS的异同、云计算、SaaS的前景、它的关键技术、技术瓶颈等等。

在ESB中选择路由还是编配?

在这篇文章中,Adrien Louis和Marc Dutoo在一个典型的ESB场景中讨论了编配和路由的区别和优缺点。他们讨论了几种连接服务的方法,从使用如自定义路由这样的低级别方法,到使用如工作流和编配这样面向业务的高级别方式,并总结说不存在“一边倒”的解决方案。

分布式系统中的一致性和可用性

本文是根据7月26日InfoQ中文站在杭州举行的QClub活动(第三期)后半程小组讨论总结而成。主要内容包括如何在SOA系统中实现服务编排,如何保证分布式系统中的一致性和可用性,以及如何在实施SOA的过程中控制接口的粒度等。

虚拟化导论

人们很容易想当然的以为虚拟化技术仅仅应用于服务器。而在现实中,虚拟化这一苏醒的概念正被运用于各个层面,其中包括网络,存储以及应用基础架构。在这篇导论中,InfoQ将深入每个方面,详尽向您描述虚拟化技术的运用以及其优点与不足。

用户故事估算技巧

作为开发者,同时也是ThoughtWorks的咨询师,Jay Fields总结了自己估算用户故事的有效技巧。

InfoQ案例研究:纳斯达克市场回放

在这篇案例研究中,InfoQ对Adobe AIR和Amazon的简单存储服务(Simple Storage Service ,S3)在NASDAQ市场回放程序(NASDAQ Market Replay)中的应用进行了详细的分析。

Hadoop基本流程与应用开发

本文介绍了Hadoop的基本流程、业务场景、代码范例以及集成测试。本文是《分布式计算开源框架Hadoop入门实践》三部曲的最后一部。