【转】记我的一次外包经历

http://www.cnblogs.com/whh306318848/p/5191473.html

其实外包是很多人在职业生涯中都会遇到的问题,也就是接私活。今天我来说说我遇到过的一次外包经历,我要说的这次外包经历既不是我的第一个外包项目,也不是最后一个,之所以要记下来,是因为这是我目前为止遇到过的最坑的一次,导致我整个2015年都在为这一次外包进行补救。不过,我写这篇文章并不是为了抱怨,而是为了记录这次事件,提醒自己在以后的项目(不论是是公司的项目还是自己的项目)中不要再像这样行事,还有就是希望能够给后来者一些借鉴,毕竟这是很多人都会遇到的,尤其是学理工科出身的人。在这篇文章中,所有的人名、公司信息、数据信息等都是真实的,有一部分是我从其他渠道获取的,并非自己亲眼所见,但都做了说明。

2014年8月,我因为学习驾照,在家乡逗留了一个多月,在这期间,我的一位名叫向彪的朋友找到我,询问我是否可以做一些技术开发的工作,从我开始上大学之后,这位朋友找过我几次,但之前都由于技术水平不足或者是时间问题都没有答应他,这次因为要在家待一段时间,所以觉得有时间,所以就向他了解了一些需求。刚开始,需求描述为开发一个简单的微商城,我认为也不复杂,就跟他说3000元,当时的想法就是利用在家学车的这段时间,一两个人就搞定了,但随着需求的深入了解之后,发现并不是他个人或所在公司想做这件事情,而是酒泉的另外一家叫做酒泉汇众联合营销服务有限公司(下文简称“酒泉汇众”)的企业想做一个电商系统,根据该公司自己的说法,他们想做一个本地化的O2O电商平台,但根据实际情况来看,其实是B2C(多商家版)的电商系统(需要的可以联系我),当事情进展到这里的时候,我发现这已经不是我一人所能完成的了,因为根据用户需求,这个系统有Web端、Android端和iOS端三端组成,包括了用户端。我开始联系我项目组里的其他小伙伴,在联系的时候,我给大家的说法就是看大家是否有时间,如果有时间,我就继续进行具体的需求沟通,如果没时间,这个项目就放弃,最后我还是组成了一个项目组,然后开始和酒泉汇众公司沟通具体的需求,在具体需求沟通的过程中,由于技术限制、第三方平台限制、业务逻辑限制等原因,需求改了几次,每次我都需要根据需求重新估算开发周期和费用,最后一次需求变更时,为了省事,我并没有进行具体估算,而是在原先的基础上,大概给了一个报价和开发周期,最终敲定是在九月初。

最终敲定的方案是,系统在2014年双十二之前上线运营,开发费用总共分四次支付,在开发工作开始时支付20%,开发主体功能完成后支付一部分,系统上线后支付到80%,系统上线运营三个月后支付20%。系统总共分四个子系统,分别是后台管理端子系统、Web端子系统、Android端子系统和iOS端子系统。由于这个项目是出于帮朋友忙的角度,所以报价是极低的,这里就不写了,因为这个报价已经远远低于市场价格,大概只有正常公司报价的六分之一至三分之一左右,而且这中间还包括了朋友的抽成。当然,也正是出于这一出发点,所以在整个项目过程中,我并未与任何人就该项目签订任何书面协议或合同,这也就为后来的一些问题埋下了伏笔,不过现在想来,就算是签订了合同,也没有意义,因为价格实在太低了,就算能够起诉,也没有意义,最后很有可能得不偿失。
之后就是开发工作,不过在开发过程中出现了一些之前我没有预见到的问题。首先,9月3号我回到成都,然后整个9月份我的时间都投入到了另一个项目中,整个9月,我一直在准备出差或出差,导致这个月基本上没有什么进度;其次,在11月末12月初,团队成员的时间安排出现了问题;第三,需要对接的一个第三方会员系统接口迟迟不能提供。由于这三个原因,导致了系统未能在双十二正式上线,当然,在项目实施过程中,需求的变更也产生了一部分影响。最终,系统正式上线的时间向后延迟了一个月左右,如果我没记错的话,系统正式上线运营时间为2015年1月10日左右,酒泉汇众公司的第一家线下体验店,也是唯一的一家线下体验店(后面会介绍为什么是第一家也是唯一一家)是在2015年1月21日正式开业的。
在系统正式上线之后,系统没有出现什么大的BUG,唯一一个会影响使用的问题是Android端程序在三星NOTE3手机上会出现闪退的问题(后来证实是因为三星NOTE3手机底层进行了内存优化,导致程序出现了内存溢出的问题),但这个问题在最初的反馈中,并不明确。现在回想起来,其实在这时,这次合作就已经出现了问题,只是因为我当时经验尚浅,未能及时发现问题。在解决这个BUG的过程中,我多次要求酒泉汇众公司提供出现问题的手机让我带回成都,主要原因是在系统开发过程中,我们使用了各种品牌和型号的手机进行了测试,虽不能保证100%的Android机进行适配,但80%以上的Android机都是可以使用的,但因为酒泉汇众公司无法提供可让我拿回成都的测试手机,所以这个BUG一直拖到了2015年3月份才得到了彻底的修复。
在2015年春节期间,我与酒泉汇众公司进行了多次沟通,我希望他们能够按照约定,在系统上线后,支付一部分费用,但对方最开始说会计回家了,说年后处理。年后上班后,该公司居然无人理睬我,所以我将系统后台关闭(用户仍然可以正常购买、支付),后来该公司股东兼总经理薛贵德居然把我叫去公司臭骂了一顿,这个情节完全在我意料之外,我没想到,在现在的软件开发过程中,居然还有甲方劈头盖脸骂乙方的情况,并且该老总叫嚣要起诉我,要让我把老子(北方方言中老子表示父亲)赔进去,但根据我的了解,我所从事的工作是软件开发工作,需要定立“技术开发合同”,虽然《合同法》规定口头合同具有法律效力,但是技术开发合同,必须采用纸质形式。后来又说要先解决Android端BUG才能支付费用,而我提出需要将出现BUG的手机带回成都进行调试,酒泉汇众公司又说无法提供测试用机让我带回成都。这里还需要插着说一下,在年前的一次饭局中,该公司老总提出说这个BUG一定要解决,因为他们的客户就是拿3000元以上手机的人(我保证这是我在整个系统建设过程中第一次听到这样一个需求),然后我说,那我们的iOS端做得很好,现在愿意拿3000元以上手机的人,一般都是iPhone手机,然后该老总又说现在谁用iPhone,说他身边的人,用苹果手机的人很少。我也是醉了,我不知道这位老总说的是真的,还是只是为了让我解决这个BUG才这样说。
过完年,我依旧没有拿到第二笔项目款,这时我开始意识到有问题了,但是因为有朋友在中间担保,我觉得应该可以拿到剩下的费用,我还是在三月份时解决了那个BUG,之后,我将测试安装包发给了该公司,然后该公司依旧未支付费用,四月份,该公司老总来成都参加“糖酒会”,顺便来我们公司考察,然后,就在四月中旬,该公司老总出差结束,回到酒泉后,据称是醉驾肇事逃逸并致人死亡。直到这时,该项目彻底结束了,我的开发费用也要不回来了。

之后我尝试联系该公司另一名股东、中间担保的朋友,但是都没有追回我的开发费用。但是项目已经完成了95%以上,为了不让跟着我的小伙伴吃亏,我开始利用自己的钱支付他们的开发费用,直至前两天(除夕夜当前),我将所有的费用都支付完了。至此,事情告一段落。

在这次外包过程中,我发现了一些问题,有我的问题,也有酒泉汇众公司的问题,下面我一一列举说明,希望对后来者能够有一些作用。

先说我的问题:
1、开发周期预估不足。由于之前接的外包项目相对这个项目来说,都是些小项目,所以在时间的估计和把握上,并没有流出太大的余地,这也是导致最后未能按时上线的一个原因;
2、未能坚持关于费用支付的原则问题。因为朋友作为中间人,没有坚持一些外包的基本原则,在个人或团队的外包过程中,一般需要首次支付项目经费的40%~50%;
3、对朋友过于信任。未能及时发现风险,其实在商业活动中,还是应该坚持商业原则,不要考虑感情因素,要做先小人后君子;
4、对团队内部的管理有些松散,应该在团队内部明确任务和时间节点,加强时间管理。

然后说说我看到的汇众公司的问题:
1、公司内部信息不流通。汇众公司负责和我对接的有两个人,首先这两个人之间的信息是不完全流通的,当然,也许是因为其中一个并非专职负责这件事情,其次就是下级和上级之间信息不流通,2015年1月系统就上线运营了,直到2月底了,汇众公司的老总居然还不知道系统已经在产生实际订单和交易了,然后我把系统后台停掉之后,老总直到大约一周之后才知道这件事情,而且居然以为我把整个系统都给停了;
2、负责与我对接的人权限过小。在以往的项目中,负责与我对接的人都是一个部门的经理或者具有相关权限的人,在与汇众公司的合作中,与我对接的人对很多事情都不具有决定权,而且在付款方面也没有任何权限,我实在不明白,这样的体系架构,这个公司的效率到底体现在哪里,说实话,我实在不能理解一家私营企业为什么会形成这样低效的氛围,如果是国企、央企、政府机构、公益组织等,我都能理解,但是一个私企,确实是我第一次见,感觉好像不是在为自己挣钱一样。

然后,再来说说我经历了这件事情之后的一些思考吧:
1、团队建设非常重要。其实不管是不是公司,是不是互联网公司,团队的建设都非常重要。团队建设涉及很多方面,作为管理者,你要想办法让你的团队高效运转,信息快速、无障碍流通,而且,现在很多85后、90后成为了主要劳动力,我自己也是90后,我自己的感觉就是,你如果只想着上班时间咱们在一起工作,只想着通过工资、奖金、福利来搞团队建设,那你就OUT了(当然这些事基础条件),除此之外,人工作也是需要愉快的氛围,如果一个团队只是机械式的工作,互相之间没有默契、没有感情,那这个团队必定不会发挥最大效能的。一个团队,并不只是一个工作集合体,它还应该是一个集吃喝玩乐于一体的“团伙”;
2、公司内部信息流通很重要。一个有效信息不管从这个公司的哪一个人进入这家公司,都应该以最快的速度,传递到所有相关人员的手中,很多时候,信息的不对称会造成决策者无法做出正确的决策,团队之间互相无法配合。在公司内部,不光要能做到信息从上向下流动,还要做到信息从下向上流动,作为管理者,如果你只是发布命令,而不听一线工作人员的反馈的话,那得到的结果很有可能是事倍功半;
3、代码质量管理很重要,虽然有的时候项目周期会很紧张,但是基本的代码管控要有,即使当时没有办法进行严格的代码质量审查,那也应该尽可能的为以后重构代码提供一些便利,比如强令编码人员填写SVN日志信息、强令编码人员在每个类和函数上加上功能描述语句等,当然,如果有时间的话,最好还是进行严格的代码审查,尽可能的保证代码的健壮性和可复用性,其实这并不难,只需要项目经理或组长每天打开代码看一下,时不时的看看SVN日志,定期让编码人员给你展示一下功能并大概解释一下代码即可;
4、在商业活动中,一定要坚持一些基本的商业原则,可以因为关系的原因提供优惠的价格,但是不能因为关系的原因答应类似于增加需求、缩短开发周期、延迟付款等要求,无论是否签订了合同,如果出现付款不及时的情况,应及时停止开发工作,或者停止新版本的交付及旧版本的维护。商业就是商业,不应该掺杂过多的其他因素,一手交钱、一手交货就是最基本的原则。

最后,再来说说这件事情的一些细节和插曲,以供大家参考。
1、前文说到酒泉汇众公司的总经理薛贵德于2015年4月份在酒泉醉酒驾驶发生车祸致人死亡并逃逸,这是我从朋友处打听来的,之所以要从朋友处打听,是因为4月初在成都和这位薛总见面后,对方也表达了清晰的继续合作的意愿,希望能够将这个项目进行下去,但是等我想确认那个BUG的修复结果是否满意时,却发现联系不上他,然后我开始联系酒泉汇众公司,最开始他们对我声称公司老板出差了,让我之后再联系,但是迟迟没有下文,所以我开始联系我酒泉的同学和朋友,先是听到酒泉在4月中下旬发生过一次严重车祸,因为我们这个城市并不大,一年也出不了几个恶性案件,所以一出现就会导致相关人员(当事人的家属、朋友等,公检法系统、政府相关部门等)都知道,我听到这个消息时,也联想过,毕竟想让一个消失的如此彻底,在当今社会,恐怕只有政府了(其他的都是非法的!!!我相信社会是和谐的,哈哈哈),但是没想到后来证实,真的很不巧,就是他。然后我就像汇众公司的另一位股东追款,但是另一位股东坚称要等到薛总回来后处理,因为最开始我听到的消息称,被撞人家的最大诉求是让肇事者负完全的刑事责任,所以我就没报多大希望。后来到2015年10月份,我又听说这个老总出来了,我也不知道是赔钱赔够了,家属原谅了?还是花钱走了关系了?亦或者只是取保候审?总之是出来了,但是这位老总出来之后依旧保持失踪状态,依然联系不到,我打电话去公司,公司说他们也联系不到(我就呵呵了),至此,事情基本上可以说是彻底结束了,而我也没有再去刁难那位中间人向彪。
2、前文提到过这位薛总曾把我叫到汇众公司臭骂了一顿,这件事情我觉得很有意思,所以在这说一下,那天把我叫去,刚开始他在工作,然后和我在办公室里面聊,前两句话还正常,突然就开始发飙了,然后就是各种质问、摔手机(他自己的)、要求我就未能如约上线系统道歉等等,而我被突如其来的这一下给整懵圈了,等反应过来之后,就一直在笑(当然道歉还是道了,毕竟这个事情我也觉得是我的问题),我就和他面对面坐着,然后就静静的看着他在那摔摔打打的,真的挺搞笑的,后来问他们公司的员工,原来他平时就那样训员工,而我真的是第一次见到这样的老总,我真的是理解不了,甲方为何能骂乙方?不过在这个过程中,他提了一个问题,他问我为什么要结算项目款不跟他说,还质问我到底谁是这家公司的企业法人?我也是醉了,不过我还是给他解释了,我说你一个公司的老总,我不可能这点事情都要和你说吧,这也不是说一个几十上百万的项目。而且他指责我说在开发过程中我没有主动给他打过电话,汇报过进度,听到这句话我心中真的是千万只羊驼奔过!!!我是乙方啊!你是甲方啊!你甲方是有人和我对接的,你难道指望乙方时时为你汇报工作?Are you kidding me?你甲方那个负责和我对接的人是摆设吗?我只是和你进行了一次合作,我又不是你公司的员工,我有什么义务给你甲方老总汇报工作?也正是这一次接触,我才完全明白了,这位薛总在这件事情中完全处在一个“瞎子”和“聋子”的地位,很多事情他都不知道,当然不可能要求一个公司老总能够清除的知道自己公司的每个项目的每个细节,但节点性的信息你总应该是了解的吧,但是没有!最后,他接了个电话,电话铃一响,突然又恢复了正常,这个情绪控制的如此之到位,我佩服;
3、在接近交付之前,酒泉汇众公司从老总到对接人员,一直在跟我提你看携程、顺丰优选、京东、淘宝做的如何如何好,我只能一遍一遍不厌其烦的给他们解释(因为他们公司员工知道这件事情并不代表老板也会知道),他们所参考的这些系统,仅手机端的开发成本就是我给他们开发这个系统报价的几百甚至几千倍,这些系统整体的开发及运营成本是他们这个系统的几万倍甚至都不止,而且这些系统从1.0版本发展到现在至少都经历了一两年的时间,这不是说我这么几个人,用几个月就能搞定的。通过这件事情,更坚定了我以后对客户不能抱有幻想的想法,客户真的什么都不懂,有的时候,你越是为客户考虑,他越觉得容易,所以应该将问题摆在客户面前,比如客户提出,是否能参考携程开发一个系统,你就应该马上说,如果只要功能是多少多少钱,如果要求和携程完全一样,能够顶住大用户量,那就要将开发成本乘以多少倍,然后再告诉他们可以循序渐进的做,省得客户总觉得做软件不需要钱,很便宜;
4、再来说说项目款要不回来了之后我是怎么处理的,因为报价低,当时我给团队承诺的开发费用也不高,虽然我对项目款是不报希望了,但是我还是秉持着“不能坑跟着我的小伙伴”的原则,我用自己的收入(工资和私活的钱)向项目组的核心成员兑现了当初的承诺,当然,这也导致我整个2015年一直走在“还债路上”,知道今年过年的前一天,我才彻底把这些欠债还清。其实按照我最初的利益划分中,我也并不是这个项目组中挣得最多的,我每次在进行这种活动时,原则就是干的多,拿的多,当然,如果你掌握的是一些核心技术,你干的少,也可以拿的多,总体来说就是基本上遵守分配原则,不干那种撑死自己饿死别人的活,因为感觉那样太对不起和我一起干活的小伙伴了;
5、事情发展到现在,我已经不抱任何希望了,而且前两天我实地考察了一下,汇众公司唯一的一家体验店,已经在转让了,汇众公司的办公地点,也换成了另外一家公司,我也不知道他们是搬走了还是倒闭了,我通过工商系统查询,发现这家公司还未注销,这家公司在册持股人共有8人,注册资本150万,注册时间为2014年7月10日。如果哪天出现了奇迹,他们需要重新开启系统,我这也保留了最终的数据和程序,不过他们必须先支付完所有的费用,否则他们还是重新去找人开发吧,毕竟薛总曾威胁我信不信它可以重新找人做这么一套系统,我现在表示我信!You can do it!

最后的最后,打个广告吧,如果有谁需要B2C(多商家版)的电商系统,可以联系我,我现在部署了一套演示系统,但是因为时间的关系,还没来得及撤换LOGO,不过如果你需要的话,我可以私信给你网址,这套系统实现了基本的电商业务流程,对接了支付宝和中国银联,有完整的Android端和iOS端,服务器端是用PHP开发的,你可以选择完整源码购买,也可已选择购买软件。至于价格,要求不同,价格不同,我可以提供一些修改,但是需要根据修改的幅度报价。如果有需要的,具体来联系我吧。

#6楼 2016-02-16 09:36 风浪

在中国,做IT项目, 不收到60%的钱, 都不用动工, 宁愿不赚钱也不要做这些冤枉工, 我出来工作十年中前几年也像你们那样接一些单来做, 基本一半数以上都是收不到钱, 或是钱少需求越做越多的情况, 后来一直没接触过, 有时间玩玩更好

支持(0)反对(0)

回复引用

#7楼 2016-02-16 09:44 jimmyisme520

博主,我只能说,你还是 too young too simple!
接活,不管是不是熟人,我一般是这样的,商务费10%;
然后事先说明,必须签合同、附件加需求文档、方案文档,并由客户拍板人签字或盖章(很重要);然后是做原型;最后,你交付的成果就跟你约定的文档里面的内容一样,效果也跟原型一样;
前期你多得多做点事儿,估计时间、调试、安装部署等等都得考虑预备方案,做外包不仅仅就是敲点代码,尤其临时拉的团队协同开发比较大的项目,前期工作做好了后期沟通会少装很多孙子,即使仲裁也不怕。
最后,这是一次难得的经历,不失为一次宝贵的经验。年轻,这都不是事儿

时间: 2024-10-09 22:41:10

【转】记我的一次外包经历的相关文章

记一次服务器被挖矿经历与解决办法

记一次服务器被挖矿经历与解决办法 在最近的某一天里面,中午的一个小息过后,突然手机的邮件和公众号监控zabbix的告警多了起来.我拿起手机一看原来是某台服务器上的CPU跑满了,就开始登上去看一下是哪个脚本导致负荷高的(在期间使用top -d 1命令查看负荷占用情况).可以静下来想了下,中午大家都在休息不应该CPU负载会这么高的,心里想80%是服务器被黑了. 后来发现是/tmp/ddgs.3013和/tmp/qW3xT.2这两个文件跑满了服务器CPU,后来决定先kill掉文件PID和删除/tmp目

记一次阿里电面经历

昨天下午(3/19)三点多钟,接到了一个杭州的电话,是阿里的.问我是否方便聊聊.我说我在上课,四点下课.然后他就四点多钟的时候又打了一次过来. 项目经历 上来就问我有无大型项目的经历.不好意思,我说无.. .又问我代码量怎样,我说之前有常常刷ACM的题目,所以代码量还能够. C语言变量 问:"函数中的局部变量保存在哪里?" 答:"栈" 问:"函数中的局部静态变量保存在哪里?" 答:"静态区.." 问:"局部静态变量和

[软件测试_hw1]记一次调试bug的经历

上学期期末web开发的大作业,要求写一个通缉犯管理系统,基本要实现的功能归结起来不外乎数据库的增删改查.大体实现起来很容易,但在一些细节上让我纠结了很久.其中一个就是中文乱码的问题.其中主要涉及一下两个方面: 一.无法在mysql数据库中插入中文的数据,一旦涉及中文数据,在数据库中就会变成乱码.经过查询发现是由于数据库的默认编码设置的问题,将相应表和列的编码设置成UTF-8即可 二.页面显示乱码. 1.通过<%@ page language="java" import="

记Thinkpad的一次扩容升级经历

俗话说:" 工欲善其事,必先利其器" 阅读目录: 背景 目标 准备 友情提示 制作引导盘 分区及备份 拆机装盘 重装系统 写在结束的 参考资料 背景: 作为一个近六年的IT从业Coder,我的"利器"就是 ThinkPad Sl410k系列的"小黑"机.2010年左右购置的入门机,对于当年学生党来说,四K多大洋已经算不便宜的了(当然办公码字还是在公司的时候多,秀一张) "小黑"有其优良的品质血统,配置不高,但稳定啊,散热好.比

记一次服务器密钥失效经历

早上来公司,收到这个消息,我的心是崩溃的. “tim老师,测试服务器的远程登录密钥失效了”,我问他,做了什么改动没,得到的确切回复是“只是上传了一些代码”,再次询问下,坚持只上传了些代码,言之凿凿.这个问题可大了,1. 就这个机器而言,没有做任何事,“只是上传了代码”就导致用了两年的密钥不能用了,这个机器是着急用来搭建测试服务器的.这个测试服务器已经搭建了一个多星期了,之前一直说代码没准备好,现在又蹦出这个,真是幺蛾子啊.2. 所有包括正式的服务器与测试服务器一共11台.要是所有的服务器都在某个

记一次排除单点故障的经历

在生产环境中,为了保障业务的连续性,一般会对系统进行高可用性建设,避免单点故障.前段时间排除系统风险的时候发现了一个单点故障的风向,记录下来,希望可以在以后工作中举一反三. 一个系统XSystem有两台主备机器A,B,两台机器做的冷备份,其中A为主机,B为备机. 主机A有四块硬盘,做了两组raid1,分别对应系统的C盘(系统盘),D盘(数据盘),还通过HBA连接一块儿柜式存储,对应系统的E盘(数据盘). 发现系统X,使用的数据库文件存放位置竟然为C盘,这样的方案,系统的高可用性建设作用极低. 首

记一次服务器Tomcat优化经历

博主原创,转载请注明. 公司需要一台测试服务器来做测试用,所以花了几天时间把服务全部部署好,在部署好war包之后,发现Tomcat访问超级慢. 1.进入Tomcat的bin目录下,运行 ./catalina.sh run命令,在前台打印运行信息,首先看其有没有报错.好,没有报错,进行下一步. 看打印信息输出的快慢,如果卡在某一句上,那么证明你的配置是有问题的. 如何解决? 1)修改你的jdk目录下/jre/lib/security目录下的java.security这个文件,将securerand

iH5中img标签src不给路径就会出现边框————记一次二笔的编码经历

<img/>在src加载失败或没有给的,浏览器会自动给img加上边框. 如下图这样: 产品觉得影响美观,一定要pass掉. 原码是这样: .ctn{ position: relative; width: 2.8rem; height: 2.8rem; border-radius: 3px; overflow: hidden; background: #FFF; } .ctn .title{ position: absolute; top: 0; width: 2.8rem; height: 2

记AppStore 被打回的经历

在快驰已然有半年时间之久. 见证了“快货运”产品,在不断摧残的环境中成长着.  两个人,将一个产品亲手从无到有的构建,有过心酸.有过累和有过憔悴,但当“快货运”开始上APP store时,又让人觉得开心,就像自己的“儿子”一样对待着. 终于可以“见”天日了,欣喜着希望别人可以使用自己的产品.  一直梦想着有那么一天,满街的人使用着自己开发的软件在哪里用,然后评价说:“这个不错!”. 个人虽然是一个标准的开发者,但是乔布斯的完美主义,个人却是非常的喜欢,很是崇拜.  自己不想因为只是为了钱而去开发