实施Scm的必要性
1、沟通的问题:加入项目的人越多,沟通的途径将无法估计,为n(n-1)/2。简单的通过语言,手势,图无法沟通。如果沟通要表达的想法非常复杂,或者相关的人们彼此不熟悉表达方式或沟通方法,那么理解起来就相当的困难。在大型的软件项目中,系统往往非常复杂,相互之间的沟通也就更加困难。开发团队分布在世界各地,几乎没有面对面沟通的机会。另外不同的文化和种族背景,描述和用词的不同方式使开发人员的相互理解难上加难。因此,缺少良好的沟通或有沟通障碍将导致项目的失败。 所以要建立一个控制机制,保证必要的沟通,并且沟通是有效的。
2、共享数据问题:共享数据问题在开发中普遍存在,无论项目规模的大小,都存在开发人员共享资源的现象,也许是程序之间共享数据,或程序员共享函数,或多个程序共享组件库,及项目中所有程序调用的错误处理过程。当一个程序员修改了共享资源而没有及时通知其他人的时候,问题也就跟着产生。
多重维护问题:这是共享数据问题的一个变种。当在系统中共享的资源存在多个拷贝时,就有多重维护问题。多个拷贝产生的主要问题是需要跟踪它们。在项目中有多少个拷贝?哪个程序使用哪个拷贝?有多少拷贝保持着原来的状态?哪些拷贝做了哪些修改?在理想的状态下系统中所有的拷贝是完全相同的;然而很少有系统可以达到理想的状态。
同步更新问题:来看一下这样的情况。程序员A找到一个错误,并且修正了错误。他将程序的修订版拷贝到中央库,覆盖了原有的版本。按照前面介绍过的观点,似乎现在的方法解决了问题,变更被并入中央库中的拷贝并作为共享资源被保存下来,一切就绪了。
搜索更多相关主题的帖子:
Scm 实施