Brenda的敏捷沉思录

Brenda's Agile Thinking

导航

Distributed Agile and Offshore Agile

Posted on 2010-03-11 15:24  brenda bao  阅读(217)  评论(0)    收藏  举报

Distributed相对于co-located而言,指团队成员分散在不同的地方。Offshore指实际的客户和开发团队不在同一个地方。

这两个话题是在中国的企业常关心的话题。因为很多在中国的软件公司都会面临这样的情况。比如大型的外包公司,提需求的客户在国外,要求外包公司使用相同的流程。或者是跨国企业,国外的部门提需求,国内和国外的部门来一起实施,但是流程需要统一。在这种情况下,敏捷是否使用呢?

 

敏捷的价值观要求面对面的人际交互,要求客户和开发人员在一起。这和团队分散,客户和团队距离太远看似是矛盾的。所以很多人会直观的认为这种情况下敏捷不太合适,而直接退回到传统的流程。需求方会写好具体的需求分析,然后全部转交给开发方,等待最后验收。或是有个人来负责不同团队之间的分工,而不是让团队自组织。会出现的结果是可想而知的,团队合作会出现问题,需求的分析也会出现问题。就跟传统软件开发模式会出现的问题一样。

 

与之相对应,我们应该在团队分散,客户和团队距离太远的情况下,继续贯彻和执行敏捷的价值观,即使再难也要想办法。目前有很多关于Distributed Agile和Offshore Agile的文章和书籍,介绍如何在距离分散的条件下更好的实施敏捷。大致的思路都是尽量拉近距离。比如说:

  • 鼓励互访。让分开的双方有更多的机会面对面交流,最直接的方法就是出差互访。这在开发的初期尤其重要,可以拉近彼此的距离,为之后的合作打下基础。虽然差旅费不菲,但相对后期交流得开销来说,绝对值得。
  • 多使用摄像头。无论是团队之间还是团队与客户之间,视频会议总比电话会议交流要更好。摄像头可以缩短人与人之间的距离,相对于email和普通电话来说,更高效。而且摄像头并不贵。
  • 坚持在同一个code base上持续集成。即使在分散的团队间,这个有效的工程实践也不能放弃。

其他还有很多推荐的实践。宗旨都是类似的,在co-located团队的实践,尽量全部使用,由于距离不能使用的也用高科技手段模仿。一下是两篇reference:

http://www.martinfowler.com/articles/agileOffshore.html

http://agileee.org/schedule/JE/

 

最后,无论如何,距离肯定会对团队造成负面影响,这点是无法否认的。