在线试读

get_product_contenthtml     1.3.3 建立一个离岸团队的投入和效益
     组建分布式团队的目的不外乎以下几种:
     降低成本;
     开拓本地市场;
     搜罗更多的人才。
     作为客户,要考虑很多现实的问题,因为建立一个离岸团队而不是采用本土招聘的形式,在行业内一直存在不同的观点。作为支持方,理由是众口一词的,人工成本降低。有时候,分布式方法是交付产品的专享方法,因为当地没有所需的人才,这也许算是使用分布式团队开发产品很正当的理由。
     其实,人工费只是所有成本中的一部分,仅仅盯着人工费是不明智的。我在软件行业摸爬滚打多年,有一点我认识得比较清楚:不同人员的生产力的差异要远远大于他们的薪水差异。离岸团队更会显著地增大这一差异,因为离岸团队的成本除了人工费,还有沟通成本的增加、差旅费的增加,风险也因此远远高于本土团队。
     我们先来看看沟通成本。分布式团队面临很多的沟通挑战,距离远而无法面对面沟通、时差、语言能力等。这些都会使我们对需求理解出现偏差,导致做出不正确功能的概率大大增加。我们虽然采用了很多技术手段以及派遣常驻代表,但离岸的风险仍然会对我们的团队造成负面影响。
     如果是一个传统工作方式的团队,而不是采用敏捷工作方式,更加不支持团队间太多面对面的直接沟通。我们大多通过电子邮件、通过文档来达成团队间共识。因此,我们是不是就能得到优选的投入产出比呢?其实没这么简单,通过减少直接沟通的方法来达到减少沟通成本的目的,并不能增大团队的交付能力。就像通过节流的方式并不会致富一样,我们需要更多投入开源,投资创造出更多的价值。
     回头再看看分布式团队的优势。我们发现,如果离岸团队接近在另一个时区,我们可以通过接力的方式,让一个功能在同一个主线上,24小时不间断地开发出来。这对我们加快上线速度有直接的好处。这是离岸团队特有的串行工作模式,如果团队有技术支持的职能,则能加快问题的解决。我们曾经遇到过这样的问题,我们也使用第三方的平台软件Salesforce,有一个技术问题需要尽快解决。我们首先找到伦敦的技术支持团队,因为北京时间下午晚些时候,他们刚刚上班。在他们下班的时候,只解决了部分问题,他们将我们的工单转交给了Salesforce在加利福尼亚的技术支持中心,继续处理我们的问题,后来他们又交给了悉尼的技术支持部门,很后解决了我们的问题。这样在我们第二天上班的时候,悉尼的客户支持人员给我们交付了他们的解决方案。
     很后一个我想说说人才短缺的问题。我们可以在北京、深圳等很多城市找到足够的人才,即使这些人才并没有长期在这些地方生活的计划。在国外则很难找到人才如此集中的地方,而且人们也不愿意为此漂泊他乡。这时候我们更在乎的是工程师的天赋,而不是他们的成本。
     1.3.4 分布式团队需要注意的问题
     1.分布式团队中的人
     现在社会上有一个观点,团队成员都在一起工作,有时候工作效率会降低,这是真的吗?团队成员每天都在一起,拥有很好的沟通条件。但是即使前提条件是很优的,结果就一定是很好的吗?我看不一定。就像一个家境很好的孩子,家长给他创造了很好的学习条件,但并不一定能得到很好的结果。反而是家境一般的孩子,平时要帮父母做事情,自己还要挤时间学习,主观能动性更强,结果反而可能更好一些。这就是为什么很多时候不好的条件反而能激发出更好的主观能动性。
     因此,如果你一直品质得拥有一样东西,你一定不会认为它有什么特别之处。当这个东西是需要你努力才能得到的,你才会更加珍惜它。应用到沟通这件事情上,分布式团队中的我们更加看重沟通的机会,每次机会都会充分地准备,让沟通的效率更高效,用主观能动性来弥补天然的缺陷。
     由此可以得出,人是一个分布式团队取得成功的关键因素之一。找到很好的人,培养自我管理能力,运用适合的实践,就能把距离对我们的消极影响降到很小。
     2.沟通难度的增加会改变团队的沟通习惯
     通过以往的实践可以发现,接口难度的增加会产生一个后果,那就是交互的次数会减少,每次交互的内容会增加。例如,如果可以快速找到其他团队的一个人聊一下,确认一个需求或缺陷,我会马上做这件事。但是,如果我需要创建一个会议或者发送电子邮件讨论这件事,我也许不会立刻做这件事。即使我做了,也会花费更长的时间,所以我可能会先积攒更多的问题,然后再一起去讨论。
     3.减少远程工作消极影响的方案
     远程工作通常会阻碍社会化学习的过程,并增加跨功能团队工作交互的难度,所以我们需要在一些必要的工具上进行投资,如wi―Fi、视频电话、日常沟通的流程等。远程结对,使用共享屏幕软件,拉近距离。在工程实践上的投资,持续集成和自动化测试工具,这对分布式团队尤其重要。
     共识要在刚开始的时候就达成,并在以后坚持这些共识。比如,分布式团队之间分配工作的原则、各团队中角色成员的不同会从很大程度上影响分配的结果。
     曾经有这样的例子:由于本土团队掌握任务分配的主动权,或者误认为自己有权力给离岸团队分配任务,往往把一些烦琐的己方不想做的工作丢给离岸团队。比如,把新的开发的工作留给己方,而把修复缺陷的任务给离岸团队。这样的行为是很好有害的,没有人在被当成二等公民的情况下,还能保持工作的主动性和积极性。
     虽然远程参加的会议效果会差一些,但是分布式团队还是很好能够有规律地和频繁地碰面,尤其是在站会、迭代计划会议和回顾会议等时机。
     我们所认同的面对面的沟通,在分布式团队的情况下,应该是直接的沟通。即时沟通工具、视频会议、电话会议等都属于“面对面”的沟通。
     如果我们合作的客户在他们自己那里都是分布式的,那又该怎么办呢?我们将会又增加一项校准对方两个团队的任务。
     P9-11