软件开发团队协同作业用的离线工作包

来源:互联网 发布:淘宝 关闭私人定制 编辑:程序博客网 时间:2024/05/16 05:34

大多数的开发团队应该都已经跳脱用Excel做各种瑕疵或工作的追踪, 把写好的程序代码存回"网络上的芳邻"某个数据夹并自己命名版本的古老方法(别告诉我你们公司还在这么做><). 但却很可能已被网络的集中系统教到没有网络不知怎么去commit codes做版本控制, 怎么去回报bugs, 或怎么去回报工作进度.... 也许你会说那用3G不就解决问题了, 可是有的地方就是连3G都没有, 公司愿意付3G月费吗? 或客户端就是禁止你用任何网络. 遇到这样的状况要怎么办?



可听过DVCS(Distributed Version Control System)? 这里面现在Git和Mercurial最热门, 之前针对SVN也有SVK类似概念. 你可以在离线前先把要做的项目的codes 拉(pull)到自己的Branch, 离线工作一段时间, 也可以做版本控制, 等一连上线, 就可以推(push)给合作同一feature的人先做merge, 再让主线负责人看看要如何把你们做的这部份并入大家共享的主线. DVCS应该解决部份要暂时在网络封闭区域工作的问题. 不过光做好source codes版本控制的部分对于多人共同开发的项目还是很不够的. 仍需要想个办法让离线工作的进度也能很容易地让合作的伙伴或项目经理知悉, 包含到底这天出差解了哪些问题? 客户又提了多少问题和需求? 完成多少工作? 甚至还可以做工作和Bug的code review或出差当天所做的codes也能并入整个团队的daily build codes, 还能让出差的人在隔天出去前获得回馈, 拿到最新整并的codes. 有可能吗?

如果您熟悉Android开发用的IDE Eclipse, 也有兴趣采用"加强工作专注"(Task-focused)的Mylyn软件, 运用INTLAND所做的CodeBeamer相关Plugin, 即可很容易整合出不管有没有网络都能方便工作与协同作业的开发环境. INTLAND将这样的工作环境称为CBES(CodeBeamer Eclipse Studio). 此工作环境所用的版本控制系统正是前述的DVCS之一, Mercurial. 且INTLAND还特别改善Eclipse和Mercurial的整合, 此改善的plugin可于其MercurialEclipse自由软件开发项目下载.


以下的图大致说明离线工作如何运作, 又如何在一有网络的状况下能同步回中央的沟通协调系统. 这些图的详情请看CodeBeamer Eclipse Studio Screenshot Tour


在Eclipse上要求存取CodeBeamer事件
» 不需要开启网络浏览器即可接洽CodeBeamer上的事件(issues)
» 您也可以用search快速找到所要用的tasks
» 归纳各个trackers中的issues到你的工作包中成为一个可排序的工作表


快速地新增或编辑Bugs, tasks, requirements
»不需要离开Eclipse
» 运用可丰富编辑和拼字检查的桌面功能
» 可很方便地加comment(附加说明)与attachments(附檔)


只看到每一工作事项(issue)的相关codes
» 专心在Eclipse上, 只做相关codes的编辑与搜寻
» 在在线实时分享工作内容与状况给共同issue的工作伙伴

离线工作
» 离线编辑工作事项(issues) , 晚点等可联机时再同步更新
» 只要一联机将自动同步自己的变更与中央的数据

整合Mercurial
» 关联变更的code change sets到事件(issues)
» 很容易的做 source codes和相关事项的对照与连结浏览
» 自动产生Mercurial的上呈讯息
» 依工作事项把source changes分组成只有这工作范围内的codes, 如此很容易上呈或回复.

比较一般联机工作方式和这种可以适应机动性差旅的工作方式:


一般联机工作方式

  1. 从Subversion这类集中管理的版本控制系统提出(check out)一版到Eclipse上开个项目, 开始工作
  2. 上线浏览在线的事项追踪系统, 在上面新增事项或变更工作事项的状态与内容.
  3. 一定要在保持网络联机的状态下进行任何变动
  4. 写程序, 在上呈(commit)程序代码的时候配合在线的事件追踪系统做commit code的工作关联. (必须确定是否联机没有问题)
  5. 回到第2步

机动工作方式

  1. 运用MercurialEclipse's Clone Wizard从Mercurial克隆(Clone)一个贮存库(repository)到自己的Mercurial Branch,令其成为Eclipse上新增的项目.
  2. 运用CBES的Query Builder新增一个new task query , 并将您的工作输入 Mylyn.
  3. 现在您可以离线了. 上飞机,拜访您的客户, 或到您喜欢的咖啡厅工作.
  4. 如你原来工作的方式coding, 将code的变更commit到您的Mercurial branch, 并在Mylyn更新所有工作状态和相关信息.(这些都可以离线来做)
  5. 如果还是一直离线, 就持续第4步啰.
  6. 终于可以上线了吗? 一上线请将您在外所做的code变更都Push回Mercurial的主开发线, 这个动作很简单, 只要采用MercurialEclipse的Synchronization View. 在上线的同时, 您在Mylyn上的所有工作都会自动与远程的Issue Tracking数据库(CodeBeamer)做信息同步.

 

原创粉丝点击