敏捷开发:XP中的角色

  1. 客户

  客户表示需求方,通常负责编写用户故事(姑且理解为需求点),编排用户故事的优先级和编写和执行验收测试。

  客户通常是系统的实际用户,比如A公司找B公司帮其开发一套系统,那么A公司就是系统的客户。当然,公司是一个机构组织,客户应该是一个具体的事物,所以理具体地,客户应该是A公司的某一或者某些员工。比如,如果A公司需要的是一个财务系统,那么A公司的账务人员是该系统的具体客户。

  如果客户不是系统的直接用户,往往客户是产品经理,项目经理或者业务分析师。比如京东,单从京东的B2C来说,系统的用户那当然包括很多,但很大的一部分是自然人。京东开发了个B2C的时候,不可能让普通的用户当作客户。此时,就需要一个对B2C业务比较熟悉的人来担当客户,很多时候这个角色是产品经理。

  无论是系统直接用户,还是产品经理,首先是要对系统的业务比较熟悉的人。所以客户并不局限于直接用户或者产品经理,而是任务熟悉该业务逻辑的人或者领域专家。很多时候,公司的客服,甚至是程序员也可以担当客户的角色。客户并不表示一个人,客户可以是多个。

  在有些项目中,客户可能由客户团队充当,客户团队由多个对该项目感兴趣的人组成。客户团队里,通常包括创建验收测试的测试人员。如果客户团队是由多人组成,那么,意见的一致性很重要。这时,可以指定一个带头人。

  有时候,客户团队没有懂得创建验收测试的成员,这时,就需要委托程序员帮忙编写验收测试。

  1. 程序员

  程序员是指具体广泛技术技能的人,不区别程序员,设计师或者数据库管理员。这些程序员作为一个团队一起工作,并一起承担很多责任。XP比较重视单元测试,程序员不仅仅编写业务代码,还编写单元测试,对业务代码进行自测。

  单元测试往往在整个项目开发和发布,都起着重要的作用。很多人都会觉得,单元测试使编码工作量增加,并增加系统的维护成本。有些时候,确实是这样,但单元测试往往带来比失去的更多。

  那么,什么时候应该编写单元测试呢?单元测试应该随时随处写。那么什么时候不应该写单元测试呢?当你觉得不想写单元测试的时候,就不写单元测试。也就是,不要因单元测试而单元测试。

  1. 项目经理

  在一个团队,项目经理也尤为重要。但项目经理不应该是高高在上的,对团队其他成员指手画脚的。项目经理在团队应该是为团队扫除困难,以项目能顺利交付作为长期目标。