资讯>技术访谈>亲身经历聊外包项目的那些“坑”

亲身经历聊外包项目的那些“坑”

全速云2017-06-13阅读量:1659点赞数:0

无论你是单枪匹马还是组团接单,还是已创公司接外包项目,初期阶段都踩过不少。你可能搭上了无数个不眠之夜,只获取微薄报酬。你也有可能把同事、朋友推进了一个大陷阱,投入全部的精力去完成项目,最后分文未取,还弄得友情破裂,强大的资源在一步步流失。

在软件行业已混了几年,接到不少外包项目,谈成的屈指可数,大多数半路夭折了,想起来真是无比心酸。

现在就以自身经历来谈谈这些心酸往事。


  1. 1. 协议必签



项目谈妥之后,必须要签协议或合同,口头协定之类的都没有法律效应。在软件行业混了多年,经朋友介绍参与了不少外包项目,90%的项目都是免费服务的。为什么这么惨?看看我的经历就明白了。

刚接手外包项目没经验,很多都没有签协议,一是不知道协议的重要性,二是怕担责,万一项目进度滞后还要赔款。项目接过来之后,我们小团队开始分工协作,需求分析和前后端技术调研同步进行。经过与甲方多次讨论之后,需求终于定下来了,同时技术调研也差不多了,开始进入正式开发阶段。一段时间之后,项目临近结束了,需要甲方参与验收,这时甲方又提出了新的需求,且大多数难度较大,开发周期较长,人工成本远超之前约定的价格,项目无法再进行,款项也不了了之。有几个小项目(分销管理系统、订单系统、仓管系统等)都已经交付使用了,因为甲方更换领导、换负责人等各类敷衍借口,一分款也没拿到。


  • 2. 预付款必须先支付


预付款对于软件外包项目十分重要,如果没有预付款,很可能导致一个团队所有付出归为零。2013年初,替一朋友公司牵线帮某某公司开发电商APP,虽然签了两方签了合同(合同里协定支付30%的预付款),因为甲方是大集团,朋友觉得这笔款飞不了。这份合同开发周期为3个月,时间紧迫,谈完需求后,朋友开始组织团队加班加点干活,经过两个月的连夜苦战,APP基本功能都开发好,已进入测试阶段。但天有不测风云,突然接到一个消息说这个集团破产了,老板被抓,集团财产经过清算远远不够抵债,虽然有合同在手,但是打起官司来不仅浪费时间还烧钱,到头来还是一无所获。正好事情发生在年末,朋友也没精力折腾,就只能吃个哑巴亏。

甲方突然倒闭,资不抵债,即使合同在手也追不回一分钱。合同刚签的时候我提醒过朋友先把预付款要过来,因为甲方提出要提供增值税发票,朋友想开发周期就3个月,到时候一起开发票省事,结果就碰上这糟事。这种事发生的概率极低,望广大朋友多上点心,尽量避免替人做事还要自掏腰包。


  • 3. 需求细节要明确


需求功能点要在合同或协议中明确体现,这个是众所周知的,但是需求细节很多容易被忽视,恐引起纠纷。

以开发网站为例,需要注意以下几点:

1)使用场景

有些客户需求比较特殊,如开发一个查询近几年球队战绩的网站,客户希望通过抓取足坛、体坛等各方数据建立自己的数据库,客户只希望自己能访问,其他人无法访问,此时就需要控制访问权限。

2) 部署环境

网站开发完之后需要部署到服务器上,这时候如果客户没有服务器,就需要在合同里注明购买服务器的费用要额外支付。目前大多数开发者都偏爱云主机,如果客户没有服务器,建议购买云主机,不仅部署方面,扩容也很便捷。

之前有个项目刚交付那段时间,精力旺盛的客户不分白昼,没隔三四个小时就来抱怨网站访问出现5XX,原因是他的服务器超低配,时不时就宕机,他要是买个一般配置的云主机,问题就解决了。一个一般配置的云主机费用也不高,维护成本又低,很适合外包团队。对于电商、视频类的客户,他们对服务器性能要求比较高,强烈建议采用云主机+CDN模式,这样不仅保障网站稳定,也大大降低运维成本。

3) 域名配置针对需要通过域名访问网站的小白客户)

客户要求通过域名访问网站,此时要确认是否已经申请域名了,如果没有,需要客户额外支付域名购买费用,还需要多一部分配置域名解析的工作,在选择域名解析商时,需要选择高防稳定的,避免域名劫持事件的发生。

举个例子,网站经过需求设计、UI设计、功能开发、功能测试等一系列加工后,经过数不清的熬夜通宵终于出成品了,结果部署上线后输入地址跳出来不是客户的网站而是别人的,这是被劫持了。


域名劫持是大事,被劫持了,相当于你的网站在互联网莫名消失了。为避免被劫持,域名解析建议选择高防的,稳定的域名解析服务商,可以考虑使用CloudDNS这类产品(拥有精准的解析线路,同时还能针对不同的搜索引擎爬虫提供专有解析服务,还具备防御超大流量的DDOS攻击及专业安全防护功能,提供更可靠、稳定和安全的DNS高防解决方案)。

4) 借助平台二次开发

有些后台管理平台开发可以借助第三方工具进行二次开发,可大大节省开发周期,但是这类平台像BeX5teambition一样有限制,只能允许10个人免费使用,超过10人需付费,因此想借助这类平台二开的话,先要了解客户的用户规模。

5) 交付之后,维护费用要如何算?

交付产品之后,一般约定一个免费维护期(一般设置3个月),可根据项目大小调整维护期限长短。在免费维护期间是无偿提供维护服务的,但过了这个期限,需补充协议支付维护费用。


4. 拒绝改!改!改!


协议或合同拟定之后,按照约定内容开展工作,拒绝在项目交付之后再新开发新功能。

由于甲方考虑不周,约定的需求不完整,可能在开发过程中或者交付之后要求乙方新增功能、变更功能。如果变更的功能预估的工期和原先差不多,可以约定变更,但新增功能最好拒绝(当然几个工时的小功能还是可以满足甲方的)。

之所以要履约开发拒绝追加功能,有两方面考虑:一是保证质量,保证工期;二是应用场景不同,定制需求变化多样,无止境的改改改造成原本利润微薄的项目入不敷出。我再举个实例:

某医院的某个中医的号一天60个,每天凌晨12点开始抢,好吧,合同签好了,开发好了,经过一段时间运营,收到12点开抢时间不合理的反馈(老年人不会用手机也不可能这么晚睡,导致他们抢不到号),改一下时间就好了,so easy。但是后面又来问题了,碰到节假日,预约号只有10个,怎么处理?数据库加字段呗,又过去了。过了一段时间,甲方说得给个后台,他们能配置,熬夜加了两天班,后台配置功能给他们了。但是你永远不知道他们还有多少问题,一直处在这个项目中,抽不开。虽然每个需求都不大,但是很多,时间久了,你觉得烦躁、愤怒。

外包项目坑太多,我还是太!年!轻!我虽已受到了10000万点伤害,但是这些经历让我成长了不少,以后再也不会碰雷了,花钱买教训还是很深刻的。

踩了那么多坑之后,总结出以上几点,望正考虑接外包的小伙伴们能引以为戒。

再唠叨一下。。。我第一次接外包是这样的机遇:

刚开始接外包的契机说起来也很有趣,因为我不是专职做外包的,有一天有个朋友问我能不能帮他做一个卖教育视频的APP,说他有个客户想做,这个客户又不想花大价钱做,想找私人外包。当时,我刚好有做APP的团队,想想可以赚点外快,又可以练练手,就爽快答应了。

第一个外包项目嘛,我是格外认真,做了好多准备,让组员对技术做了好长时间的调研,确认没有技术难点后才和客户接触。可是事情没那么顺利,这个客户真是“太细心了,谈需求都谈了半个月,我利用空闲时间加班加点做了好几个版本的原型给他,基本确认定稿了,我把合作协议及报价通过邮件发给他就等待他回复,这个项目就算谈成了。没过多久,这个客户打电话告诉我他的网站遭到黑客攻击了,由于黑客的出现导致项目被搁置,之后就不了了之了。

我觉得很对不起组员,他们在这个项目上花了不少心思,在我谈需求的时候,他们已经着手数据库设计,也出了部分UI效果图,最终一分钱没领到,还要充当技术顾问(客户还一直打电话过来咨询各种技术问题)。

这事也怪我资源少,要是早点知道有像CloudWSS这类高防产品,就可以帮客户解决攻击问题,第一个外包项目就成了。

全球1000+节点
实时网络监控
稳定的云服务
超强后备资源