Case Study: 项目的源代码

Apple项目已经接近尾声,客户开始频繁的测试,并提出修改意见,同时也有了要求得到源代码的想法。

源代码公开给客户,可以说是整个项目中最敏感的一个环节。这不,对于放多少、什么时候放的问题已经和客户ding-dong了N个来回了。

客户的出发点是:部分款项支付,全部代码公开,BETA测试后一个月,付清尾款;
我们的出发点是:部分款项支付,部分代码公开,BETA测试后一个月,付清尾款,公开所有代码。

在与客户的交流中,我和Partner只坚持一点:代码的公开不光是标记着项目的结束,而且还标记着对代码质量的责任的转移。如果客户此后在代码基础上加以修改,当然是完全可以的,但是已经超出了我们的责任;更重要的一点是,代码的开放在某种意义上意味着客户已经认可了代码的开发,并且认为没有问题(或者没有大的问题),有的只是局部细节的改动。

这个客户的特别之处在于,在代码测试的过程中,会不断要求加入新的东西。有些改动是我所谓的one-line modification,那么我们就顺手修改了;有些却是全新的功能,其中部分我们免费增加了,部分被我们拒绝了。于是客户提出他们想让自己的团队来增加这些功能,因此要求开放源代码。这个要求的前半部分是合理的,但是客户并没有意识到开放源代码意味着责任的转移。所以,如果客户不对当前功能进行buy-off,是不能公开代码的;或者换句话说,如果客户一定要开放,那么就一定要buy-off当前的功能。否则,他进行他的二次开发,而又牵涉到原始代码,这里一旦出现功能性的不匹配,责任问题是很难界定的。

伟大领袖毛主席教导我们,与天斗,其乐无穷;与人斗,其乐无穷。

其实,和客户斗,更是其乐无穷啊!

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *