敏捷适合所有人吗?
2004年4月4日
普通开发人员可以使用敏捷方法吗?
我经常听到这样的说法:敏捷方法只适用于能力较强的开发人员,而能力一般或低于平均水平的开发人员应该避免使用敏捷方法。 当我被问到这个问题时,我不得不回答说我不知道答案——对于任何新技术来说,这种无知都是很自然的。
当一种新的技术或工具出现时,通常都是由能力较强的开发人员先试用。 这是很自然的反应。 早期采用者必须是那些对自己的职业更加用心和关心的开发者。 新方法通常由他们先试用,然后再由大多数人试用。 因此,对于任何新方法,你都必须问一个问题,即这种方法是否只适合那些更具冒险精神的人。 这是一个无法回答的问题,因为在它被更多普通团队尝试之前,你无法判断它对他们是否有效。
当然,这并不能阻止人们进行推测,只要我们都明白这只是推测,我很乐意参与其中。
敏捷方法的一个要点,以及它与计划驱动方法的明显区别在于,敏捷主义者坚信“个人和互动”比“流程和工具”更重要。 这种以人为本的假设意味着,敏捷主义者总是期望一个高能力的、有凝聚力的团队比一个低能力的团队做得更好,无论哪一个团队采用更敏捷的方法。 这个假设确实意味着,组织应该把重点放在为他们的团队获得和培养高能力的人才上。 这并不意味着低能力的团队使用敏捷方法会比使用计划驱动方法做得更差。
敏捷方法的许多方面都需要明智的技能。 自我调整需要改变流程,许多敏捷技术侧重于磨练技能水平。 我认为这意味着一个有效的敏捷团队需要有一些能力较高的人。 但计划驱动方法也是如此。 毕竟,计划驱动方法假设能力较高的人会制定计划。 两种方法都需要一些高能力的人,尽管这些领导者与团队合作的方式不同。 悬而未决的问题是,你是从计划中还是从协作中更多地利用了高能力的人。
到目前为止,我们在Thoughtworks的经验让我们对敏捷方法非常乐观,但当然,Thoughtworks只招聘高能力的人才,这是众所周知的。 然而,我们的项目更加多样化,因为我们通常与客户共同开发,而客户的员工通常涵盖了各种能力。 当然,我们更希望团队中有一定数量的Thoughtworks员工,这为我们提供了帮助我们交付和技能转移的关键力量。到目前为止,我们发现敏捷方法的协作性质对我们非常有效。
更新:Ralph Johnson 描述了 他与学生的经验——结论是,对于技能较低的开发人员来说,XP比RUP更好。