赞
踩
有一个项目,客户在美国,雇佣的开发团队在中国。客户说开发人员的技术能力非常好,但就是提交的代码Bug太多。所以客户每次都要花很多时间来测试和沟通那些Bug。因此客户对那个团队的工作不算满意。
下面是我的简单分析和建议。
Bug多有两种基本情况:一是开发人员没有弄明白需求是什么;二是需求弄明白了,但是设计和实现的质量有问题。
对于任何一种情况,都可以通过分析以往的Bug的产生原因来提出修正方案。
建议从客户提出的那些Bug里,分析哪些是由于需求沟通没有达成一致或者需求沟通不充分造成的。然后要看为什么没有达成一致,以及在哪些方面不充分。是因为语言上的问题导致的双方的误解吗?对某个功能执行的前提条件和后置条件都仔细考虑了吗?对于UI,考虑到各种异常数据了吗?考虑到数据格式了吗?考虑数据量大小了吗?。。。沟通需求的时候,我们总是有很多假定,但是这些假定是在自己脑子里的,客户的假定也在他的脑子里,都需要说明白。为了避免重复地沟通这些假定,可以有一个简单的文档来记录一些公共的需求。
还要分析哪些Bug是由于设计上欠考虑或者实现时的错误导致的。对于每个类的每个方法,也需要考虑前置条件和后置条件,还有其他的非功能性需求。把这些分析清楚其实就是为每个方法定义了入口和出口条件,其实也就是将需求分配到了每个类的每个方法上。按照这些分配了的需求来实现。
还有的Bug是因为修改代码引起的。重构是不可避免的。但是如何保证重构能不引入新的Bug,如何保证已经修复Bug不再出现?办法是自动化测试和持续集成。
效率不是快速编码,而是一次把事情做好。返工是造成效率低的重要原因。所以,除了我们积极的工作态度,熟练的技能之外,尽可能把事情‘一次做好’的理念也是非常重要的。一次做好意味着每天提交的代码都是经过测试的,并且只有非常少的Bug。
个人建议,仅供参考。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。