客户紧密协作

极限编程(XP)要求有客户参与,并非仅仅为了帮助开发团队,而是使其成为开发团队的一份子。XP的所有阶段均要求与客户进行沟通,最好是在现场面对面沟通。能够直接分配一到多个客户人员给开发团队效果最佳。但是请注意,这看起来会占用客户大量的时间,以至于有些客户会用新手来冒充专家,你需要真正的专家!

用户故事由客户在开发人员的帮助下编写,可估算时间并分配优先级。客户可以帮助确保故事涵盖了系统所需的大多数功能。

发布计划会议期间,需要同客户一起协商出每一次发布所要包含的用户故事,同时也要协商出发布的具体时间表。那些能够影响商业目标的决策必须由客户来做。发布计划会议通过定义小批量增量发布来尽早为客户交付功能,这使客户可以更早试用系统并及时为团队提供反馈。

由于用户故事缺少细节,开发人员需要与客户沟通以获得足够的细节来完成编程任务。任何有一定规模的项目都需要客户的全情投入。

功能测试期间也需要客户的介入,以帮助团队准备测试数据并验证计算结果。功能测试确保系统在发布到生产环境前已准备妥当。可能会有在发布前系统任然无法通过所有功能性测试的情况,此时需要客户来评估测试结果,并决定是继续发布还是立即终止。

这看起来会耗费客户大量的时间,但我们需要牢记的是,前期因为没有事无巨细的需求规格说明书而花费客户的大量时间,后期却因为交付了真正可用的系统为客户节省了大量的时间。当有多名客户人员兼职参与团队活动时,可能会发生一些问题。领域专家们的意见不一致,会很常见。有效解决此类问题的方式就是定期召开小组会来解决分歧。