分布式开发团队的管理工具

日期: 2012-05-22 作者:Jeff Cogswell翻译:木易 来源:TechTarget中国 英文

如果把你的软件开发团队都聚集在一个楼里工作,那么从管理角度来说无疑是很方便的。但是,这种模式将导致你错过其他地方的优秀人才。   然而,团队能够分布的前提是你对于其管理有着深刻的认识。下面TechTarget将介绍将介绍一些能够帮助你提升软件开发团队(无论本地或者远程)的效率,甚至可以用于管理分布在一幢大厦中的团队的规则。

Jeff Cogswell   选择合适的开发工具   源码控制:由于开源运动的兴起,软件开发团队自然而然地变成跨时区的形态。相应地,软件开发工具(包括版本控制系统)也更加强调分布式团队协作的功能。传统的系统用严格的文件锁定策略,如果一个程序员需要访问被他人锁定的文件,那么……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

如果把你的软件开发团队都聚集在一个楼里工作,那么从管理角度来说无疑是很方便的。但是,这种模式将导致你错过其他地方的优秀人才。

  然而,团队能够分布的前提是你对于其管理有着深刻的认识。下面TechTarget将介绍将介绍一些能够帮助你提升软件开发团队(无论本地或者远程)的效率,甚至可以用于管理分布在一幢大厦中的团队的规则。

  选择合适的开发工具

  源码控制:由于开源运动的兴起,软件开发团队自然而然地变成跨时区的形态。相应地,软件开发工具(包括版本控制系统)也更加强调分布式团队协作的功能。传统的系统用严格的文件锁定策略,如果一个程序员需要访问被他人锁定的文件,那么他通常需要走到办公区的另一边去进行面对面的交流。然而,开源团队分散在全世界各地,成员之间很少进行直接的交流。因此,时下的工具(尤其是Git、Mercurial、Fossil和Bazaar)都针对分布式团队进行了设计,在团队成员各自的机器上存有副本。它们不单关注文件锁定,而且还具有变更合并的功能 – 这一点和传统工具有着本质的不同。也许程序员需要一段时间来适应这种新变化,但是其效率已经由诸多成功的开源项目所证实。

  构建工具:除了源码控制系统外,你还应该选择合适的自动化构建工具。由于团队成员每天的上传和下载,你需要一个服务端 – 也许是比较高级的那种 – 来承载日常的构建工作,比如Apache Ant和Maven(你可以从维基百科上找到很多的自动化构建工具)。构建系统应该由质量保证团队控制,并由他们把问题汇报给开发团队。那么开发人员怎么汇报bug呢?这就是我们要谈的下一个问题。

  事件追踪:无论是分布式或者集中式,软件开发团队都需要事件追踪系统。这类软件有很多,各擅胜场。对于分布式团队来说,事件追踪软件应该具有远程访问的功能并能够与源码控制系统集成。如果由于距离或者网络的问题而导致VPN或远程桌面连接不可用,那么事件追踪系统则应该有相应的Web界面。

  分布式团队的沟通问题

  除了有效地利用构建工具之外,分布式团队还需要有效的沟通。最容易想到的就是即时通讯工具和Skype,同时也包括电话。根据麻省理工Sloan Management Review的调查,分布式团队最易出现的两个问题是缺乏信任感和人际关系的疏离。该如何解决这两个问题呢?

  在管理分布式团队时,你将不得不面对文化差异的问题。对此,Sloan Management Review提出了几个解决方案。比如,诸如Skype之类的工具并非万能,定期的面对面交流是必不可少的,由此能促进成员之间建立更牢固的关系。

  同时,领导和员工的沟通也非常重要。一位名为Dan Belmont的远程管理经理在2007年接受CBS Money Watch采访时谈到:领导和员工一起工作和当面交流是非常重要的,不能指望仅仅通过电话就能达成目的。

  采访中还提到了个人偏好的重要性。比如作为程序员来说,如果能够按照自身的作息和习惯来工作的话,效率会变得非常高。程序员相对于其他员工来说比较内向,因而会更喜欢IM或者电子邮件的沟通方式,以及弹性的工作时间。开源社区例证了这种工作方式:Git之类的工具不只是为了分布式团队而设计,同时还能适用于各位成员工作时间不一致的场景。

  最终,只要采用了适当的工具并重视文化和个人的特性,分布式团队可以和本地团队一样运转顺畅 – 甚至更加有效。