异地协同开发的思考

在项目实施中,我们常常会有这样的情况:在客户现场进行需求调查分析,然后返回公司做系统的概要设计,详细设计,代码设计,然后再交付给客户现场组进行组装和联调测试。这种方式结合得好将会为公司节省开发成本中的差旅费等费用,而且开发人员可以聚集在一起互相交流等好处。
但是目前在公司的具体情况是开发人员需求分析后直接进入代码实现,因此没有经过概要设计和详细设计阶段这个客户认可的阶段,所以在设计上会有不少的缺陷,同时由于涉及到与其它系统的集成,而在公司没有条件搭建同样的测试环境情况下,缺少有效的测试就直接提交到客户,随之必然会产生一系统问题。如何更好的做好异地开发,避免给项目带来的风险,也许需要我们更多的去思考。
当然,如果客户能提供VPN或者其它远程连接的方式 ,那么就会解决项目实施中的很多问题,可以要求开发人员远程登录现场直接修改代码以修正缺陷。但是,如果不客户提供不了远程连接的方式下,我们如何解决异地开发中的相关问题呢?
1、测试系统的搭建,既然在公司无法搭建相应的测试环境,那么,就在客户处搭建相应的测试系统,测试环境的要求可以不用太高,毕竟没有太多的实时用户访问,只需要检测代码的正确与否

2、BUG的反馈,目前公司的实施方法就是前方只有一个项目经理,如果是这种异地开发,且与其它业务系统有集成,自认为项目经理还是要具有一定的开发知识。首先从系统日志中查找问题的原因,这也需要开发人员的程序有很好的错误处理机制,从反馈的系统日志中就能找到问题的所在。其次,在迫不得已的情况下,异地开发的程序对项目经理开放源码,源码的可阅读性也要稍强,项目经理可以自己加入调试代码找到问题所在。但是这两点对项目经理有一点的技能要求。

3、远程桌面工具,在给开发人员反馈相关的Bug之后仍然无法知道出现Bug的原因,那么就考虑远程桌面共享了,目前公司有RTX可以远程桌面共享,但是速度不够理想,所以可以考虑用QQ或者Netmeeting之类的代替。由开发人员控制桌面,来调试相关的程序。

4、版本的控制,在异地开发的过程中,由于开发人员不在现场,所以很多信息来源于项目经理,项目经理应该有一个Buglist,这个Buglist可以记录在项目经理的本地或者提交在公司的缺陷管理里面,以便对各个版本解决的问题进行阐述。但是,即使是这样,也有遗漏的地方。所以一定要确保所有的Bug都已经修正。而且往往存在新提出的Bug修正了,以前的Bug又冒出来了,防不胜防,所以做好版本控制实在太有必要了

5、联调,在更新代码到正式系统之前,务必要在正式系统上进行联调,在联调的过程中,不仅仅是调试开发人员修正的Bug,还要调试其它相关的功能。这个问题在项目中经常出现,往往修正了一个Bug却导致更多的Bug出现,这是由于在修正Bug的过程中,开发人员只考虑修正提出的Bug,却没有考虑到代码的修改对其它相关功能的影响,所以联调是必要的。

6、备份,代码测试联调通过之后就要正式更新,但是别慌,在更新之前,一定要对正式系统原来的模块进行备份,在更新代码的过程中,有些问题可能不是我们代码的问题产生的,而是系统的底层导致的,所以如果更新出现问题还可以恢复到以前的状态。

其实上面所述的只是在异地开发中我们处理开发问题的一些常识,对异地协同开发的任务分配,进度管理,错误管理,项目沟通没有提出什么建议,还需要进一步的思考。

你可能感兴趣的:(PM)