`
袁斌_AgileDo
  • 浏览: 64154 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

敏捷实践-微软实施敏捷的经验

阅读更多

敏捷实践(六)-微软实施敏捷的经验

此处会介绍微软在分布式团队环境下如何实施敏捷开发的一些经验。对于面向全球市场、想节省成本的公司,分布式团队是应用非常广的一种方式。

 

 

每一个团队的组成:

产品经理:代表客户,帮助团队更好的了解需求。对Product Backlog排列优先级并为每一次迭代确定user story。微软为一个团队安排一名产品经理

教练:负责团队如何工作,例如如何TDD。一般这不是一个全职角色,由团队中敏捷经验最多的一个成员担当

团队:团队包含开发者、测试者、文档撰写者。成员有全职的,也有Contractor。整个Team对项目的交付负责。Team至少包含一个资深的开发者和测试人员

顾问:参与与客户的沟通、团队开发等各个阶段,提供第三方的建议

 

 

对于分布式团队,微软的经验:

 

1.Focus on 沟通

扩大沟通渠道是关键。视频会议、远程共享软件、即时消息软件、公共消息平台。沟通作为Team的职责之一,例如将某个本地团队成员作为异地团队的代表,并轮换制变会议的方式,例如每日会议的时间会长一些,因为这是很少的整个Team提出问题的机会。

 

微软的具体做法是:

a)每个团队的办公室里有一个专门的会议电话以及投影仪

b)每一个成员都有耳麦、分机、IM软件

c)通过耳麦、IM等进行远程的结对编程,但会有coding review补充或者取代,至少两人review之后代码才可以checkin。

d)用VisualStudio Team System在team内部来跟踪工作和状态

e)用一种parkinglot系统来处理、跟踪每日会议中提出的问题

f)将每日的白板照相并放在Wiki共享

g)开发人员、测试人员和产品经理一起为每一个故事生成Acceptance Test,这个过程和结果为整个Team ShareKnowledge非常有帮助

 

 

2.出差

在项目的初期,各个项目组(至少每个组有部分人)应该集中在一起工作,这样有助于项目组之间人员今后的沟通。在这个期间,有这样的事情需要完成:互相了解、做一些关键决定。

微软的具体做法是:

a)在项目的初期、末期(中期,如果需要的化)进行各个团队的集中

b)参加当地团队和当地公司的活动、午餐等非工作性接触

 

 

3.时差

由于时差的原因,重叠的工作时间非常少,此时就需要一些特别的方式:

a)某一方晚点走或者另一方早些来,形成重叠的工作时间

b)本地团队有一个作为异地团队的代表,前提是这个人参加异地团队的每日会议。这个人可以是弹性时间工作制,很大可能是超负荷工作。这个做法被证明是有效的,而且是很关键的。

 

 

4.Coaching 团队

a)在Team中找到一位Coach

b)对每一位新成员,推荐以下三本书:

Scrum and XP from the Trenches, Henrik Kinbergxi

Agile Project Management with Scrum, Ken Schwabervi

Extreme Programming Explained, Kent Beck and CynthiaAndresvii

c)保持至少一半的团队成员进入下一个Release。保持团队的稳定有助于经验的传递。

 

 

5.合适的工具

a)Visual Studio Team System

b)Scrum for Team System

c)SharePoint

d)Live Meeting

 

 

参考自 Ade Miller的文章:the Development Manager inMicrosoft

2
1
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics