我以前也做外包的,不过我是乙方,就是你说的A,或B的位置。
在工作中,承包方最头疼的就是甲方的需求变更,因此,对于需求变更,要价都很高,我们以前是每次变更,5k起,哪怕只改一句话,也是这么多,工作量大的话,还要加。
这也是没办法,因为有很多时候,甲方在制定规范时的漫不经心,导致后期我们很多重复的工作,浪费了时间和精力。
但是,这并不说明这是正常现象,也不是说没有办法控制。
我最近几年,做团队工作多一点,在带团队时,很多时候给小弟布置任务,就有点类似这种外包。因此,也慢慢摸索了一些办法,这里提出来供LZ参考,一家之言哈,不一定准确。
1、代码可以外包,但设计一定不要外包,外包,是解决本公司低阶劳动力资源紧缺问题,不是什么事情一推了之,自己不做事,全部别人做,这样的话,我们自己就没有存在价值了。
2、设计时,系统架构,拓扑图、时序分析一定要自己做,并做大量的样例验证,首先要保证设计本身是正确的。
3、在正确设计的基础上,规定各个模块接口的api和npi,以及关键数据结构。这里面又包括内存表结构,数据库表结构,网路信令规定。
4、对于特定模块的关键算法,即和设计密切相关的算法,做出规定,即要求该模块一定要以该算法实现,同时,如果有本公司自己的底层库,可以将底层库的执行版提供给乙方,规定底层库中有的功能,自行设计不予计费。
5、写出每个模块的test case,并且开始安排内部的程序员写测试程序,写测试程序的时候,可以先按照前文的api、npi写出分模块的虚拟模块,即有框架,但不实现功能,仅仅保证测试程序本身能正常运行。
6、在这些基础做好的基础上,可以考虑分模块外包。签订合同时,一般双方就设计方案详细讨论的基础上,确认无误,签字。甲方提供测试程序给乙方。
7、一般做生意,都还是讲人情啦,因此,一般谈下来,大家可以约定1~3次免费需求变更的机会,但这里有个条件,就是如果变更来自客户,甲方已经多收了钱,则不免费。
8、一般这样做下来,模块级基本问题不大,但整合一般都有问题,因此,合同规定,整合期内的修改,原则上不再付任何费用。乙方有责任帮助甲方将模块整合成为产品。
10、基本就这么多了,下面一般是套话,未尽事宜,双方本着平等互利的原则,友好协商解决等。
另外,还有一个细节,其实甲方很多时候不一定保证设计一定是正确的,在模块实施时,很多时候能发现,甲方的设计不合理,乙方很可能提出修改意见,还有的是乙方按照甲方设计要求做出来了,但性能跟不上,需要重新设计。
这是最容易引起争议的地方,原则上,这些是甲方的责任,我们一般执行的是修改工作量1人/天内,不算钱,超过,甲方就要付费,付费的也看工作量,一般不涉及模块废除的,就计算工作量,但如果有已经完成模块报废,基本上就要5k起了。
本文转自 tonyxiaohome 51CTO博客,原文链接:http://blog.51cto.com/tonyxiaohome/198487 ,如需转载请自行联系原作者