您现在的位置: 中国IT实验室 >> 项目管理 >> 综合管理 >> 配置管理 >> 文章正文
并行开发版本管理之路(一)---版本管理危机
来源:中国IT实验室收集整理  时间:2007-6-12

  起始阶段:

  项目的开始,项目组只有从第三方获取的类库、具备编程知识的程序员和PM(项目经理)。由于成员数量不少,使用简单共享方式的版本管理往往难以胜任,某些人往往会因为新功能的需要或者无意将一些代码改得面目全非,无从追踪。我们需要一个简单的版本管理工具,比如Visual Source Safe,每个人在修改代码之前要求先将代码文件标记为“检出”状态,每一次“检入”代码都在服务器上生成一个新的版本。好了,所有的代码都有了版本记录,我们可以查看代码的演进过程,对任何两个版本进行比较,也可以轻松的获取到早先的版本。

  开始迭代:

  由于客户的要求,项目开始进行简单的迭代。PM要求所有人员检入可以工作的代码。然后开始执行构建。第一次全部构建的过程可能并不顺利,因为有人修改了A组件导致了依赖A组件的B组件不能正常工作了。当然这个不难解决,我们需要对成员进行培训,要求每个人在检入代码前保证所有的构建都是成功的。这很凑效,虽然每次构建要耗费不少时间。编译的错误很容易发现,但是逻辑的错误却没有那么简单了。不过,到现在为止,这个并不太重要,毕竟项目刚刚开始迭代,在给客户演示的时候偶尔崩溃也是可以忍受的。

  版本建立:

   随着项目第一次交付期的临近,PM决定停止新特性的开发,确定1.0版本。并且将这个版本发布SIT(系统集成测试)。刚刚SIT测试的时候,大家都忙于修改自己的代码中的BUG,忙得不亦乐乎。慢慢的,BUG数量曲线开始趋于平滑。很多人开始觉的可以将当前版本发布,从而可以投入精力进行新特性的开发了。PM也这么认为,因为从需求跟踪矩阵的情况看,还有许多的工作量,客户会要求在第二次交付(2.0.x版本)的时候看到剩下的需求都已经实现。为了不影响1.0.x版本的构建,PM下令所有人可以在本地编辑代码以添加新特性,但是不得检入版本机,唯一允许被检入版本机的是修改BUG的代码。这在一段时间里看起来工作得不错,知道有一天,小王发现他在 a.java 文件中添加和编辑了许多的新特性相关的代码,但是 现在要命的是发现了一个跟 a.java 相关的BUG。冥思苦想,小王决定将a.java先备份起来,然后撤销检出,ok,回到1.0.x的代码了,在a.java中修改了一通,检入了,很幸运,居然没有引起问题。小王开始将原先备份的 a.java和修改过BUG的a.java中的更改进行合并,合并的结果将产生一个新的a.java文件,这个文件没有了已经发现的BUG,而且包含了新特性的代码。由于小王是高手,所编写的代码遵从了SRP(单一职责原则),所以小王的合并并没有耗费缩少时间。但是接下来的时间里,小王又发现b.java,c.java,d.java…x.java需要进行这种手工的合并,每一次合并,他都要将文件预先备份起来。而且,因为在1.0.x稳定运行之前,小王不得检入自己的代码,因此小王担心,如果自己的硬盘崩溃,小王也为不能够使用其它人编写的新特性代码而感到无比郁闷。PM也意识到这种情况,在一个晚上的权衡之后,PM决定在版本服务器上建立了2.0.x的目录,将1.0.x的代码拷贝到这里来。Ok,所有的新特性的开发在2.0.x中进行,所有的BUG修改在1.0.x和2.0.x中同时进行。这真是一个不错的主意。但是,过不了多久,项目组就被频繁的拷贝粘贴折腾的死去活来,代码的修改没有办法被有效跟踪则更是让人伤透了脑筋。

  相关文章
2007年9月PMP及CAPM认证考试报名通知
成功项目管理制度
成功项目管理模式
公司:如何提升组织的项目管理能力
新版PMBOK的变化及项目管理的发展
如何应对零星IT项目采购
外国政府贷款项目采购公司招标办法
ERP项目风险管理从哪些方面入手
信息化风险及风险管理研究
正在起步中的银行风险管理
   推荐文章
 精彩友情推荐
·华为三层交换机
·华为核心层交换机
·华为交换机产品
·华为网络交换机
·华为三层交换机报价
·IDC资讯大全
·机房品质万里行
·IDC托管必备知识
·全国IDC报价
·网站推广优化
中国IT实验室--项目管理
 进度管理  质量管理  需求管理  采购管理
普通文章网络图绘制及双代号网络计划时间参数的计算06-15
普通文章网络图绘制及双代号网络计划时间参数的计算06-15
普通文章网络图绘制及双代号网络计划时间参数的计算06-15
普通文章网络图绘制及双代号网络计划时间参数的计算06-15
普通文章企业边界与边界之外——项目管理是什么06-13
普通文章QA力保软件外包安全06-13
普通文章监理工程师进行进度控制的原则06-13
普通文章施工项目进度控制原理06-13
普通文章软件开发项目进度控制中要处理好的四个问题06-11
普通文章进度管理也要懂得软技巧06-11
普通文章《IT项目管理》总结:项目质量管理06-14
普通文章六西格玛在中国06-14
普通文章IBM的过程质量管理06-14
普通文章现代统计与6 sigma 管理06-14
普通文章6σ黑带-6σ质量计划的推动者06-12
普通文章为何编程水平决定软件质量06-12
普通文章项目经理如何确保工程质量(二)06-12
普通文章项目经理如何确保工程质量(一)06-12
普通文章质量的定义总会带有政治的和情感的色彩吗?06-09
普通文章谈应用程序内在质量的改善06-09
普通文章需求捕获指南(三)—需求捕获的阶段组成(06-14
普通文章需求捕获指南(三)—需求捕获的阶段组成(06-14
普通文章需求捕获指南(三)—需求捕获的阶段组成(06-14
普通文章需求捕获指南(二)—需求捕获的问题及过程06-14
普通文章需求捕获指南(一)—概念和目的06-14
普通文章有效的需求分析员(BA)06-12
普通文章细谈软件需求分析过程:提取、抽象、升华06-12
普通文章获取用户需求的十大沟通技巧06-12
普通文章用敏捷方法应对需求变化06-12
普通文章用例驱动的需求过程实践06-09
推荐文章如何应对零星IT项目采购06-15
普通文章外国政府贷款项目采购公司招标办法06-15
普通文章项目采购管理06-13
普通文章大型乙烯项目设备全过程检验监造实践06-13
普通文章《IT项目管理》总结:项目采购管理06-13
普通文章采购代理机构内部的项目管理06-11
普通文章采购代理:三层次消除项目管理弊端06-11
普通文章浅谈施工企业的物资采购策略06-11
普通文章PMBOK之项目采购管理学习06-08
普通文章如何管理好你的供应商06-08
  培训中心
  ITLab技术交流平台: