分布式团队之殇

学习过scrum的同学都知道,co-location是scrum的基本要求之一。但是在实际开发环境中,同一个产品开发团队的不同人员分布在不同地点是很正常的,还有外包团队,离岸团队等,都很难做到。那么这种情况,我们是不是就不能采用scrum或者其他敏捷方式了呢?如果一定要用scrum的话,里面的坑又有哪些呢?在这里,笔者希望能够以一点自己的经历,来跟大家一起探讨一下分布式团队如何用scrum。

发现问题

首项目经理Z是一个非常年轻也很喜欢接触新事物的小伙子,在组织内部也是运行敏捷开发模式的先锋,不过最近他新接手了一个团队,遇到了一些困难,于是他找到了阿甲,希望能够从阿甲这里得到一些建议。

Z:”你好,阿甲,好久没见了,我最近接手了一个新的团队,在运行scrum的时候遇到了一些问题,不知道您这边能帮下忙么?”
阿甲:“Z,当然可以了,这样吧,我明天刚好要去你们公司一趟,或者我们见面在详细聊聊。”
Z:“太棒了,非常感谢,期待明天我们的见面。”
阿甲:“没问题,那我们就明天见吧。”
第二天,阿甲见到了Z,“hi,有什么问题能难倒我们的Z同学呢?”
Z:“阿甲,能见到你太棒了,你知道的,我们公司自从引入了scrum开发模式,从组织高层到开发团队都感觉比以前效率要提高很多,而且客户满意度也在上升,但是最近领导让我带领一个新的团队进入scrum开发模式的时候,我遇到了一些新问题,需要你的帮忙。”
阿甲:“新问题?好啊,说来听听。”
Z:“我现在接手的一个新的项目的开发是由外包团队来负责, 公司的市场部门作为团队的客户存在,但是遗憾的是外包团队和我们不在一个城市,我理解在scrum的开发模式中,是需要团队在一起工作的,而不推荐分布在各个地方的开发团队来开发一个产品,而现在由于公司自从引入scrum开发模式之后,尝到了甜头,所以要求所有的项目团队都要采取scrum开发模式,所以这里我感觉到很困惑。”
阿甲:“我想我了解你的问题了,分布式团队想要引入scrum模式是一个很大的挑战,那么我能先了解一下团队现在遇到的问题吗?然后我们看看是否可以针对性的解决这些困难。”
Z:“当然可以了,我们现在的开发团队在异地,因为公司差旅的关系,我们到现在为止都没有和开发团队所有的成员见过面,只是他们那边的leader在解决生产故障的时候会偶尔过来一下。由此带来的是我们彼此之间的信任问题,我们这边的市场同事认为开发团队工作量评估有问题,交付速度不够,而开发团队则觉得我们的需求不明确,总是出现改动的情况,软件功能总是不停的修改,而我作为项目经理,无法像在以前的scrum团队一样观察团队的开发状态,识别风险和问题,对此感到很苦恼。”
阿甲:“还有其他的么?”

Z想了想:“对了,由于是外包公司的原因,在开发团队那边也有个项目经理M,开发团队总是喜欢通过这个M来跟我们同步一些信息,这样很多时候一些问题需要反复确认,效率非常低。”
阿甲:“那么你们现在是通过什么样方式来进行信息共享的呢?”
Z:“我们主要是依赖M提供的周报,大概每周一次吧。而且因为前面描述的情况,现在市场和开发团队之间对立严重,相互不信任,市场已经投诉开发几次了。”
阿甲:“看来我们的客户和开发团队之间存在的极大的不信任感,那么Z你觉得这个不信任感应该是从哪里来的呢?”
Z认真的想了想:“应该是沟通不畅导致的吧,不过我个人的担心是scrum可以应用到这种分布式开发团队中么?”
阿甲:“对于scrum有一个共同的误解就是它无法很好的应用于异地分布式团队。但是这种论点是有偏颇的,scrum带来的好处远大于依赖频繁沟通所产生的困难,我们在下面可以实际分析一下。”
Z:“好的,愿听高论。”

发现问题

阿甲:“其实scrum能给我们带来的好处不仅仅是依赖于频繁沟通,还有很多其他的方式呈现“

• 通过每个Sprint结束之后观看演示,提高了可见度。
• 每个Sprint后调整优先级的能力。
• 对质量和自动化测试的强调。
• 改进了知识的传递方式,开发人员可以通过相互协作的方式来共享知识。
Z:“是啊,我还真的忽视了这些。”
阿甲:“现在我们遇到的问题是因为缺乏有效沟通渠道和开发模式,导致市场团队和开发团队之间存在极大的不信任感。”
Z:“太对了,现在就是团队之间彼此不信任。”
阿甲:“那么实际上我们是可以通过scrum来解决这些问题的。比如说如果我们引入迭代方式,每个迭代结束前都交付一些可以看到的东西给市场,会不会让市场团队的满意度能提升呢?”
Z:“我想应该是可以的,因为现在面临的问题是不知道多久才能看到实际产品。”
阿甲:“对于需求不明确的问题,我们可以在计划会上来搞定,让开发团队和市场团队的人实时沟通,解决澄清一些需求问题,对了,我们的市场人员可以到开发团队那边工作一段时间么?”
Z:“你是指出差么,但是根据公司的差旅费用,感觉是个不小的负担呢!”
阿甲:“对的,很多人认为出差是个不小的成本负担,但是我们想一下,我们通过出差的话能够解决一些需求还有团队沟通的问题,总是要比因为这些导致的工期延误的成本要低的多吧。”
Z想了想:“对啊,上次就有一个上线的故障是因为需求不明确导致的,导致公司损失了几十万呢。”
阿甲:“所以可以考虑跟老板聊聊,看看是否可以让市场团队的成员每隔一段时间去开发团队那里一起工作几天,不仅可以保持沟通效率,还能增加团队凝聚力。”
Z:“那么计划会议也要召开吧?”
阿甲:“当然了,不过方式可能要改变一些,我觉得开个电话会议还是不错的,至少让团队和客户能够通过电话直接沟通,而不是通过邮件和文档的方式反复来回,这样团队能够第一时间把需求搞清楚,而且也可以让市场对开发团队的估点和工作量估计有个直观的了解,避免这方面的误解。”
Z:“明白了,到时候也可以考虑一些远程桌面协作工具。”
阿甲:“是的,如果可以的话,尽量能让大家进行口头沟通。还有,站会也是保证彼此之间信息沟通的一个重要手段,可以考虑采取电子看板,电话接入等方式。”
Z:“那我们的市场部门也要接入么?”

阿甲:“我觉得是需要的,至少在初期,不但可以了解团队的开发进度和状态,还可以帮忙解决团队提出的一些问题,当然了,不建议除开发团队之外的干系人在会议上过多发言,可以让他们接入但是只在必要的时候说话,这样就感觉更像一个团队内部的会议,而且也会提高站会的效率。”
Z:“这到是个好主意,就像回顾会议上干系人只能旁听不能发言一样。“
阿甲:“还有一个问题是,开发团队那边也有他们的项目经理,他们都会通过项目经理来跟我们的客户沟通对吧?“
Z:“是的,所以这也是沟通问题的一个原因。”
阿甲:“那么我们是不是可以建立一个机制,让开发人员直接联系到相关的业务方,从而减少这些沟通成本呢?”
Z:“我觉得可以,我可以建立一个联系表,对应每个业务/开发的联系方式,让大家有问题可以直接联系对方。”
阿甲:“很好的主意,这就是我们需要的。”
Z:“太感谢阿甲了,听你这么一说,我感觉思路开拓了不少,你下周有空么,可以帮忙一起辅导一下这个团队么?”
阿甲:“我看看我的日程啊,正好下周有一周的空余时间,很愿意帮这个忙啊。”

解决方案

阿甲和Z一起根据目前团队处于的情况设计了如下方案:

1. 团队在进入scrum开发模式之后,按照迭代进行开发,可以在每个迭代结束的时候交付一些软件出来,并邀请市场同事进行评审,通过这样的方式可以尽快的让客户看到我们的软件,更快的得到反馈和沟通,消除因为开发周期长造成的彼此间的不信任。

2. Z申请和市场部门的同事一起到开发团队所在地出差一段时间,这样至少在一段时间内大家能够在一起工作,可以更好的了解相互工作状况和澄清一些需求问题。

3. 每日站会,市场同事会电话接入,及时了解团队开发进展和遇到问题,快速反馈团队需要帮忙解决的一些问题,开发团队也会在每日下班之前及时更新燃尽图和障碍列表等工具,并分享给全部团队成员。

4. 计划会议的时候,如果市场同事没有办法在现场的话,要通过一些远程协作工具来和开发团队一起进行计划会议,帮忙澄清需求,也可以真实的了解开发团队如何评估故事点和工作量的,避免产生误会。

5. 开发团队方面的项目经理要转型为scrum master,至少要承担部分责任,负责组织日常站会,准备计划/评审/回顾等scrum事件,并确保正常进行,同时也要负责跟踪解决团队在开发中遇到的问题,并及时反馈给团队和相关干系人。

6. 用户故事要加入必要的细节,因为分布式团队很难做到面对面直接沟通,所以有些故事(比如表格类,网页UI设计等)可能需要足够的细节,甚至文档来支持,这要比通过电话等方式更能提高效率。

Z:“看了这些方案,我感觉有信心多了,我下午就回去跟老板商量,尽快和市场的同事一起到开发团队那边出差,和团队一起工作,让我们尽快的进入到scrum工作模式中。”
阿甲:“很好,期待你的成功。”

后 记

过了2个月,阿甲又碰到了Z,“hi,Z,上次你的团队后来进展怎么样?”

Z:“效果还不错,市场的同事现在每隔一个月就会去开发团队那里,和他们一起工作一周,参加计划/评审/回顾会议和每日站会,通过这些会议,市场同事对于开发团队的工作状态有了真实的了解,也确实理解他们评估的工作量都包含哪些内容,而且开发团队有时候提出的建议也弥补了市场需求的一些不足之处。另外,通过每日站会,我们可以更好的了解团队现在的进展,而不是到最后才知道,团队遇到的一些问题市场部门也会积极的去解决。”

阿甲:“看来我们的工作透明度起到了很好的作用。”

Z:“因为是分布式团队,沟通效果没有面对面的好,但是我们通过scrum把工作透明化之后,所有人都能知道团队的进度状态和遇到问题,对项目的信心比以前更高了。市场部门还为此写了封邮件表扬开发团队并抄送给他们的老板。”

阿甲:“看起来团队的气氛要比以前好的多了,希望我们能够保持下去,当然這里面也少不了Z的努力。”

Z:“不过最近听到一个消息,据说有一个开发人员分布在3地的项目要给我接手,也要运行scrum,到时候可能还要请教您啊。”

阿甲:“。。。。。。 那什么,我有事先走了,后面再聊。。。”

联系我们

无论是咨询,培训,商务合作还是想加入我们,都可以用以下方式联系我们.